]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
CCAR:synchronize with V5_1_main head
authorcaremoli <caremoli>
Fri, 18 Jun 2010 07:15:51 +0000 (07:15 +0000)
committercaremoli <caremoli>
Fri, 18 Jun 2010 07:15:51 +0000 (07:15 +0000)
src/Container/SALOME_ContainerManager.cxx
src/Launcher/BatchTest.cxx
src/Launcher/Launcher.cxx
src/Launcher/Launcher_Job.cxx
src/Launcher/Launcher_Job_SALOME.cxx
src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx
src/MPIContainer/MPIContainer_i.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Handler.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Parser.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Parser.hxx
src/ResourcesManager/SALOME_ResourcesManager.cxx

index 8245fe50b3d3ca220792cfc77be36081367b9ac5..8412d2f91735625bd1fc76b60c6128126c50936c 100644 (file)
@@ -420,11 +420,9 @@ SALOME_ContainerManager::GiveContainer(const Engines::ContainerParameters& param
   logFilename += "/";
 #endif
   logFilename += _NS->ContainerName(params)+"_"+ resource_selected +"_"+getenv( "USER" ) ;
-#ifdef WNT
   std::ostringstream tmp;
   tmp << "_" << getpid();
   logFilename += tmp.str();
-#endif
   logFilename += ".log" ;
   command += " > " + logFilename + " 2>&1";
 #ifdef WNT
@@ -1065,7 +1063,7 @@ std::string SALOME_ContainerManager::GetMPIZeroNode(const std::string machine, c
   status = system(command.c_str());
   if( status == 0 ){
     std::ifstream fp(tmpFile.c_str(),std::ios::in);
-    fp >> zeronode;
+    while(fp >> zeronode);
   }
 
   RmTmpFile(tmpFile);
index b9a9a5d628aee3f0a6fabe3fb1715a1533ccc1d7..80f59953e8962b2068f3c64fb111d75484a85b0a 100644 (file)
@@ -298,6 +298,12 @@ BatchTest::test_jobsubmit_simple()
     result = "OK";
     return result;
   }
+  if (batch_type == "ccc")
+  {
+    INFOS("test_jobsubmit_simple not yet implemented for ccc... return OK");
+    result = "OK";
+    return result;
+  }
   if (batch_type == "sge")
   {
     INFOS("test_jobsubmit_simple not yet implemented for sge... return OK");
@@ -482,6 +488,13 @@ BatchTest::test_jobsubmit_mpi()
     return result;
   }
 
+  if (batch_type == "ccc")
+  {
+    INFOS("test_jobsubmit_simple not yet implemented for ccc... return OK");
+    result = "OK";
+    return result;
+  }
+
   if (batch_type == "sge")
   {
     INFOS("test_jobsubmit_simple not yet implemented for sge... return OK");
index 0af54436c4cb0b36dc667cde50392fc7d604dd6c..e5d8e9dc8b5499dd4a772b332f57ead10fe5e6aa 100644 (file)
 
 #ifdef WITH_LIBBATCH
 #include <Batch/Batch_Date.hxx>
-#include <Batch/Batch_FactBatchManager_eLSF.hxx>
-#include <Batch/Batch_FactBatchManager_ePBS.hxx>
+#include <Batch/Batch_BatchManagerCatalog.hxx>
+#include <Batch/Batch_FactBatchManager_eClient.hxx>
 #include <Batch/Batch_BatchManager_eClient.hxx>
-#include <Batch/Batch_FactBatchManager_eSGE.hxx>
-#include <Batch/Batch_FactBatchManager_eSSH.hxx>
 #endif
 
 #include "Basics_Utils.hxx"
@@ -394,30 +392,35 @@ Launcher_cpp::FactoryBatchManager(ParserResourcesType& params)
       mpi = "nompi";
   }
 
-  std::string message = "Instanciation of batch manager of type: ";
+  const char * bmType;
   switch( params.Batch )
   {
     case pbs:
-      message += "ePBS";
-      fact = new Batch::FactBatchManager_ePBS;
+      bmType = "ePBS";
       break;
     case lsf:
-      message += "eLSF";
-      fact = new Batch::FactBatchManager_eLSF;
+      bmType = "eLSF";
       break;
     case sge:
-      message += "eSGE";
-      fact = new Batch::FactBatchManager_eSGE;
+      bmType = "eSGE";
+      break;
+    case ccc:
+      bmType = "eCCC";
       break;
     case ssh_batch:
-      message += "eSSH";
-      fact = new Batch::FactBatchManager_eSSH;
+      bmType = "eSSH";
       break;
     default:
       LAUNCHER_MESSAGE("Bad batch description of the resource: Batch = " << params.Batch);
       throw LauncherException("No batchmanager for that cluster - Bad batch description of the resource");
   }
-  LAUNCHER_MESSAGE(message);
+  Batch::BatchManagerCatalog & cata = Batch::BatchManagerCatalog::getInstance();
+  fact = dynamic_cast<Batch::FactBatchManager_eClient*>(cata(bmType));
+  if (fact == NULL) {
+    LAUNCHER_MESSAGE("Cannot find batch manager factory for " << bmType << ". Check your version of libBatch.");
+    throw LauncherException("Cannot find batch manager factory");
+  }
+  LAUNCHER_MESSAGE("Instanciation of batch manager of type: " << bmType);
   return (*fact)(hostname.c_str(), protocol, mpi.c_str(), nb_proc_per_node);
 }
 
index b2c61375c98d22380b62b6be56e3631f312484f5..53b3c0e3308a36807fa2a1c8edb5d42e385bec11 100644 (file)
@@ -412,11 +412,10 @@ Launcher::Job::common_job_params()
   params[Batch::USER] = _resource_definition.UserName;
   params[Batch::NBPROC] = _resource_required_params.nb_proc;
 
-  // Memory
+  // Memory in megabytes
   if (_resource_required_params.mem_mb > 0)
   {
-    // Memory is in kilobytes
-    params[Batch::MAXRAMSIZE] = _resource_required_params.mem_mb * 1024;
+    params[Batch::MAXRAMSIZE] = _resource_required_params.mem_mb;
   }
 
   // We define a default directory based on user time
index 5d0e16b2d1e34a943c9ca7d6a735fff1a5c9fede..d11057b5105f3d3f79e77afecf71503033b92541 100644 (file)
@@ -77,7 +77,7 @@ Launcher::Job_SALOME::buildSalomeScript(Batch::Parametre params)
     resource_protocol = "rsh";
   
   launch_script_stream << "if [ \"x$LIBBATCH_NODEFILE\" != \"x\" ]; then " << std::endl;
-  launch_script_stream << "CATALOG_FILE=" << work_directory << "/CatalogResources_" << _launch_date << ".xml" << std::endl;
+  launch_script_stream << "CATALOG_FILE=" << "CatalogResources_" << _launch_date << ".xml" << std::endl;
   launch_script_stream << "export USER_CATALOG_RESOURCES_FILE=" << "$CATALOG_FILE" << std::endl;
   launch_script_stream << "echo '<!DOCTYPE ResourcesCatalog>'  > $CATALOG_FILE" << std::endl;
   launch_script_stream << "echo '<resources>'                 >> $CATALOG_FILE" << std::endl;  
index aec99bcfe1633c6a52b1746150c2e36275888af6..4c5c2436086f425b80a7963fc03459485d6f66ab 100644 (file)
@@ -718,7 +718,7 @@ void SALOME_LifeCycleCORBA::killOmniNames()
   {
     std::string cmd = ("from killSalomeWithPort import killNotifdAndClean; ");
     cmd += std::string("killNotifdAndClean(") + portNumber + "); ";
-    cmd  = std::string("python -c \"") + cmd +"\" >& /dev/null";
+    cmd  = std::string("python -c \"") + cmd +"\" > /dev/null 2> /dev/null";
     MESSAGE(cmd);
     system( cmd.c_str() );
   }
index e1ca6cc6b75939982e5d0cea5837b80c166211d3..627f398bea6b3147fe4aa3f55c1c4b6ab85e2b34 100644 (file)
@@ -87,6 +87,7 @@ void Engines_MPIContainer_i::Shutdown()
   MESSAGE("[" << _numproc << "] shutdown of MPI Corba Server");
   if( _numproc == 0 ){
     _NS->Destroy_FullDirectory(_containerName.c_str());
+    _NS->Destroy_Name(_containerName.c_str());
     for(ip= 1;ip<_nbproc;ip++)
       (Engines::MPIContainer::_narrow((*_tior)[ip]))->Shutdown();
   }
index f7ac8ba7591fbc1158a569bd830644c27c577c5b..ac6341bb6162a6d4c63bfe4fc6734b024e1089c2 100755 (executable)
@@ -534,6 +534,8 @@ SALOME_ResourcesCatalog_Handler::ProcessMachine(xmlNodePtr machine_descr, Parser
       resource.Batch = sge;
     else if  (aBatch == "ssh_batch")
       resource.Batch = ssh_batch;
+    else if  (aBatch == "ccc")
+      resource.Batch = ccc;
     else
       resource.Batch = none;
   }
@@ -726,6 +728,9 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
       case sge:
         xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "sge");
         break;
+      case ccc:
+        xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "ccc");
+        break;
       case ssh_batch:
         xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "ssh_batch");
         break;
index 8bd177c4e0ccf19ee58e228d9e8eafbc46dc5272..f84d26b2ca482186b988d78d088033dc8ac24b05 100644 (file)
@@ -205,6 +205,8 @@ ParserResourcesType::PrintBatchType() const
     return "lsf";
   else if (Batch == sge)
     return "sge";
+  else if (Batch == ccc)
+    return "ccc";
   else 
     return "ssh";
 }
index a867f96aaf2dcb181bac7eab037eb4501428e9d9..d376e5545f3b45f2fd4ac34f8bf2ef1bff72aedb 100755 (executable)
@@ -45,7 +45,7 @@ enum AccessProtocolType {rsh, ssh};
 
 enum AccessModeType {interactive, batch};
 
-enum BatchType {none, pbs, lsf, sge, ssh_batch};
+enum BatchType {none, pbs, lsf, sge, ssh_batch, ccc};
 
 enum MpiImplType {nompi, lam, mpich1, mpich2, openmpi, slurm, prun};
 
index b03d51fcb0088cf2821c02842713e42bc3322164..acdfe259d4f07ffa996869b9b33c51ac84014c49 100644 (file)
@@ -252,6 +252,8 @@ SALOME_ResourcesManager::GetResourceDefinition(const char * name)
     p_ptr->batch = "lsf";
   else if( resource.Batch == sge )
     p_ptr->batch = "sge";
+  else if( resource.Batch == ccc )
+    p_ptr->batch = "ccc";
   else if( resource.Batch == ssh_batch )
     p_ptr->batch = "ssh";
 
@@ -281,6 +283,8 @@ SALOME_ResourcesManager::AddResource(const Engines::ResourceDefinition& new_reso
     resource.Batch = lsf;
   else if  (aBatch == "sge")
     resource.Batch = sge;
+  else if  (aBatch == "ccc")
+    resource.Batch = ccc;
   else if  (aBatch == "ssh_batch")
     resource.Batch = ssh_batch;
   else if (aBatch == "")