- }
- else if(processors == 3){
- int pid1 = fork();
- if(pid1 > 0){
- int pid2 = fork();
- if(pid2 > 0){
- driver(distCalculator, seqDB, 0, sqrt(3) * numSeqs / 3, distFile + "tempa", cutoff);
- appendFiles(distFile+"tempa", distFile);
- remove((distFile + "tempa").c_str());
- }
- else{
- driver(distCalculator, seqDB, sqrt(3) * numSeqs / 3, sqrt(6) * numSeqs / 3, distFile + "tempb", cutoff);
- appendFiles(distFile+"tempb", distFile);
- remove((distFile + "tempb").c_str());
- }
- wait(NULL);
- }
- else{
- driver(distCalculator, seqDB, sqrt(6) * numSeqs / 3, numSeqs, distFile + "tempc", cutoff);
- appendFiles(distFile+"tempc", distFile);
- remove((distFile + "tempc").c_str());
- }
- wait(NULL);
- }
- else if(processors == 4){
- int pid1 = fork();
- if(pid1 > 0){
- int pid2 = fork();
- if(pid2 > 0){
- driver(distCalculator, seqDB, 0, numSeqs / 2, distFile + "tempa", cutoff);
- //system(("cat " + distFile + "tempa" + " >> " + distFile).c_str());
- appendFiles(distFile+"tempa", distFile);
- //system(("rm " + distFile + "tempa").c_str());
- remove((distFile + "tempa").c_str());
- }
- else{
- driver(distCalculator, seqDB, numSeqs / 2, (numSeqs/sqrt(2)), distFile + "tempb", cutoff);
- //system(("cat " + distFile + "tempb" + " >> " + distFile).c_str());
- appendFiles(distFile+"tempb", distFile);
- //system(("rm " + distFile + "tempb").c_str());
- remove((distFile + "tempb").c_str());
- }
- wait(NULL);
- }
- else{
- int pid3 = fork();
- if(pid3 > 0){
- driver(distCalculator, seqDB, (numSeqs/sqrt(2)), (sqrt(3) * numSeqs / 2), distFile + "tempc", cutoff);
- //system(("cat " + distFile + "tempc" + " >> " + distFile).c_str());
- appendFiles(distFile+"tempc", distFile);
- //system(("rm " + distFile + "tempc").c_str());
- remove((distFile + "tempc").c_str());
- }
- else{
- driver(distCalculator, seqDB, (sqrt(3) * numSeqs / 2), numSeqs, distFile + "tempd", cutoff);
- //system(("cat " + distFile + "tempd" + " >> " + distFile).c_str());
- appendFiles(distFile+"tempd", distFile);
- //system(("rm " + distFile + "tempd").c_str());
- remove((distFile + "tempd").c_str());
- }
- wait(NULL);