首页 > 技术文章 > drmaa 包

RandomRand 2017-09-30 15:13 原文

用于DRM​​作业提交和控制的python包。

该软件包是DRMAA 1.0 Python语言绑定规范(http://www.ogf.org/documents/GFD.143.pdf)的实现。源托管在GitHub上:https://github.com/pygridtools/drmaa-python 发行版的一封来自PyPI:https://pypi.python.org/pypi/drmaa 文档托管在ReadTheDocs:HTTP:// DRMAA -python.readthedocs.org/

作者: 恩里科·锡罗拉(恩里科 sirola @ statpro 的COM
作者: 达恩·布兰查德(布兰查德@ gmail的的COM
classdrmaa.JobInfojobIdhasExitedhasSignalterminatedSignalhasCoreDumpwasAbortedexitStatusresourceUsage 

基地: tuple

exitStatus

字段6的别名

hasCoreDump

字段4的别名

hasExited

字段1的别名

hasSignal

字段2的别名

jobId

字段号0的别名

resourceUsage

字段7的别名

terminatedSignal

字段3的别名

wasAborted

字段5的别名

drmaa.JobTemplate** kwargs [来源]

基地: object

要提交给DRM的工作。

HOME_DIRECTORY= u'$ drmaa_hd_ph $'
PARAMETRIC_INDEX= u'$ drmaa_incr_ph $'
WORKING_DIRECTORY= u'$ drmaa_wd_ph $'
args

表示列表的DRMAA属性。

用矢量C管理DRMAA属性管理功能。

attributeNames

支持的DRMAA标量属性名称列表。

这显然是无用的,并且应该替换为JobTemplate实例的属性名称列表。

blockEmail=假
deadlineTime=你'
delete[来源]

取消分配基础的DRMAA作业模板。

email

表示列表的DRMAA属性。

用矢量C管理DRMAA属性管理功能。

errorPath=你'
hardRunDurationLimit

DRMAA属性,要使用标量C DRMAA属性管理功能进行管理。

hardWallclockTimeLimit

DRMAA属性,要使用标量C DRMAA属性管理功能进行管理。

inputPath=你'
jobCategory=你'
jobEnvironment

代表python dict的DRMAA属性。

用矢量C管理DRMAA属性管理功能。

jobName=你'
jobSubmissionState=你'
joinFiles=假
nativeSpecification=你'
outputPath=你'
remoteCommand=你'
softRunDurationLimit

DRMAA属性,要使用标量C DRMAA属性管理功能进行管理。

softWallclockTimeLimit

DRMAA属性,要使用标量C DRMAA属性管理功能进行管理。

startTime=你'
transferFiles=你'
workingDirectory=你'
classdrmaa.SessioncontactString = None [source]

基地: object

DRMAA会议。

该类是与DRM系统进行通信的切入点

JOB_IDS_SESSION_ALL='DRMAA_JOB_IDS_SESSION_ALL'
JOB_IDS_SESSION_ANY='DRMAA_JOB_IDS_SESSION_ANY'
TIMEOUT_NO_WAIT= 0
TIMEOUT_WAIT_FOREVER= -1
contact=你'
staticcontroljobIdoperation [source]

用于持有,释放,暂停,恢复或终止由jobId识别的作业。

参数:
jobId : string

如果jobId是Session.JOB_IDS_SESSION_ALL,那么这个例程对在此DRMAA会话期间提交的所有作业起作用,直到调用control()。行动的合法价值及其含义是

操作: 字符串
可能的值是:
JobControlAction.SUSPEND

停止工作

JobControlAction.RESUME

(重新)开始工作

JobControlAction.HOLD

把工作搁置

JobControlAction.RELEASE

释放工作上的搁置

JobControlAction.TERMINATE

杀死工作

为了避免多线程应用程序中的线程竞争,DRMAA实现用户应显式同步此调用与可能更改远程作业数的任何其他作业提交调用或控制调用。

一旦动作被DRM系统确认,该方法就会返回,但不一定等到动作完成。某些DRMAA实现可能允许将此方法用于控制DRMAA会话外部提交的作业,例如其他DRMAA会话中通过其他DRMAA实现提交的作业或通过本地实用程序提交的作业提交的作业。

staticcreateJobTemplate[source]

分配新的工作模板。

作业模板用于设置要提交的作业的环境。创建作业模板后,不再需要删除作业模板(通过deleteJobTemplate())。否则可能会导致内存泄漏。

staticdeleteJobTemplatejobTemplate [source]

取消分配作业模板。

参数:
jobTemplate : JobTemplate

工作诱惑被删除

此例程对运行作业没有影响。

drmaaImplementation=你'
drmsInfo=你'
staticexit[source]

用于脱离DRM。

此例程结束当前的DRMAA会话,但不影响任何作业(例如,排队和正在运行的作业保持排队和运行)。只有一个线程只能使用exit()调用一次。对exit()超出第一个的额外调用将​​抛出NoActiveSessionException。

staticinitializecontactString = None [source]

用于初始化DRMAA会话以供使用。

参数:
contactString : string或None

可用于指定要使用哪个DRM系统的实现相关字符串

在任何其他DRMAA调用之前,必须调用此方法。如果contactString为None,则使用默认DRM系统,前提是只有一个可用的DRMAA实现。如果有多个DRMAA实现可用,initialize()抛出一个NoDefaultContactStringSelectedException。initialize()只应该调用一次,只有一个线程。推荐主线程 通过另一个线程调用initialize(),或者通过抛出一个SessionAlreadyActiveException,同一个线程对initialize()进行额外的调用。

staticjobStatusjobId [source]

返回由jobId标识的作业的程序状态。

从此方法返回的可能值为:

  • JobState.UNDETERMINED:进程状态无法确定,
  • JobState.QUEUED_ACTIVE:作业排队并处于活动状态,
  • JobState.SYSTEM_ON_HOLD:作业排队并处于系统保持状态,
  • JobState.USER_ON_HOLD:作业排队等待用户持有,
  • JobState.USER_SYSTEM_ON_HOLD:作业排队等待用户和
    系统保持,
  • JobState.RUNNING:作业正在运行,
  • JobState.SYSTEM_SUSPENDED:作业被暂停系统,
  • JobState.USER_SUSPENDED:作业是用户暂停,
  • JobState.DONE:作业正常完成,
  • JobState.FAILED:作业完成但失败。

DRMAA实现应始终从DRM系统获取作业的状态,除非状态已被确定为FAILED或DONE,状态已成功缓存。已终止的作业返回FAILED状态。

staticrunBulkJobsjobTemplatebeginIndexendIndexstep [source]

提交一组参数作业,每个作业具有在作业模板中定义的属性。

参数:
jobTemplate : JobTemplate

该模板代表要运行的作业

beginIndex : int

第一份工作的索引

endIndex : int

最后一份工作的索引

step : int

工作ID之间的步骤

返回的作业标识符是与底层DRM系统返回的字符串相同的字符串。JobTemplate类定义了用于指定路径的 JobTemplate.PARAMETRIC_INDEX占位符。该占位符用于表示通过此方法提交的任务的各个标识符。

staticrunJobjobTemplate [source]

使用作业模板中定义的属性提交作业。

参数:
jobTemplate : JobTemplate

表示要运行的作业的模板

返回的作业标识符是与底层DRM系统返回的字符串相同的字符串。

staticsynchronizejobIdstimeout = -1dispose = False [source]

等待jobList指定的所有作业完成执行。

参数:
jobIds

如果jobIds包含Session.JOB_IDS_SESSION_ALL,则该方法将等待在此DRMAA会话期间提交的所有作业,直到synchronized()被调用

timeout : int

等待完成作业的最长时间(以秒为单位)。

可以指定Session.TIMEOUT_WAIT_FOREVER的值来无限期地等待结果。如果没有可用结果,则可以指定Session.TIMEOUT_NO_WAIT立即返回。

处理: 布尔

指定了如何处理远程作业的内部数据记录的收集,其中包括在执行期间作业对系统资源的消耗的记录以及其他统计信息。如果设置为True,则DRM将在synchronize()调用结束时处理作业的数据记录。如果设置为False,则将通过wait()方法留下数据记录以供将来访问。应用程序的责任是确保为每个作业调用synchronize()` wait()`。不这样做会造成内存泄漏。请注意,调用synchronize()与dispose设置为true将刷新列表中所有作业的所有会计信息。

为了避免多线程应用程序中的线程竞争条件,DRMAA实现用户应该将此调用显式同步到可能会更改远程作业数量的任何其他作业提交调用或控制调用。

如果在超时之前呼叫退出,则所有作业都已被等待或有中断。如果调用在超时时退出,则抛出一个ExitTimeoutException。呼叫者应检查此呼叫之前和之后的系统时间,以确保已经过了多少时间。

version=版本(major = 10L,minor = 10L)
staticwaitjobIdtimeout = -1 [source]

等待jobId的作业完成执行或失败。

参数:
jobId : str

作业ID等待完成。

如果特殊字符串Session.JOB_IDS_SESSION_ANY作为jobId提供,则此例程将等待会话中的任何作业

timeout : float

当结果不能立即可用时,超时值用于指定所需的行为。

可以指定Session.TIMEOUT_WAIT_FOREVER的值来无限期地等待结果。如果没有可用结果,则可以指定Session.TIMEOUT_NO_WAIT立即返回。或者,可以指定几秒钟来指示等待结果变得可用的时间

该例程在wait3 POSIX例程上建模。如果呼叫在超时前退出,则该作业已成功等待或出现中断。如果调用在超时时退出,则抛出一个 ExitTimeoutException呼叫者应检查此呼叫之前和之后的系统时间,以确保已经过了多少时间。例程在成功调用时收集作业数据记录,因此任何后续的wait()调用将失败,抛出 InvalidJobException,这意味着作业的数据记录已经被收集。这个例外与工作未知一样。(等待()可以在单个作业上多次成功调用的唯一的情况是在wait()之前的调用在作业完成之前超时)。

异常drmaa.AlreadyActiveSessionException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.AuthorizationException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.ConflictingAttributeValuesException[来源]

基地:drmaa.errors.DrmaaExceptionexceptions.AttributeError

异常drmaa.DefaultContactStringException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.DeniedByDrmException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.DrmCommunicationException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.DrmsExitException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.DrmsInitException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.ExitTimeoutException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.HoldInconsistentStateException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.IllegalStateException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.InternalException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.InvalidAttributeFormatException[来源]

基地:drmaa.errors.DrmaaExceptionexceptions.AttributeError

异常drmaa.InvalidContactStringException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.InvalidJobException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.InvalidJobTemplateException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.NoActiveSessionException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.NoDefaultContactStringSelectedException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.ReleaseInconsistentStateException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.ResumeInconsistentStateException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.SuspendInconsistentStateException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.TryLaterException[来源]

基地: drmaa.errors.DrmaaException

异常drmaa.UnsupportedAttributeException[来源]

基地:drmaa.errors.DrmaaExceptionexceptions.AttributeError

异常drmaa.InvalidArgumentException[来源]

基地:drmaa.errors.DrmaaExceptionexceptions.AttributeError

异常drmaa.InvalidAttributeValueException[来源]

基地:drmaa.errors.DrmaaExceptionexceptions.AttributeError

异常drmaa.OutOfMemoryException[来源]

基地:drmaa.errors.DrmaaExceptionexceptions.MemoryError

drmaa.control_action_to_string代码[来源]
drmaa.job_state代码[来源]
drmaa.JobControlAction[来源]

基地: object

HOLD=你'
RELEASE= u'release'
RESUME=你'
SUSPEND= u'suspend'
TERMINATE= u'terminate'
drmaa.JobState[来源]

基地: object

DONE= u'done'
FAILED= u'failed'
QUEUED_ACTIVE= u'queued_active'
RUNNING= u'running'
SYSTEM_ON_HOLD= u'system_on_hold'
SYSTEM_SUSPENDED= u'system_suspended'
UNDETERMINED=你'确定'
USER_ON_HOLD= u'user_on_hold'
USER_SUSPENDED= u'user_suspended'
USER_SYSTEM_ON_HOLD= u'user_system_on_hold'
USER_SYSTEM_SUSPENDED= u'user_system_suspended'
drmaa.JobSubmissionState[来源]

基地: object

ACTIVE_STATE= u'drmaa_active'
HOLD_STATE= u'drmaa_hold'
drmaa.status_to_string状态[来源]
drmaa.string_to_control_action操作[来源]
drmaa.submission_state代码[来源]

推荐阅读