Definition at line 1530 of file mainIDo.cpp. References Impala::FileExists(), Impala::MakeString(), mNCPU, mNodes, mPPN, and Impala::StringStartsWith(). Referenced by Exec(). 01531 { 01532 if (ncpu == 0) 01533 ncpu = mNCPU; 01534 01535 String progMpi = prog + "mpi"; 01536 if (FileExists("/home/koelma/sge/prun-sge-script")) 01537 { // we're on DAS3 or DAS4 01538 String prun = "prun -v"; 01539 prun += " -sge-script /home/koelma/sge/prun-sge-script"; 01540 prun += " -asocial -t 168:00:00"; 01541 if (!FileExists("/home/koelma/sge/prun-sge-script.das4")) 01542 { // DAS3 01543 return prun + " " + progMpi + " " + MakeString(ncpu); 01544 } 01545 if ((mNodes != -1) && (mPPN != -1)) 01546 { 01547 return prun + " -" + MakeString(mPPN) + " -np " 01548 + MakeString(mNodes) + " " + progMpi; 01549 } 01550 if ((mPPN == -1) && StringStartsWith(prog, "precompute")) 01551 { 01552 int root = sqrt((double) ncpu); 01553 return prun + " -" + MakeString(root) + " -np " 01554 + MakeString(root) + " " + progMpi; 01555 } 01556 int ppn = (mPPN == -1) ? 8 : mPPN; 01557 if (ppn > ncpu) 01558 ppn = ncpu; 01559 int nodes = (ncpu % ppn == 0) ? ncpu / ppn : (ncpu / ppn) + 1; 01560 return prun + " -" + MakeString(ppn) + " -np " 01561 + MakeString(nodes) + " " + progMpi; 01562 } 01563 01564 #ifdef WIN32 01565 return "mpiexec -localonly " + MakeString(ncpu) + " " + progMpi; 01566 #endif 01567 01568 // fails when called twice? 01569 // "mpiexec -machinefile machines.txt -n " + MakeString(ncpu); 01570 // requires lamboot to be called first 01571 return "mpiexec -n " + MakeString(ncpu) + " " + progMpi; 01572 }
Here is the call graph for this function: ![]()
|