X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=bellerophon.cpp;h=f4d04ea074b1d2d95cb9bcff4fcc3084e7f234c6;hb=fca3f55d5ded10c3dc77856f3cc4a1c53b02bb6f;hp=54025eb9285c87be35039a3051454cfd763a3c4d;hpb=6f4b9401f7deb8aaf0d87659298308f4138cc3b0;p=mothur.git diff --git a/bellerophon.cpp b/bellerophon.cpp index 54025eb..f4d04ea 100644 --- a/bellerophon.cpp +++ b/bellerophon.cpp @@ -75,7 +75,7 @@ Bellerophon::Bellerophon(string name, bool filterSeqs, bool c, int win, int inc } //*************************************************************************************************************** -int Bellerophon::print(ostream& out, ostream& outAcc) { +int Bellerophon::print(ostream& out, ostream& outAcc, string s) { try { int above1 = 0; @@ -130,7 +130,7 @@ int Bellerophon::print(ostream& out, ostream& outAcc) { } #ifdef USE_MPI //*************************************************************************************************************** -int Bellerophon::print(MPI_File& out, MPI_File& outAcc) { +int Bellerophon::print(MPI_File& out, MPI_File& outAcc, string s) { try { int pid; @@ -246,7 +246,7 @@ int Bellerophon::getChimeras() { numSeqsPerProcessor = iters / processors; //each process hits this only once - int startPos = pid * numSeqsPerProcessor; + unsigned long int startPos = pid * numSeqsPerProcessor; if(pid == processors - 1){ numSeqsPerProcessor = iters - pid * numSeqsPerProcessor; } @@ -310,7 +310,7 @@ int Bellerophon::getChimeras() { MPIBestSend.clear(); } - + MPI_Barrier(MPI_COMM_WORLD); //make everyone wait - just in case #else //divide breakpoints between processors @@ -326,7 +326,7 @@ int Bellerophon::getChimeras() { int numSeqsPerProcessor = iters / processors; for (int i = 0; i < processors; i++) { - int startPos = i * numSeqsPerProcessor; + unsigned long int startPos = i * numSeqsPerProcessor; if(i == processors - 1){ numSeqsPerProcessor = iters - i * numSeqsPerProcessor; } @@ -373,7 +373,11 @@ int Bellerophon::createProcesses(vector mid) { string tempOut = outputDir + toString(getpid()) + ".temp"; writePrefs(tempOut, lines[process]); exit(0); - }else { m->mothurOut("unable to spawn the necessary processes."); m->mothurOutEndLine(); exit(0); } + }else { + m->mothurOut("[ERROR]: unable to spawn the necessary processes."); m->mothurOutEndLine(); + for (int i = 0; i < processIDS.size(); i++) { kill (processIDS[i], SIGINT); } + exit(0); + } } //force parent to wait until all the processes are done @@ -531,7 +535,6 @@ int Bellerophon::createSparseMatrix(int startSeq, int endSeq, SparseMatrix* spar int Bellerophon::generatePreferences(vector left, vector right, int mid){ try { - float dme = 0.0; SeqMap::iterator itR; SeqMap::iterator itL; @@ -665,7 +668,7 @@ int Bellerophon::writePrefs(string file, linePair tempLine) { try { ofstream outTemp; - openOutputFile(file, outTemp); + m->openOutputFile(file, outTemp); //lets you know what part of the pref matrix you are writing outTemp << tempLine.start << '\t' << tempLine.num << endl; @@ -695,12 +698,12 @@ int Bellerophon::readPrefs(string file) { try { ifstream inTemp; - openInputFile(file, inTemp); + m->openInputFile(file, inTemp); int start, num; //lets you know what part of the pref matrix you are writing - inTemp >> start >> num; gobble(inTemp); + inTemp >> start >> num; m->gobble(inTemp); for (int i = start; i < num; i++) { @@ -710,7 +713,7 @@ int Bellerophon::readPrefs(string file) { inTemp >> pref[i][j].name >> pref[i][j].leftParent >> pref[i][j].rightParent; inTemp >> pref[i][j].score >> pref[i][j].closestLeft >> pref[i][j].closestRight >> pref[i][j].midpoint; - gobble(inTemp); + m->gobble(inTemp); } }