Salome HOME
Merge branch 'V9_11_BR'
[modules/kernel.git] / idl / SALOME_ResourcesManager.idl
old mode 100755 (executable)
new mode 100644 (file)
index 8938ba4..375f327
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2023  CEA, EDF, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -35,12 +35,18 @@ module Engines
 typedef sequence<string> ResourceList;
 //! components list
 typedef sequence<string> CompoList;
-
+typedef sequence<long> IntegerList;
+  
 //! Type to describe required properties of a resource
 struct ResourceParameters
 {
   //! resource name - manual selection
+  /*! If a name is provided, the resource will be imposed.
+      If the name is an empty string, the resource will be chosen to match
+      the other parameters.
+  */
   string name;
+
   //! host name
   string hostname;
   //! if true select only resources that can launch batch jobs
@@ -49,18 +55,41 @@ struct ResourceParameters
   boolean can_run_containers;
   //! if given required operating system 
   string OS;
-  //! if given list of components that could be loaded on a container
-  //! Optional if no resource are found with this constraint
+  //! if given, list of components that could be loaded on a container.
+  /*! Ignored if no resources are found with this constraint.*/
   CompoList componentList;
 
   // Permits to order resources
-  //! required number of proc
+  //! required number of processors
+  /*! This parameter must be specified explicitly, because it is not provided
+      by the resource definition.
+  */
   long nb_proc;
+
   //! required memory size
+  /*! This parameter must be specified explicitly, because it is not provided
+      by the resource definition.
+
+      The parameter specifies the maximum memory value that could be allocated
+      for executing the job. This takes into account not only the data that
+      could be loaded by the batch process but also the linked dynamic library.
+      A possible problem, for example in the case where you use the ssh
+      emulation of a batch system, is to get an error message as below
+      when libBatch tries to run the ssh command:
+\verbatim
+/usr/bin/ssh: error while loading shared libraries: libcrypto.so.0.9.8: failed
+to map segment from shared object: Cannot allocate memory
+\endverbatim
+      In this example, the mem_mb was set to 1MB, value that is not
+      sufficient to load the dynamic libraries linked to the ssh
+      executable (libcrypto.so in the error message).
+      So, even in the case of a simple test shell script, you should
+      set this value at least to a standard threshold as 500MB.
+  */
   long mem_mb;
   //! required frequency
   long cpu_clock;
-  //! required number of node
+  //! required number of nodes. Can be used when submitting slurm jobs.
   long nb_node;
   //! required number of proc per node
   long nb_proc_per_node;
@@ -81,14 +110,18 @@ struct ResourceDefinition
   string hostname;
   //! Type of the resource ("cluster" or "single_machine")
   string type;
-  //! protocol to connect to the resource
-  //! protocol used to start a remote container (ssh or rsh)
+  //! protocol to connect to the resource and to start a remote container
+  //! Possible values:
+  //!   "rsh"   : uses rsh and rcp
+  //!   "ssh"   : uses ssh and scp
+  //!   "rsync" : uses ssh and rsync
   string protocol;
   //! login name to use to start a remote container
   string username;
   //! salome application to use to start a remote container
   string applipath;
-  //! list of available components 
+  //! list of available components.
+  //! An empty list means every component is available.
   CompoList componentList;
 
   //! operating system 
@@ -156,6 +189,15 @@ interface ResourcesManager
     */
   void RemoveResource(in string resource_name, in boolean write, in string xml_file) 
     raises (SALOME::SALOME_Exception);
+
+  //! Create a machine file for PaCO container
+  string getMachineFile(in string resource_name, in long nb_procs, in string parallelLib)
+    raises (SALOME::SALOME_Exception);
+
+  //! Return list of resources available (regarding content of CatalogResources.xml). And for each resource the number of proc available of it.
+  void ListAllAvailableResources(out ResourceList machines, out IntegerList nbProcsOfMachines) raises (SALOME::SALOME_Exception);
+
+  ResourceList ListAllResourcesInCatalog() raises (SALOME::SALOME_Exception);
 };
 
 };