我正在尝试根据我在应用程序中使用的进程数将向量拆分为子集。我创建了伪代码,但我真的不知道如何输出子集。
问题:
使用条带化从 Residences.dat 中读取地址记录的子集。对于 n 个进程,每个进程根据每第 n 个记录评估一个唯一的记录子集。此子集中的记录数应约为 #-of-residence-records /#-of-processes。在所有使用的并行进程中,不应省略任何地址,并且不应多次处理。另请注意,任何进程一次只能将一条记录存储在内存中
我的代码:
std::vector<Residence> spliteResidenceDaata(vector<Residence> rs,int numProces = 0);
function body
std::vector<Residence> spliteResidenceDaata(vector<Residence> rs,int numProces)
{
std::vector<Residence> residenceSet;
//get the size of vector
int res_set_size = rs.size();
int sizrOfSubSet =res_set_size/numProces;
//output the arry subsite some "help here"
return residenceSet;
}
更新
I came up with this pseudo code
1-take the number of line in .dat file rData
2- get the number of data you want to read for each process sizeofLine (rData.size()/numProc)
3- read the .dat file from line 0 to sizeofLine
4-output array