-// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//! Type of the job.
/*! There are three supported types:
- "command" : execute #job_file script without %SALOME environment
+ - "command_salome" : execute #job_file script within %SALOME environment
+ (salome shell) but the %SALOME application is not
+ launched
- "python_salome" : execute #job_file python script by %SALOME
- "yacs_file" : execute #job_file by YACS module as a xml YACS schema
*/
*/
string job_file;
+ //! Pre processing script.
+ /*! This script is called on the remote resource, from #work_directory, after
+ the copy of #in_files and before submiting the job.
+ */
+ string pre_command;
+
//! Local path to a script to be sourced in the environment of the job.
/*! It may contain modifications of environment variables.
*/
string env_file;
//! List of local data files to be copied to #work_directory.
- /*! #job_file and #env_file are automaticaly copied, without adding them
+ /*! #job_file and #env_file are automatically copied, without adding them
to this list. If basenames are specified, then the files are supposed
to be located in #local_directory.
*/
this directory. A change directory toward this working directory is done
by the batch system before running the job.
If not specified (empty string), the launcher will use the working
- directory of the chosen ressource and if this is also an empty string
+ directory of the chosen resource and if this is also an empty string
the value used will be $HOME/Batch/workdir_"date" where $HOME is the
- value of the environment variable on the remote ressource and "date" is
+ value of the environment variable on the remote resource and "date" is
the current date.
*/
string work_directory;
//! Prefix to be applied to #in_files.
/*! It can be used to specify where to find the local input files.
- It's optionnal if you specify the absolute path name of input files.
+ It's optional if you specify the absolute path name of input files.
*/
string local_directory;
*/
string maximum_duration;
- //! Specifies the rules to choose the ressource where to execute the job.
- /*! The additionnal two following parameters MUST be specified explicitly,
+ //! Specifies the rules to choose the resource where to execute the job.
+ /*! The additional two following parameters MUST be specified explicitly,
because they are not provided by the resource definition:
- mem_mb -> Memory expressed in megabytes.
- nb_proc -> Number of Processors.
//! Name of the batch queue chosen - optional
string queue;
-
+
+ //! Name of the partition - optional
+ /*! It can be used only for slurm batch managers.
+ */
+ string partition;
+
//! Specifies if the job must run in exclusive mode (without sharing nodes with other jobs)
boolean exclusive;
when the job type is "yacs_file". It gives the number of seconds
between two updates of the state dump file. There will be no dump file
if this parameter is missing or if its value is less than 1.
+ - YACSDriverOptions : options of the driver command when the job type is
+ "yacs_file".
+ - LoalLevelerJobType : LL_JOBTYPE.
*/
Engines::ParameterList specific_parameters;
/*! Launching the job consists of:
- create the working directory on the remote file system
- copy the input files into the working directory
+ - launch the pre processing command if one is defined
- submit the job to the batch manager
*/
void launchJob (in long job_id) raises (SALOME::SALOME_Exception);
//! Get the execution state of the job.
/*! \return "CREATED", "IN_PROCESS", "QUEUED", "RUNNING", "PAUSED",
- "FINISHED" or "FAILED"
+ "FINISHED", "ERROR" or "FAILED"
\see LIBBATCH/src/core/Constants.hxx
*/
string getJobState (in long job_id) raises (SALOME::SALOME_Exception);
//! Get names or ids of hosts assigned to the job
string getAssignedHostnames (in long job_id) raises (SALOME::SALOME_Exception);
+ //! Copy all the in_files of the job to the work_directory.
+ void exportInputFiles(in long job_id) raises (SALOME::SALOME_Exception);
+
//! Copy the result files from the work directory of the job
//! to a local directory.
/*! The list of result files is given by the JobParameters::out_files parameter.
*/
boolean getJobDumpState(in long job_id, in string directory) raises (SALOME::SALOME_Exception);
- //! Retrieve one sigle file from the working directory.
+ //! Remove the working directory on the remote file system.
+ /*!
+ \param job_id Job id returned by createJob().
+ */
+ void clearJobWorkingDir(in long job_id) raises (SALOME::SALOME_Exception);
+
+ //! Retrieve one single file from the working directory.
/*! Use this method if you don't want to copy all the results of the job,
for instance if you want to obtain a file which contains the computing
progress while the job is running.
//! Kill the job and remove it from the jobs list
void removeJob (in long job_id) raises (SALOME::SALOME_Exception);
+ //! Get the job's serialization string
+ string dumpJob(in long job_id) raises (SALOME::SALOME_Exception);
+ //! Create a job from its serialization string
+ /*! \param dumpedJob Serialization string returned by dumpJob.
+ \return Job id
+ */
+ long restoreJob(in string dumpedJob) raises (SALOME::SALOME_Exception);
+
// Useful methods
long createJobWithFile(in string xmlJobFile, in string clusterName) raises (SALOME::SALOME_Exception);
boolean testBatch (in ResourceParameters params) raises (SALOME::SALOME_Exception);
void loadJobs(in string jobs_file) raises (SALOME::SALOME_Exception);
//! Save the current list of jobs in an xml file.
void saveJobs(in string jobs_file) raises (SALOME::SALOME_Exception);
-
};
};