Home || Visual Search || Applications || Architecture || Important Messages || OGL || Src

String Impala::Application::IDo::GetMpiCallString ( CString  prog,
int  ncpu 
) [inline]

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:


Generated on Thu Jan 13 09:14:24 2011 for ImpalaSrc by  doxygen 1.5.1