Package net.sf.basedb.opengrid.engine
Class SlurmEngine
java.lang.Object
net.sf.basedb.opengrid.engine.SlurmEngine
- All Implemented Interfaces:
ClusterEngine
public class SlurmEngine extends Object implements ClusterEngine
Cluster engine implementation for Slurm clusters.
- Since:
- 1.4
- Author:
- nicklas
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SlurmEngine.SacctCmd
Implements the 'sacct' command for getting information about a completed job.static class
SlurmEngine.SlurmJobStatus
Job status information for Slurm jobs.static class
SlurmEngine.SqueueCmd
Implements the 'squeue' command for getting information about a waiting or running job. -
Field Summary
Fields Modifier and Type Field Description private static Set<String>
ignoredSbatchOptions
private static org.slf4j.Logger
logger
-
Constructor Summary
Constructors Constructor Description SlurmEngine()
-
Method Summary
Modifier and Type Method Description CmdResult<String>
cancelJob(OpenGridSession session, JobIdentifier jobId)
Tell the cluster that a running or waiting job should be cancelled.String
createJobScript(JobDefinition job, String workFolder, String tmpFolder)
Generates a script that executes the job script.JobSubmission
createJobSubmission(OpenGridSession session, JobDefinition job, String workFolder, String tmpFolder)
Create a job submission for executing a job on the cluster.String
createSbatchScript(JobDefinition job, String workFolder, String tmpFolder)
Generates a script that can be submitted with 'sbatch' to slurm.private UploadSource
getScript(String name)
CmdResult<JobStatus>
getStatusIfFinished(OpenGridSession session, JobIdentifier jobId, int timeAdjustment)
Get information about a job that is expected to have finished.CmdResult<JobStatus>
getStatusInQueue(OpenGridSession session, JobIdentifier jobId, int timeAdjustment)
Get information about a job that is expected to be waiting in the queue or running.void
setDefaultConfig(ClusterConfig config)
Set default configuration parameters on the given configuration object.
-
Field Details
-
logger
private static final org.slf4j.Logger logger -
ignoredSbatchOptions
-
-
Constructor Details
-
SlurmEngine
public SlurmEngine()
-
-
Method Details
-
setDefaultConfig
Description copied from interface:ClusterEngine
Set default configuration parameters on the given configuration object. It is expected that theClusterConfig.getType()
is a type that is compatible with the engine implementation.- Specified by:
setDefaultConfig
in interfaceClusterEngine
-
createJobSubmission
public JobSubmission createJobSubmission(OpenGridSession session, JobDefinition job, String workFolder, String tmpFolder)Description copied from interface:ClusterEngine
Create a job submission for executing a job on the cluster.- Specified by:
createJobSubmission
in interfaceClusterEngine
- Parameters:
session
- A connected session that can be used to execute commands on the clusterjob
- Information about the jobworkFolder
- The work folder where files needed for the job are storedtmpFolder
- A temporary folder where the job is allowed to store files- Returns:
- A JobSubmission instance
-
createSbatchScript
Generates a script that can be submitted with 'sbatch' to slurm. This script will in turn call the actual job script with 'srun'. -
createJobScript
Generates a script that executes the job script. -
getScript
-
getStatusInQueue
public CmdResult<JobStatus> getStatusInQueue(OpenGridSession session, JobIdentifier jobId, int timeAdjustment)Description copied from interface:ClusterEngine
Get information about a job that is expected to be waiting in the queue or running. If this is not the case, the CmdResult should return with exit status set to 1.- Specified by:
getStatusInQueue
in interfaceClusterEngine
- Parameters:
session
- A connected session that can be used to execute commands on the clusterjobId
- Job identifiertimeAdjustment
- Adjustment in seconds that should be applied to all times returned by commands on the cluster (this will make times compatible with BASE server)- Returns:
- A CmdResult instance with JobStatus information
-
getStatusIfFinished
public CmdResult<JobStatus> getStatusIfFinished(OpenGridSession session, JobIdentifier jobId, int timeAdjustment)Description copied from interface:ClusterEngine
Get information about a job that is expected to have finished.- Specified by:
getStatusIfFinished
in interfaceClusterEngine
- Parameters:
session
- A connected session that can be used to execute commands on the clusterjobId
- Job identifiertimeAdjustment
- Adjustment in seconds that should be applied to all times returned by commands on the cluster (this will make times compatible with BASE server)- Returns:
- A CmdResult instance with JobStatus information
-
cancelJob
Description copied from interface:ClusterEngine
Tell the cluster that a running or waiting job should be cancelled.- Specified by:
cancelJob
in interfaceClusterEngine
- Parameters:
session
- A connected session that can be used to execute commands on the clusterjobId
- Job identifier- Returns:
- The result of executing the command
-