Salome HOME
Use a temporary file for the node file in LSF instead of always appending to the...
authorbarate <barate>
Thu, 29 Jul 2010 12:22:01 +0000 (12:22 +0000)
committerbarate <barate>
Thu, 29 Jul 2010 12:22:01 +0000 (12:22 +0000)
src/LSF/Batch_BatchManager_eLSF.cxx
src/LSF/Batch_FactBatchManager_eLSF.cxx

index fc36f7f48c8fb629572e258f6f50cf32e66bfa14..05eb0345f81a9400307801e57030ae1c5106158e 100644 (file)
@@ -281,6 +281,7 @@ namespace Batch {
     tempOutputFile << "cd " << workDir << endl ;
 
     // generate nodes file
+    tempOutputFile << "NODEFILE=`mktemp nodefile-XXXXXXXXXX` || exit 1" << endl;
     tempOutputFile << "bool=0" << endl;
     tempOutputFile << "for i in $LSB_MCPU_HOSTS; do" << endl;
     tempOutputFile << "  if test $bool = 0; then" << endl;
@@ -288,17 +289,21 @@ namespace Batch {
     tempOutputFile << "    bool=1" << endl;
     tempOutputFile << "  else" << endl;
     tempOutputFile << "    for ((j=0;j<$i;j++)); do" << endl;
-    tempOutputFile << "      echo $n >> nodesFile" << endl;
+    tempOutputFile << "      echo $n >> $NODEFILE" << endl;
     tempOutputFile << "    done" << endl;
     tempOutputFile << "    bool=0" << endl;
     tempOutputFile << "  fi" << endl;
     tempOutputFile << "done" << endl;
 
     // Abstraction of PBS_NODEFILE - TODO
-    tempOutputFile << "export LIBBATCH_NODEFILE=nodesFile" << endl;
+    tempOutputFile << "export LIBBATCH_NODEFILE=$NODEFILE" << endl;
 
     // Launch the executable
     tempOutputFile << "./" + fileNameToExecute << endl;
+
+    // Remove the node file
+    tempOutputFile << "rm $NODEFILE" << endl;
+
     tempOutputFile.flush();
     tempOutputFile.close();
 
index 5e1bfd9878e1cf99ae13ffa5a0eaded1d08d4bf6..03bf379fb3c22ee15ed372e3a32da7c208aee9db 100644 (file)
@@ -33,6 +33,8 @@
 
 namespace Batch {
 
+  static FactBatchManager_eLSF sFBM_eLSF;
+
   // Constructeur
   FactBatchManager_eLSF::FactBatchManager_eLSF() : FactBatchManager_eClient("eLSF")
   {