Thrift module: computeResourceModel

ModuleServicesData typesConstants
computeResourceModel BatchQueue
ComputeResourceDescription
DataMovementInterface
DataMovementProtocol
FileSystems
GlobusJobSubmission
GridFTPDataMovement
JobManagerCommand
JobSubmissionInterface
JobSubmissionProtocol
LOCALDataMovement
LOCALSubmission
ResourceJobManager
ResourceJobManagerType
SCPDataMovement
SSHJobSubmission
SecurityProtocol
DEFAULT_ID

Constants

ConstantTypeValue
DEFAULT_IDstring"DO_NOT_SET_AT_CLIENTS"

Enumerations

Enumeration: ResourceJobManagerType

Enumeration of local resource job manager types supported by Airavata

FORK: Forking of commands without any job manager

PBS: Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.

UGE: Univa Grid Engine, a variation of PBS implementation.

SLURM: The Simple Linux Utility for Resource Management is a open source workload manager.



FORK0
PBS1
UGE2
SLURM3

Enumeration: JobManagerCommand

Enumeration of resource job manager commands

SUBMISSION: Ex: qsub, sbatch

JOBMONITORING: Ex: qstat, squeue

DELETION: Ex: qdel, scancel

CHECK_JOB: Detailed Status about the Job. Ex: checkjob

SHOW_QUEUE: List of Queued Job by the schedular. Ex: showq

SHOW_RESERVATION: List all reservations. Ex:showres, show_res

SHOW_START: Display the start time of the specified job. Ex: showstart



SUBMISSION0
JOB_MONITORING1
DELETION2
CHECK_JOB3
SHOW_QUEUE4
SHOW_RESERVATION5
SHOW_START6

Enumeration: FileSystems

Enumeration of File Systems on the resource

FORK: Forking of commands without any job manager

PBS: Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.

UGE: Univa Grid Engine, a variation of PBS implementation.

SLURM: The Simple Linux Utility for Resource Management is a open source workload manager.



HOME0
WORK1
LOCALTMP2
SCRATCH3
ARCHIVE4

Enumeration: SecurityProtocol

Enumeration of security authentication and authorization mechanisms supported by Airavata. This enumeration just describes the supported mechanism. The corresponding security credentials are registered with Airavata Credential store.

USERNAME_PASSWORD: A User Name.

SSH_KEYS: SSH Keys



USERNAME_PASSWORD0
SSH_KEYS1
GSI2
KERBEROS3
OAUTH4

Enumeration: JobSubmissionProtocol

Enumeration of Airavata supported Job Submission Mechanisms for High Performance Computing Clusters.

SSH: Execute remote job submission commands using via secure shell protocol.

GRAM: Execute remote jobs via Globus GRAM service.

UNICORE: Execute remote jobs via Unicore services



LOCAL0
SSH1
GLOBUS2
UNICORE3

Enumeration: DataMovementProtocol

Enumeration of data movement supported by Airavata

SCP: Job manager supporting the Portal Batch System (PBS) protocol. Some examples include TORQUE, PBSPro, Grid Engine.

SFTP: The Simple Linux Utility for Resource Management is a open source workload manager.

GridFTP: Globus File Transfer Protocol

UNICORE_STORAGE_SERVICE: Storage Service Provided by Unicore



LOCAL0
SCP1
SFTP2
GridFTP3
UNICORE_STORAGE_SERVICE4

Data structures

Struct: ResourceJobManager

KeyFieldTypeDescriptionRequirednessDefault value
1resourceJobManagerIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2resourceJobManagerTypeResourceJobManagerTyperequired
3pushMonitoringEndpointstringoptional
4jobManagerBinPathstringoptional
5jobManagerCommandsmap<JobManagerCommand, string>optional

Resource Job Manager Information

resourceJobManagerType: A typical HPC cluster has a single Job Manager to manage the resources.

pushMonitoringEndpoint: If the job manager pushes out state changes to a database or bus, specify the service endpoint. Ex: Moab Web Service, Moab MongoDB URL, AMQP (GLUE2) Broker

jobManagerBinPath: Path to the Job Manager Installation Binary directory.

jobManagerCommands: An enumeration of commonly used manager commands.


Struct: BatchQueue

KeyFieldTypeDescriptionRequirednessDefault value
1queueNamestringrequired
2queueDescriptionstringoptional
3maxRunTimei32optional
4maxNodesi32optional
5maxProcessorsi32optional
6maxJobsInQueuei32optional

Batch Queue Information on SuperComputers

maxRunTime: Maximum allowed run time in hours.

Struct: SCPDataMovement

KeyFieldTypeDescriptionRequirednessDefault value
1dataMovementInterfaceIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2securityProtocolSecurityProtocolrequired
3alternativeSCPHostNamestringoptional
4sshPorti32optional22

Data Movement through Secured Copy

alternativeSCPHostName: If the login to scp is different than the hostname itself, specify it here

sshPort: If a non-default port needs to used, specify it.

Struct: GridFTPDataMovement

KeyFieldTypeDescriptionRequirednessDefault value
1dataMovementInterfaceIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2securityProtocolSecurityProtocolrequired
3gridFTPEndPointslist<string>required

Data Movement through GridFTP

alternativeSCPHostName: If the login to scp is different than the hostname itself, specify it here

sshPort: If a non-default port needs to used, specify it.

Struct: LOCALSubmission

KeyFieldTypeDescriptionRequirednessDefault value
1jobSubmissionInterfaceIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2resourceJobManagerResourceJobManagerrequired

Locally Fork Jobs as OS processes

alternativeSSHHostName: If the login to ssh is different than the hostname itself, specify it here

sshPort: If a non-default port needs to used, specify it.

Struct: LOCALDataMovement

KeyFieldTypeDescriptionRequirednessDefault value
1dataMovementInterfaceIdstringrequired"DO_NOT_SET_AT_CLIENTS"

LOCAL

alternativeSCPHostName: If the login to scp is different than the hostname itself, specify it here

sshPort: If a non-defualt port needs to used, specify it.

Struct: SSHJobSubmission

KeyFieldTypeDescriptionRequirednessDefault value
1jobSubmissionInterfaceIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2securityProtocolSecurityProtocolrequired
3resourceJobManagerResourceJobManagerrequired
4alternativeSSHHostNamestringoptional
5sshPorti32optional22

Authenticate using Secured Shell

alternativeSSHHostName: If the login to ssh is different than the hostname itself, specify it here

sshPort: If a non-default port needs to used, specify it.

Struct: GlobusJobSubmission

KeyFieldTypeDescriptionRequirednessDefault value
1jobSubmissionInterfaceIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2securityProtocolSecurityProtocolrequired
3globusGateKeeperEndPointlist<string>optional

Struct: JobSubmissionInterface

KeyFieldTypeDescriptionRequirednessDefault value
1jobSubmissionInterfaceIdstringrequired
2jobSubmissionProtocolJobSubmissionProtocolrequired
3priorityOrderi32required0

Job Submission Interfaces

jobSubmissionInterfaceId: The Job Submission Interface has to be previously registered and referenced here.

priorityOrder: For resources with multiple interfaces, the priority order should be selected. Lower the numerical number, higher the priority


Struct: DataMovementInterface

KeyFieldTypeDescriptionRequirednessDefault value
1dataMovementInterfaceIdstringrequired
2dataMovementProtocolDataMovementProtocolrequired
3priorityOrderi32required0

Data Movement Interfaces

dataMovementInterfaceId: The Data Movement Interface has to be previously registered and referenced here.

priorityOrder: For resources with multiple interfaces, the priority order should be selected. Lower the numerical number, higher the priority


Struct: ComputeResourceDescription

KeyFieldTypeDescriptionRequirednessDefault value
1computeResourceIdstringrequired"DO_NOT_SET_AT_CLIENTS"
2hostNamestringrequired
3hostAliasesset<string>optional
4ipAddressesset<string>optional
5resourceDescriptionstringoptional
6batchQueueslist<BatchQueue>optional
7fileSystemsmap<FileSystems, string>optional
8jobSubmissionInterfaceslist<JobSubmissionInterface>optional
9dataMovementInterfaceslist<DataMovementInterface>optional

Computational Resource Description

computeResourceId: Airavata Internal Unique Identifier to distinguish Compute Resource.

hostName: Fully Qualified Host Name.

hostAliases: Aliases if any.

ipAddress: IP Addresses of the Resource.

resourceDescription: A user friendly description of the resource.

JobSubmissionProtocols: A computational resources may have one or more ways of submitting Jobs. This structure will hold all available mechanisms to interact with the resource. The key is the priority

DataMovementProtocol: Option to specify a prefered data movement mechanism of the available options.

fileSystems: Map of file systems type and the path.