From: pschloss Date: Mon, 8 Jun 2009 15:51:58 +0000 (+0000) Subject: fixed how seq.dists divides the matrix for multiple processors X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=commitdiff_plain;h=5c5b831cf797385966dacb7a94c0ed63f3753a7c fixed how seq.dists divides the matrix for multiple processors --- diff --git a/distancecommand.cpp b/distancecommand.cpp index a964cd7..9297909 100644 --- a/distancecommand.cpp +++ b/distancecommand.cpp @@ -114,18 +114,15 @@ int DistanceCommand::execute(){ } }else{ //you have multiple processors - //create line pairs - int numPerGroup = numSeqs / processors; - int remainder = numSeqs % processors; - for (int i = 0; i < processors; i++) { lines.push_back(new linePair()); - lines[i]->start = i*numPerGroup; - lines[i]->end = (i+1)*numPerGroup; + lines[i]->start = int (sqrt(float(i)/float(processors)) * numSeqs); + lines[i]->end = int (sqrt(float(i+1)/float(processors)) * numSeqs); } - //give the last one any extra line - lines[lines.size()-1]->end += remainder; - + + cout << lines[0]->start << '\t' << lines[0]->end << endl; + cout << lines[1]->start << '\t' << lines[1]->end << endl; + createProcesses(distFile, phylipFile); //append and remove temp files