Base ResourceManager API

class radical.entk.execman.base.resource_manager.Base_ResourceManager(resource_desc, sid, rts, rts_config)[source]

A resource manager takes the responsibility of placing resource requests on different, possibly multiple, DCIs.

Arguments
resource_desc

dictionary with details of the resource request and access credentials of the user

example

resource_desc = { | ‘resource’ : ‘xsede.stampede’, | ‘walltime’ : 120, | ‘cpus’ : 64, | ‘gpus’ : 0, # optional | ‘project’ : ‘TG-abcxyz’, | ‘memory’ : ‘16000’ # optional | ‘queue’ : ‘abc’, # optional | ‘access_schema’ : ‘ssh’ # optional | ‘job_name’ : ‘test_job’ # optional}

_populate()[source]
Purpose: Populate the ResourceManager class with the validated

resource description

_terminate_resource_request()[source]
Purpose: Cancel resource request by terminating any reservation

on any acquired resources or resources pending acquisition

_validate_resource_desc()[source]

Purpose: Validate the provided resource description

property access_schema

Return user specified access schema – ‘ssh’ or ‘gsissh’ or None

Type

getter

property cpus

Return user specified number of cpus

Type

getter

get_completed_states()[source]

Purpose: Test if a resource allocation was submitted

get_resource_allocation_state()[source]

Purpose: Get the state of the resource allocation

get_rts_info()[source]

Purpose: Return the RTS information as a dict.

property gpus

Return user specified number of gpus

Type

getter

property job_name

Return user specified job_name

Type

getter

property memory

Return user specified amount of memory

Type

getter

property outputs

list of files to be staged from remote after execution :setter: Assign a list of names of files that need to be staged from the

remote machine

Type

getter

property project

Return user specified project ID

Type

getter

property queue

Return user specified resource queue to be used

Type

getter

property resource

Return user specified resource name

Type

getter

property services

Returns the list of tasks used to start “global” services :setter: Assigns a list of service tasks, which are launched before any stage starts and run during the whole workflow execution

Type

getter

property shared_data
list of files to be staged to remote and that are common to

multiple tasks

Setter

Assign a list of names of files that need to be accessible to tasks

Type

getter

submit_resource_request()[source]

Purpose: Submit resource request per provided description

property walltime

Return user specified walltime

Type

getter

RP ResourceManager API

class radical.entk.execman.rp.resource_manager.ResourceManager(resource_desc, sid, rts_config)[source]

A resource manager takes the responsibility of placing resource requests on different, possibly multiple, DCIs. This ResourceManager uses the RADICAL Pilot as the underlying runtime system.

Arguments
resource_desc

dictionary with details of the resource request and access credentials of the user

example

resource_desc = { | ‘resource’ : ‘xsede.stampede’, | ‘walltime’ : 120, | ‘cpus’ : 64, | ‘project’ : ‘TG-abcxyz’, | ‘queue’ : ‘abc’, # optional | ‘access_schema’ : ‘ssh’ # optional}

_terminate_resource_request()[source]

Purpose: Cancel the RADICAL Pilot Job

get_completed_states()[source]

Purpose: return states which signal completed resource allocation

get_resource_allocation_state()[source]

Purpose: Get the state of the resource allocation

get_rts_info()[source]

Purpose: Return the RTS information as a dict.

property pilot

Return the submitted Pilot

Type

getter

property pmgr

Return the Radical Pilot manager currently being used

Type

getter

property session

Return the Radical Pilot session currently being used

Type

getter

submit_resource_request()[source]
Purpose: Create and submits a RADICAL Pilot Job as per the user

provided resource description

Dummy ResourceManager API

class radical.entk.execman.mock.resource_manager.ResourceManager(resource_desc, sid, rts_config)[source]

A resource manager takes the responsibility of placing resource requests on different, possibly multiple, DCIs. This ResourceManager uses mocks an implementation by doing nothing, it is only usable for testing.

Arguments
resource_desc

dictionary with details of the resource request and access credentials of the user

example

resource_desc = { | ‘resource’ : ‘xsede.stampede’, | ‘walltime’ : 120, | ‘cpus’ : 64, | ‘project’ : ‘TG-abcxyz’, | ‘queue’ : ‘abc’, # optional | ‘access_schema’ : ‘ssh’ # optional}

_populate()[source]

Purpose: evaluate attributes provided in the resource description

_terminate_resource_request()[source]

Purpose: Cancel the resource

_validate_resource_desc()[source]

Purpose: validate the provided resource description

get_completed_states()[source]

Purpose: test if a resource allocation was submitted

get_resource_allocation_state()[source]

Purpose: get the state of the resource allocation

get_rts_info()[source]

Purpose: Return the RTS information as a dict.

submit_resource_request(*args)[source]

Purpose: Create a resourceas per provided resource description