Skip to content

Transfer compute jobs

To transfer compute jobs to PERSEUS, you can use the compute jobs API. This way, you can see all compute jobs related to a compute project within the project details view. Additionally, in case you use Andromeda, you allow your users to see their compute jobs as well.

You can transfer any number of jobs by using the endpoint /service/JobManager/add. If you want to update an already transferred job, for example to change the state, simply transfer the job again. PERSEUS will auto-detect if the job is already in the database by checking the job_id as well as the tuple group_id and group_index. If a match is found, it will overwrite the existing job instead of creating a new one.

A job contains the following information:

AttributeTypeDescription

job_id*

intThe job id given by the scheduler
group_idintIn case this job is a group / array job, the group’s id
group_indexint

In case this job is a group / array job, the corresponding index

job_namestrA human readable job name

project_oid*

strThe ObjectId of the corresponding PERSEUS project

compute_project_id*

strThe identifier of the corresponding compute project

cluster_id*

str

The identifier of the cluster the job was submitted to (has to be identical with the Cluster.id property within PERSEUS)

partitionstrThe partition the job was submitted to
nodeslist[str]The partition the nodes was submitted to
allocated_resourceslist[str]

The allocated resources of the job as human readable strings

working_directorystrThe working directory of the job
submittedstr

An ISO-formatted datetime string indicating when the job was submitted

startstr

An ISO-formatted datetime string indicating when the job started (or will start)

endstr

An ISO-formatted datetime string indicating when the job ended (or will end)

time_limitintGiven time limit in seconds
userstr

The username of the user who submitted the job (to benefit from all features, the username should be a property known to PERSEUS by the Person.username property)

statestr

The current state in which the job is in (see job states for further information)

priority_idstr

The identifier of the priority used for submitting the job (see how to manage priorities for further information)

reservationstrThe reservation used for job submission
reasonstrA reason for non-successful job submission / finish
cluster_cockpit_idintThe identifier from cluster cockpit referencing this job
additional_datadict[str, Any]

Any data you want to save together with this job, for example further statistics

Please see Services - JobManager in the API documentation for details on the related data models.

The following states are available as job state. See job states in Andromeda for further reference.

StateMeaning
RUNNINGThe job has resources allocated and is currently running.
PENDING

The job is queued and waiting for resources to become available.

COMPLETEDThe job finished successfully.
SUSPENDED

The job has an allocation but its execution is currently paused.

CANCELLEDThe job was cancelled by a user or an administrator.
BOOT_FAIL

The allocated nodes failed to boot, so the job could not start.

DEADLINE

The job reached its configured deadline before it could complete.

FAILEDThe job terminated with a non-zero exit code.
NODE_FAIL

One or more allocated nodes failed while the job was running.

OUT_OF_MEMORYThe job exceeded the memory available to it.
PREEMPTED

The job was stopped so higher-priority work could use its resources.

TIMEOUTThe job ran longer than its time limit and was stopped.