<?xml version="1.0" encoding="UTF-8"?> | |
<!-- Copyright (c) 2013 IBM Corporation and others. All rights reserved. | |
This program and the accompanying materials are made available under the | |
terms of the Eclipse Public License v1.0s which accompanies this distribution, | |
and is available at http://www.eclipse.org/legal/epl-v10.html --> | |
<resource-manager-builder xmlns="http://eclipse.org/ptp/rm" | |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |
xsi:schemaLocation="http://eclipse.org/ptp/rm http://eclipse.org/ptp/schemas/v1.1/rm.xsd" | |
name="IBM Platform LSF"> | |
<!-- Make sure XML editor line length is set long enough (160) to avoid | |
wrapping text so messages do not get wrapped when reformatting --> | |
<control-data> | |
<!-- This is a necessary attribute for the functioning of LML; link it | |
to the batch-specific variable name --> | |
<attribute name="control.queue.name" visible="false"> | |
<link-value-to>LSF_QUEUE</link-value-to> | |
</attribute> | |
<!-- Needed by RM internals for fetch; name is fixed by convention --> | |
<attribute name="stdout_remote_path" visible="false"> | |
<default>${ptp_rm:working.directory#value}/stdout.${ptp_rm:@jobId#name}.txt</default> | |
</attribute> | |
<!-- Needed by RM internals for fetch; name is fixed by convention --> | |
<attribute name="stderr_remote_path" visible="false"> | |
<default>${ptp_rm:working.directory#value}/stderr.${ptp_rm:@jobId#name}.txt</default> | |
</attribute> | |
<attribute name="mpiCommand" type="choice"> | |
<description>Optional MPI command to run job:</description> | |
<choice>,poe,mpiexec,mpirun,jsrun</choice> | |
</attribute> | |
<!-- -ar option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_JOB_RESIZABLE" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Job Is Resizable:</description> | |
<tooltip>Sets the job as autoresizable. (-ar)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -B option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_NOTIFY_DISPATCH" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Dispatch Notification:</description> | |
<tooltip>Specifies that email is sent when your job is dispatched. (-B)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -N option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_NOTIFY_COMPLETION" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Completion Notification:</description> | |
<tooltip>Specifies that email is sent when your job completes. This option is disabled if STDOUT pathnames are blank. (-N)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -r option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_RERUN_SYS_FAILURE" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Rerun on System Failure:</description> | |
<tooltip>Specifies the job will be rerun if host or system fails. (-r)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -rn option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_NORERUN_SYS_FAILURE" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Do not Rerun on System Failure:</description> | |
<tooltip>Specifies the job is never re-runnable. (-rn)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -ul option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_PASS_USER_LIMITS" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Pass User Limits:</description> | |
<tooltip>Passes user's local shell limits to execution host. User limits cannot override OS or queue limits. (-ul)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -x option --> | |
<!-- This is a boolean option with no argument. Use datatype boolean so | |
we can take advantage of remapping user's choice to something that can be | |
used as a conditional expansion for '<arg isUndefinedAsMatches ...' --> | |
<attribute name="LSF_EXCLUSIVE_EXECUTION" type="boolean" | |
translateBooleanAs=" ,no"> | |
<description>Exclusive Execution:</description> | |
<tooltip>Puts the host running your job into exclusive execution mode. (-x)</tooltip> | |
<default>no</default> | |
</attribute> | |
<!-- -app option --> | |
<attribute name="LSF_APP_PROFILE" type="string"> | |
<description>Application Profile:</description> | |
<tooltip>Submits the job to the specified, existing application profile. (-app)</tooltip> | |
</attribute> | |
<!-- -b option --> | |
<attribute name="LSF_DISPATCH_AT" type="string"> | |
<description>Dispatch At:</description> | |
<tooltip>Dispatches the job at or after the specified date and time. (-b)</tooltip> | |
<validator> | |
<!-- Validate time spec where time can be blank, yyyy:mm:dd:hh:mm, mm:dd:hh:mm, | |
dd:hh:mm or hh:mm --> | |
<regex | |
expression=" *|(?:[\d]{1,4}:[\d]{1,2}:[\d]{1,2}:|[\d]{1,2}:[\d]{1,2}:|[\d]{1,2}:)?[\d]{1,2}:[\d]{1,2}" /> | |
<error-message>Dispatch At Time format is incorrect. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -C option --> | |
<attribute name="LSF_COREFILE_LIMIT" type="string"> | |
<description>Core File Limit:</description> | |
<tooltip>Sets the soft per-process core file size limit for all processes in this batch job. (-C)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Core file limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -c option --> | |
<attribute name="LSF_CPUTIME_LIMIT" type="string"> | |
<description>CPU Time Limit:</description> | |
<tooltip>Sets the total CPU time limit for the job to prevent runaway jobs. (-c)</tooltip> | |
<validator> | |
<regex expression=" *|([\d]+:)?[\d]+(/.+)?" /> | |
<error-message>CPU time limit must be a valid time specification with optional host name or model. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -D option --> | |
<attribute name="LSF_DATA_LIMIT" type="string"> | |
<description>Data Limit:</description> | |
<tooltip>Sets the per process soft data segment size limit for each process in the job. (-D)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Data segment limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -e option --> | |
<attribute name="LSF_STDERR_PATH_APPEND" type="string"> | |
<description>STDERR Path (Append):</description> | |
<tooltip>Specifies that standard error (STDERR) application output is appended to the file specified by this option. (-e)</tooltip> | |
</attribute> | |
<!-- -eo option --> | |
<attribute name="LSF_STDERR_PATH_NEW" type="string"> | |
<description>STDERR Path (New):</description> | |
<tooltip>Format of the standard error (STDERR) file (-eo). This should not be changed.</tooltip> | |
<default>stderr.%J.txt</default> | |
</attribute> | |
<!-- -F option --> | |
<attribute name="LSF_FILESIZE_LIMIT" type="string"> | |
<description>File Size Limit:</description> | |
<tooltip>Sets the per process soft file size limit for each process in the job. (-F)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>File size limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -G option --> | |
<attribute name="LSF_USER_GROUP" type="string"> | |
<description>User Group:</description> | |
<tooltip>Associates the job with the specified user group. (-G)</tooltip> | |
</attribute> | |
<!-- -g option --> | |
<attribute name="LSF_JOB_GROUP" type="string"> | |
<description>Job Group Name:</description> | |
<tooltip>Submits jobs in the specified job group. (-g)</tooltip> | |
</attribute> | |
<!-- -i option --> | |
<attribute name="LSF_STDIN_PATH" type="string"> | |
<description>STDIN Path:</description> | |
<tooltip>Specifies that the specified file is used for standard input (STDIN). (-i)</tooltip> | |
</attribute> | |
<!-- -is option --> | |
<attribute name="LSF_STDIN_EDITABLE_PATH" type="string"> | |
<description>STDIN Path (Editable):</description> | |
<tooltip>Specifies that the specified file is used for standard input (STDIN). The original file may be edited or deleted after job submission. (-is)</tooltip> | |
</attribute> | |
<!-- -J option --> | |
<attribute name="LSF_JOB_NAME" type="string"> | |
<description>Job Name:</description> | |
<tooltip>Sets the job name for this job. (-J)</tooltip> | |
</attribute> | |
<!-- -Jd option --> | |
<attribute name="LSF_JOB_DESCRIPTION" type="string"> | |
<description>Job Description:</description> | |
<tooltip>Sets the job description for this job. (-Jd)</tooltip> | |
</attribute> | |
<!-- -jsdl option --> | |
<attribute name="LSF_JSDL_FILE" type="string"> | |
<description>Submit JSDL Job (LSF Extensions):</description> | |
<tooltip>Submits a job using a JSDL file with LSF extensions schema. (-jsdl)</tooltip> | |
</attribute> | |
<!-- -jsdl_strict option --> | |
<attribute name="LSF_JSDL_FILE_STRICT" type="string"> | |
<description>Submit JSDL Job (strict):</description> | |
<tooltip>Submits a job using a JSDL file with standard schema. (-jsdl_strict)</tooltip> | |
</attribute> | |
<!-- -k option --> | |
<attribute name="LSF_CHECKPOINT" type="string"> | |
<description>Checkpointing:</description> | |
<tooltip>Makes a job checkpointable and specifies the checkpoint directory. (-k)</tooltip> | |
</attribute> | |
<!-- -L option --> | |
<attribute name="LSF_LOGIN_SHELL" type="string"> | |
<description>Login Shell:</description> | |
<tooltip>Initializes the execution environment using the specified login shell. (-L)</tooltip> | |
</attribute> | |
<!-- -Lp option --> | |
<attribute name="LSF_LICENSE_SCHEDULER_PROJECT" type="string"> | |
<description>License Scheduler Project:</description> | |
<tooltip>Assigns the job to the specified License Scheduler project. (-Lp)</tooltip> | |
</attribute> | |
<!-- -M option --> | |
<attribute name="LSF_MEMORY_LIMIT" type="string"> | |
<description>Memory Limit:</description> | |
<tooltip>Sets the per process soft memory limit for all processes in this job. (-M)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Memory limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -m option --> | |
<attribute name="LSF_HOST_NAMES" type="string"> | |
<description>Execution Host Name(s):</description> | |
<tooltip>Runs the job on one of the specified hosts, host groups or compute units. (-m)</tooltip> | |
</attribute> | |
<!-- -mig option --> | |
<attribute name="LSF_MIGRATION" type="string"> | |
<description>Migration Threshold:</description> | |
<tooltip>Specifies the migration threshold for checkpointable and rerunnable jobs. (-mig)</tooltip> | |
</attribute> | |
<!-- -n option --> | |
<attribute name="LSF_NUM_PROCS" type="string"> | |
<description>Number of Processors:</description> | |
<tooltip>Specifies the minimum and optional maximum number of processors to run the job. (-n)</tooltip> | |
<validator> | |
<!-- Validate # of processors as blank, n, or m,n where m and n must | |
be integers --> | |
<regex expression=" *|[\d]+(?:,[\d]+)?" /> | |
<error-message>Number of processors must be numeric or numeric pair. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -network option --> | |
<attribute name="LSF_NETWORK" type="string"> | |
<description>Network Attributes:</description> | |
<tooltip>Specifies the network attributes (type, protocol, mode, usage, instance, etc) for the job. (-network)</tooltip> | |
</attribute> | |
<!-- -o option --> | |
<attribute name="LSF_STDOUT_PATH_APPEND" type="string"> | |
<description>STDOUT Path (Append):</description> | |
<tooltip>Appends standard output (STDOUT) output to the specified file. (-o)</tooltip> | |
</attribute> | |
<!-- -oo option --> | |
<attribute name="LSF_STDOUT_PATH_NEW" type="string"> | |
<description>STDOUT Path (New):</description> | |
<tooltip>Format of the standard output (STDOUT) file (-oo). This should not be changed.</tooltip> | |
<default>stdout.%J.txt</default> | |
</attribute> | |
<!-- -P option --> | |
<attribute name="LSF_PROJECT_NAME" type="string"> | |
<description>Project Name:</description> | |
<tooltip>Assigns the job to the specified project. (-P)</tooltip> | |
</attribute> | |
<!-- -p option --> | |
<attribute name="LSF_PROCESS_LIMIT" type="string"> | |
<description>Process Limit:</description> | |
<tooltip>Sets the limit of the number of processes for the entire job. (-p)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Process limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -Q option --> | |
<attribute name="LSF_REQUEUE_CODES" type="string"> | |
<description>Auto Requeue Exit Codes:</description> | |
<tooltip>Specifies automatic job requeue exit values. (-Q)</tooltip> | |
<validator> | |
<regex expression=" *|~?[\d]+( ~?[\d+])*|EXCLUDE\(~?[\d]+( ~?[\d]+)*\)" /> | |
<error-message>Requeue exit code (-Q) specification is incorrect. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -q option --> | |
<attribute name="LSF_QUEUE" type="string"> | |
<description>Job Queue:</description> | |
<tooltip>Submits the job to the specified queue. (-q)</tooltip> | |
</attribute> | |
<!-- -R option --> | |
<attribute name="LSF_RESOURCES" type="string"> | |
<description>Resource Requirements:</description> | |
<tooltip>Runs the job on a host that meets the specified requirements. (-R)</tooltip> | |
</attribute> | |
<!-- -S option --> | |
<attribute name="LSF_STACK_LIMIT" type="string"> | |
<description>Stack Limit:</description> | |
<tooltip>Sets the per process soft limit for the stack for each process in the job. (-S)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Stack limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -s option --> | |
<attribute name="LSF_SIGNAL" type="string"> | |
<description>Run Window Signal:</description> | |
<tooltip>Sends the specified signal when a queue-level run window closes. (-s)</tooltip> | |
</attribute> | |
<!-- -sla option --> | |
<attribute name="LSF_SERVICE_CLASS" type="string"> | |
<description>Service Class:</description> | |
<tooltip>Specifies the service class where the job is to run. (-sla)</tooltip> | |
</attribute> | |
<!-- -sp option --> | |
<attribute name="LSF_JOB_PRIORITY" type="string"> | |
<description>Job Priority:</description> | |
<tooltip>Sets the job priority for this job. (-sp)</tooltip> | |
</attribute> | |
<!-- -T option --> | |
<attribute name="LSF_THREAD_LIMIT" type="string"> | |
<description>Thread Limit:</description> | |
<tooltip>Sets the limit for the number of concurrent threads for the entire job. (-T)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Thread limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -t option --> | |
<attribute name="LSF_TERMINATION_DEADLINE" type="string"> | |
<description>Termination Deadline:</description> | |
<tooltip>Specifies the job termination deadline. (-t)</tooltip> | |
<validator> | |
<!-- Validate time spec where time can be blank, yyyy:mm:dd:hh:mm, mm:dd:hh:mm, | |
dd:hh:mm or hh:mm --> | |
<regex | |
expression=" *|(?:[\d]{1,4}:[\d]{1,2}:[\d]{1,2}:|[\d]{1,2}:[\d]{1,2}:|[\d]{1,2}:)?[\d]{1,2}:[\d]{1,2}" /> | |
<error-message>Termination Deadline format is incorrect. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -U option --> | |
<attribute name="LSF_RESERVATION_ID" type="string"> | |
<description>Reservation ID:</description> | |
<tooltip>Uses the specified reservation id when scheduling the job. (-U)</tooltip> | |
</attribute> | |
<!-- -u option --> | |
<attribute name="LSF_EMAIL_ID" type="string"> | |
<description>Email ID:</description> | |
<tooltip>Sends notification emails to the specified email address. (-u)</tooltip> | |
</attribute> | |
<!-- -v option --> | |
<attribute name="LSF_SWAP_LIMIT" type="string"> | |
<description>Swap Limit:</description> | |
<tooltip>Sets the total process virtual memory limit for the job. (-v)</tooltip> | |
<validator> | |
<regex expression=" *|[\d]+" /> | |
<error-message>Swap limit must be a numeric value. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -W option --> | |
<attribute name="LSF_RUNTIME_LIMIT" type="string"> | |
<description>Runtime Limit:</description> | |
<tooltip>Sets the runtime limit for job. (-W)</tooltip> | |
<validator> | |
<regex expression=" *|([\d]+:)?[\d]+(/.+)?" /> | |
<error-message>Runtime limit must be a valid time specification with optional host name or model. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -We option --> | |
<attribute name="LSF_RUNTIME_ESTIMATE" type="string"> | |
<description>Estimated Runtime:</description> | |
<tooltip>Specifies the estimated runtime for job. (-We)</tooltip> | |
<validator> | |
<regex expression=" *|([\d]+:)?[\d]+(/.+)?" /> | |
<error-message>Runtime estimate must be a valid time specification with optional host name or model. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- -w option --> | |
<attribute name="LSF_DEPENDENCIES" type="string"> | |
<description>Job Dependencies:</description> | |
<tooltip>Specifies dependencies for job. (-w)</tooltip> | |
</attribute> | |
<!-- -wa option --> | |
<attribute name="LSF_JOB_ACTION" type="string"> | |
<description>Job Action Signal:</description> | |
<tooltip>Specifies the job action to be taken before a job action occurs. (-wa)</tooltip> | |
</attribute> | |
<!-- -wt option --> | |
<attribute name="LSF_JOB_ACTION_TIME" type="string"> | |
<description>Job Action Time:</description> | |
<tooltip>Specifies the time before a job control action that a job action occurs. (-wt)</tooltip> | |
<validator> | |
<regex expression=" *|([\d]+:)?[\d]+" /> | |
<error-message>Job action time must be a valid time specification. | |
</error-message> | |
</validator> | |
</attribute> | |
<!-- MPI run command (mpirun/jsrun) options --> | |
<attribute name="MPI_OPTIONS" type="string"> | |
<description>MPI Runtime Options:</description> | |
<tooltip>Specifies options to the MPI application invocation command.</tooltip> | |
</attribute> | |
<!-- Other options --> | |
<attribute name="LSF_OTHER_OPTIONS" type="string"> | |
<description>Other Options:</description> | |
<tooltip>Specifies LSF options that do not appear elsewhere in list.</tooltip> | |
</attribute> | |
<attribute name="LSF_MPI_COMMAND" type="choice"> | |
<description>MPI Command:</description> | |
<tooltip>Specifies an optional MPI command to run job.</tooltip> | |
<choice>,poe,mpiexec,mpirun,jsrun</choice> | |
</attribute> | |
<script insertEnvironmentAfter="0" deleteAfterSubmit="true"> | |
<file-staging-location>${ptp_rm:working.directory#value}</file-staging-location> | |
<!-- If the substituted value of the statement following the '>' in the following <arg> | |
specifications evaluates to the value specified for isUndefinedIfMatches then the | |
statement is suppressed. Regular expressions are allowed in 'isUndefinedIfMatches' | |
The evaluation of both sides of the isUndefinedIfMatches is an exact match (by regex rules) | |
so spaces, tabs, etc are important. | |
In general, strings in the 'isUndefinedIfMatches' left hand side are surrounded by double | |
quotes. The exception is where the expression being matched contains double quotes. | |
In that case, to avoid issues with nested quoutes, single quotes are used to surround the | |
left hand side string. | |
Make sure that all of the <arg> specifications do not wrap to multiple lines since | |
the newline characters will also appear in the script file, which will result in an | |
incorrect script file. --> | |
<line> | |
<arg>#!/bin/sh</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -ar no">#BSUB -ar ${ptp_rm:LSF_JOB_RESIZABLE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -B no">#BSUB -B ${ptp_rm:LSF_NOTIFY_DISPATCH#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -N no">#BSUB -N ${ptp_rm:LSF_NOTIFY_COMPLETION#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -r no">#BSUB -r ${ptp_rm:LSF_RERUN_SYS_FAILURE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -rn no">#BSUB -rn ${ptp_rm:LSF_NORERUN_SYS_FAILURE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -ul no">#BSUB -ul ${ptp_rm:LSF_PASS_USER_LIMITS#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -x no">#BSUB -x ${ptp_rm:LSF_EXCLUSIVE_EXECUTION#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -app">#BSUB -app ${ptp_rm:LSF_APP_PROFILE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -b">#BSUB -b ${ptp_rm:LSF_DISPATCH_AT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -C">#BSUB -C ${ptp_rm:LSF_COREFILE_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -c">#BSUB -c ${ptp_rm:LSF_CPUTIME_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -D">#BSUB -D ${ptp_rm:LSF_DATA_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -e">#BSUB -e ${ptp_rm:LSF_STDERR_PATH_APPEND#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -eo">#BSUB -eo ${ptp_rm:LSF_STDERR_PATH_NEW#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -F">#BSUB -F ${ptp_rm:LSF_FILESIZE_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -G">#BSUB -G ${ptp_rm:LSF_USER_GROUP#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -g">#BSUB -g ${ptp_rm:LSF_JOB_GROUP#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -i">#BSUB -i ${ptp_rm:LSF_STDIN_PATH#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -is">#BSUB -is ${ptp_rm:LSF_STDIN_EDITABLE_PATH#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -J ""'>#BSUB -J "${ptp_rm:LSF_JOB_NAME#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -Jd ""'>#BSUB -Jd "${ptp_rm:LSF_JOB_DESCRIPTION#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -jsdl">#BSUB -jsdl ${ptp_rm:LSF_JSDL_FILE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -jsdl_strict">#BSUB -jsdl_strict ${ptp_rm:LSF_JSDL_FILE_STRICT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -k ""'>#BSUB -k "${ptp_rm:LSF_CHECKPOINT#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -L">#BSUB -L ${ptp_rm:LSF_LOGIN_SHELL#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -Lp">#BSUB -Lp ${ptp_rm:LSF_LICENSE_SCHEDULER_PROJECT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -M">#BSUB -M ${ptp_rm:LSF_MEMORY_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -m ""'>#BSUB -m "${ptp_rm:LSF_HOST_NAMES#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -mig">#BSUB -mig ${ptp_rm:LSF_MIGRATION#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -n">#BSUB -n ${ptp_rm:LSF_NUM_PROCS#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -network ""'>#BSUB -network "${ptp_rm:LSF_NETWORK#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -o">#BSUB -o ${ptp_rm:LSF_STDOUT_PATH_APPEND#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -oo">#BSUB -oo ${ptp_rm:LSF_STDOUT_PATH_NEW#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -P">#BSUB -P ${ptp_rm:LSF_PROJECT_NAME#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -p">#BSUB -p ${ptp_rm:LSF_PROCESS_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -Q ""'>#BSUB -Q "${ptp_rm:LSF_REQUEUE_CODES#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -q ""'>#BSUB -q "${ptp_rm:LSF_QUEUE#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches='#BSUB -R ""'>#BSUB -R "${ptp_rm:LSF_RESOURCES#value}"</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -S">#BSUB -S ${ptp_rm:LSF_STACK_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -s">#BSUB -s ${ptp_rm:LSF_SIGNAL#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -sla">#BSUB -sla ${ptp_rm:LSF_SERVICE_CLASS#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -sp">#BSUB -sp ${ptp_rm:LSF_JOB_PRIORITY#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -T">#BSUB -T ${ptp_rm:LSF_THREAD_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -t">#BSUB -t ${ptp_rm:LSF_TERMINATION_DEADLINE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -U">#BSUB -U ${ptp_rm:LSF_RESERVATION_ID#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -u">#BSUB -u ${ptp_rm:LSF_EMAIL_ID#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -v">#BSUB -v ${ptp_rm:LSF_SWAP_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -W">#BSUB -W ${ptp_rm:LSF_RUNTIME_LIMIT#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -We">#BSUB -We ${ptp_rm:LSF_RUNTIME_ESTIMATE#value}</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -w ''">#BSUB -w '${ptp_rm:LSF_DEPENDENCIES#value}'</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -wa ''">#BSUB -wa '${ptp_rm:LSF_JOB_ACTION#value}'</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB -wt ''">#BSUB -wt '${ptp_rm:LSF_JOB_ACTION_TIME#value}'</arg> | |
</line> | |
<line> | |
<arg isUndefinedIfMatches="#BSUB ">#BSUB ${ptp_rm:LSF_OTHER_OPTIONS#value}</arg> | |
</line> | |
<line> | |
<arg>${ptp_rm:LSF_MPI_COMMAND#value}</arg> | |
<arg>${ptp_rm:MPI_OPTIONS#value}</arg> | |
<arg>${ptp_rm:executablePath#value}</arg> | |
<arg>${ptp_rm:progArgs#value}</arg> | |
</line> | |
</script> | |
<!-- Invocation command definition --> | |
<submit-batch name="LSF job submission" waitForId="true" | |
directory="${ptp_rm:working.directory#value}"> | |
<arg>perl</arg> | |
<arg>${ptp_rm:ptpDirectory#value}/rms/LSF/run_lsf_app.pl</arg> | |
<arg>${ptp_rm:managed_file_for_script#value}</arg> | |
<stdout-parser delim="\n"> | |
<target ref="@jobId"> | |
<match> | |
<expression>Job <([\d]+)> is submitted.*</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUBMITTED" /> | |
</set> | |
</match> | |
</target> | |
</stdout-parser> | |
<stderr-parser delim="\n"> | |
<target ref="@jobId"> | |
<match> | |
<expression>IBM Platform LSF.*</expression> | |
<set field="name"> | |
<entry value="-1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUBMITTED" /> | |
</set> | |
</match> | |
</target> | |
</stderr-parser> | |
</submit-batch> | |
<submit-batch-debug name="Debug not supported"> | |
<arg>echo</arg> | |
<arg>"Debug not supported"</arg> | |
<stdout-parser delim="\n"> | |
<target> | |
<match> | |
<expression>.*</expression> | |
<throw message="Debug not supported"/> | |
</match> | |
</target> | |
</stdout-parser> | |
</submit-batch-debug> | |
<get-job-status name="get-job-status" ignoreExitStatus="true"> | |
<arg>${ptp_rm:bindir#value}bjobs</arg> | |
<arg>${ptp_rm:@jobId#name}</arg> | |
<stdout-parser delim="\n"> | |
<target ref="@jobId"> | |
<!-- Match and discard heading line --> | |
<match> | |
<expression>^JOBID.*$</expression> | |
</match> | |
<match> | |
<expression>^[\s]*$</expression> | |
</match> | |
<!-- Match job status line like '219 wootton RUN short hpcvictim.p hpcvictim.p | |
sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+RUN[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="RUNNING" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton USUSP short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+USUSP[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUSPENDED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton PEND short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+PEND[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUBMITTED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton WAIT short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+WAIT[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUBMITTED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton EXIT short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+EXIT[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="COMPLETED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton DONE short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+DONE[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="COMPLETED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton PSUSP short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+PSUSP[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUBMITTED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton SSUSP short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+SSUSP[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="SUSPENDED" /> | |
</set> | |
</match> | |
<!-- Match job status line like '219 wootton ZOMBI short hpcvictim.p | |
hpcvictim.p sleep 360 Jan 28 11:10' --> | |
<match> | |
<expression>^([\d]+)[\s]+[\S]+[\s]+ZOMBI[\s]+.*$</expression> | |
<set field="name"> | |
<entry valueGroup="1" /> | |
</set> | |
<set field="value"> | |
<entry value="COMPLETED" /> | |
</set> | |
</match> | |
</target> | |
</stdout-parser> | |
</get-job-status> | |
<terminate-job name="cancel"> | |
<arg>bkill</arg> | |
<arg>${ptp_rm:@jobId#name}</arg> | |
</terminate-job> | |
<suspend-job name="suspend"> | |
<arg>bstop</arg> | |
<arg>${ptp_rm:@jobId#name}</arg> | |
</suspend-job> | |
<resume-job name="resume"> | |
<arg>bresume</arg> | |
<arg>${ptp_rm:@jobId#name}</arg> | |
</resume-job> | |
<launch-tab> | |
<!-- Job submission tab --> | |
<dynamic includeWidgetValuesFrom="Scheduling,Resources,Limits,I/O,Notifications"> | |
<title>Job Submission</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="3" makeColumnsEqualWidth="false" | |
horizontalSpacing="10" verticalSpacing="15" /> | |
</layout> | |
<!-- LSF_QUEUE: Job Queue --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_QUEUE#description}</fixed-text> | |
</widget> | |
<widget style="SWT.BORDER" attribute="LSF_QUEUE" type="text"> | |
<layout-data> | |
<grid-data widthHint="300" horizontalSpan="1" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_QUEUE#tooltip}</tooltip> | |
</widget> | |
<widget type="custom" typeId="queueQuery" style="SWT.LEFT" | |
attribute="LSF_QUEUE"> | |
<layout-data> | |
<grid-data widthHint="100" horizontalAlign="SWT.BEGINNING" /> | |
</layout-data> | |
<fixed-text>List</fixed-text> | |
</widget> | |
<!-- LSF_JOB_PRIORITY: Job priority --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_PRIORITY#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_JOB_PRIORITY" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_PRIORITY#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_JOB_NAME: Job name --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_NAME#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_JOB_NAME" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_NAME#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_JOB_DESCRIPTION: Job description --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_DESCRIPTION#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_JOB_DESCRIPTION" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_DESCRIPTION#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_PROJECT_NAME: Project name --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_PROJECT_NAME#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_PROJECT_NAME" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_PROJECT_NAME#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_JOB_GROUP: Job group --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_GROUP#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_JOB_GROUP" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_GROUP#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_SERVICE_CLASS: Service class --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_SERVICE_CLASS#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_SERVICE_CLASS" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_SERVICE_CLASS#tooltip}</tooltip> | |
</widget> | |
<!--LSF_LOGIN_SHELL: Login shell --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_LOGIN_SHELL#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_LOGIN_SHELL" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_LOGIN_SHELL#tooltip}</tooltip> | |
</browse> | |
<!-- LSF_APP_PROFILE: Application profile --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_APP_PROFILE#description}</fixed-text> | |
</widget> | |
<widget style="SWT.BORDER" attribute="LSF_APP_PROFILE" type="text"> | |
<layout-data> | |
<grid-data widthHint="300" horizontalSpan="1" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_APP_PROFILE#tooltip}</tooltip> | |
</widget> | |
<widget type="custom" typeId="applicationQuery" style="SWT.LEFT" | |
attribute="LSF_APP_PROFILE"> | |
<layout-data> | |
<grid-data widthHint="100" horizontalAlign="SWT.BEGINNING" /> | |
</layout-data> | |
<fixed-text>List</fixed-text> | |
</widget> | |
<!--LSF_JSDL_FILE: Submit job with JSDL file and LSF extensions --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JSDL_FILE#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_JSDL_FILE" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_JSDL_FILE#tooltip}</tooltip> | |
</browse> | |
<!--LSF_JSDL_FILE_STRICT: Submit job with JSDL file and no LSF extensions --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JSDL_FILE_STRICT#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_JSDL_FILE_STRICT" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_JSDL_FILE_STRICT#tooltip}</tooltip> | |
</browse> | |
<!-- LSF_CHECKPOINT: Job checkpoint options --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_CHECKPOINT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_CHECKPOINT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_CHECKPOINT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_REQUEUE_CODES: Job requeue return codes --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_REQUEUE_CODES#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_REQUEUE_CODES" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_REQUEUE_CODES#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_SIGNAL: Queue-level window closure signal --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_SIGNAL#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_SIGNAL" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_SIGNAL#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_RERUN_SYS_FAILURE - Rerun job on system failure --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_RERUN_SYS_FAILURE#description} | |
</fixed-text> | |
</widget> | |
<widget type="checkbox" attribute="LSF_RERUN_SYS_FAILURE" | |
style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_RERUN_SYS_FAILURE#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_NORERUN_SYS_FAILURE - do not rerun job on system failure --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_NORERUN_SYS_FAILURE#description} | |
</fixed-text> | |
</widget> | |
<widget type="checkbox" attribute="LSF_NORERUN_SYS_FAILURE" | |
style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_NORERUN_SYS_FAILURE#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_MPI_COMMAND: MPI application invocation command --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_MPI_COMMAND#description} | |
</fixed-text> | |
</widget> | |
<widget type="combo" readOnly="false" attribute="LSF_MPI_COMMAND" | |
style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_MPI_COMMAND#tooltip}</tooltip> | |
</widget> | |
<!-- MPI_OPTIONS command line options for mpirun or jsrun --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:MPI_OPTIONS#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="MPI_OPTIONS" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:MPI_OPTIONS#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_OTHER_OPTIONS: Other LSF bsub options --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_OTHER_OPTIONS#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_OTHER_OPTIONS" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_OTHER_OPTIONS#tooltip}</tooltip> | |
</widget> | |
</composite> | |
</dynamic> | |
<!-- Scheduling tab --> | |
<dynamic includeWidgetValuesFrom="Job Submission,Resources,Limits,I/O,Notifications"> | |
<title>Scheduling</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="3" makeColumnsEqualWidth="false" | |
horizontalSpacing="10" verticalSpacing="15" /> | |
</layout> | |
<!-- LSF_USER_GROUP: User group --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_USER_GROUP#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_USER_GROUP" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_USER_GROUP#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_DEPENDENCIES: Job dependencies --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_DEPENDENCIES#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_DEPENDENCIES" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_DEPENDENCIES#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_DISPATCH_AT: Dispatch job at or after time --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_DISPATCH_AT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_DISPATCH_AT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_DISPATCH_AT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_TERMINATION_DEADLINE: Job termination deadline --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_TERMINATION_DEADLINE#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_TERMINATION_DEADLINE" | |
style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_TERMINATION_DEADLINE#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_RESERVATION_ID: Reservation ID --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_RESERVATION_ID#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_RESERVATION_ID" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="1" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_RESERVATION_ID#tooltip}</tooltip> | |
</widget> | |
<widget type="custom" typeId="reservationQuery" style="SWT.LEFT" | |
attribute="LSF_RESERVATION_ID"> | |
<layout-data> | |
<grid-data widthHint="100" horizontalAlign="SWT.BEGINNING" /> | |
</layout-data> | |
<fixed-text>List</fixed-text> | |
</widget> | |
<!-- LSF_MIGRATION: Checkpointable/rerunnable migration threshold --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_MIGRATION#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_MIGRATION" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_MIGRATION#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_LICENSE_SCHEDULER_PROJECT: License scheduler project --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_LICENSE_SCHEDULER_PROJECT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_LICENSE_SCHEDULER_PROJECT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_LICENSE_SCHEDULER_PROJECT#tooltip}</tooltip> | |
</widget> | |
</composite> | |
</dynamic> | |
<!-- Resources tab --> | |
<dynamic includeWidgetValuesFrom="Job Submission,Scheduling,Limits,I/O,Notifications"> | |
<title>Resources</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="3" makeColumnsEqualWidth="false" | |
horizontalSpacing="10" verticalSpacing="15" /> | |
</layout> | |
<!-- LSF_HOST_NAMES: Hosts to run job --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_HOST_NAMES#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_HOST_NAMES" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_HOST_NAMES#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_NUM_PROCS: Min/max processors to run --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_NUM_PROCS#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_NUM_PROCS" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_NUM_PROCS#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_RESOURCES: Resource requirements --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_RESOURCES#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_RESOURCES" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_RESOURCES#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_NETWORK: LSF -network option --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_NETWORK#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_NETWORK" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_NETWORK#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_EXCLUSIVE_EXECUTION: Nodes in exclusive execution mode --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_EXCLUSIVE_EXECUTION#description} | |
</fixed-text> | |
</widget> | |
<widget type="checkbox" attribute="LSF_EXCLUSIVE_EXECUTION" | |
style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_EXCLUSIVE_EXECUTION#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_JOB_RESIZABLE: Job is resizable --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_RESIZABLE#description} | |
</fixed-text> | |
</widget> | |
<widget type="checkbox" attribute="LSF_JOB_RESIZABLE" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_RESIZABLE#tooltip}</tooltip> | |
</widget> | |
</composite> | |
</dynamic> | |
<!-- Limits tab --> | |
<dynamic includeWidgetValuesFrom="Job Submission,Scheduling,Resources,I/O,Notifications"> | |
<title>Limits</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="3" makeColumnsEqualWidth="false" | |
horizontalSpacing="10" verticalSpacing="15" /> | |
</layout> | |
<!-- LSF_PASS_USER_LIMITS: Pass user limits --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_PASS_USER_LIMITS#description} | |
</fixed-text> | |
</widget> | |
<widget type="checkbox" attribute="LSF_PASS_USER_LIMITS" | |
style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_PASS_USER_LIMITS#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_COREFILE_LIMIT: Corefile limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_COREFILE_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_COREFILE_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_COREFILE_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_CPUTIME_LIMIT: CPU Time Limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_CPUTIME_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_CPUTIME_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_CPUTIME_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_DATA_LIMIT: Data limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_DATA_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_DATA_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_DATA_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_FILESIZE_LIMIT: Filesize limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_FILESIZE_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_FILESIZE_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_FILESIZE_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_MEMORY_LIMIT: Memory limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_MEMORY_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_MEMORY_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_MEMORY_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_PROCESS_LIMIT: Process limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_PROCESS_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_PROCESS_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_PROCESS_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_STACK_LIMIT: Stack limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STACK_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_STACK_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_STACK_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_THREAD_LIMIT: Thread limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_THREAD_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_THREAD_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_THREAD_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_SWAP_LIMIT: Swap limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_SWAP_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_SWAP_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_SWAP_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_RUNTIME_LIMIT: Runtime limit --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_RUNTIME_LIMIT#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_RUNTIME_LIMIT" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_RUNTIME_LIMIT#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_RUNTIME_ESTIMATE: Run time estimate --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_RUNTIME_ESTIMATE#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_RUNTIME_ESTIMATE" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_RUNTIME_ESTIMATE#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_JOB_ACTION: Job action signal --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_ACTION#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_JOB_ACTION" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_ACTION#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_JOB_ACTION_TIME: Job action signal --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_JOB_ACTION_TIME#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_JOB_ACTION_TIME" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_JOB_ACTION_TIME#tooltip}</tooltip> | |
</widget> | |
</composite> | |
</dynamic> | |
<!-- I/O tab --> | |
<dynamic includeWidgetValuesFrom="Job Submission,Scheduling,Resources,Limits,Notifications"> | |
<title>I/O</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="3" makeColumnsEqualWidth="false" | |
horizontalSpacing="10" verticalSpacing="15" /> | |
</layout> | |
<!--LSF_STDIN_PATH: Stdin Path --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STDIN_PATH#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_STDIN_PATH" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_STDIN_PATH#tooltip}</tooltip> | |
</browse> | |
<!--LSF_STDIN_EDITABLE_PATH: Stdin Editable Path --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STDIN_EDITABLE_PATH#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_STDIN_EDITABLE_PATH" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_STDIN_EDITABLE_PATH#tooltip}</tooltip> | |
</browse> | |
<!-- LSF_STDOUT_PATH_NEW STDOUT new file path --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STDOUT_PATH_NEW#description}</fixed-text> | |
</widget> | |
<widget type="text" style="SWT.BORDER" attribute="LSF_STDOUT_PATH_NEW" readOnly="true"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="true"/> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_STDOUT_PATH_NEW#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_STDOUT_PATH_APPEND STDOUT appendable path --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STDOUT_PATH_APPEND#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_STDOUT_PATH_APPEND" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_STDOUT_PATH_APPEND#tooltip}</tooltip> | |
</browse> | |
<!-- LSF_STDERR_PATH_NEW STDERR new file path --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STDERR_PATH_NEW#description}</fixed-text> | |
</widget> | |
<widget type="text" style="SWT.BORDER" attribute="LSF_STDERR_PATH_NEW" readOnly="true"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="true"/> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_STDERR_PATH_NEW#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_STDERR_PATH_APPEND STDERR appendable path --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data verticalAlign="SWT.CENTER" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_STDERR_PATH_APPEND#description}</fixed-text> | |
</widget> | |
<browse textStyle="SWT.BORDER" attribute="LSF_STDERR_PATH_APPEND" | |
title="Browse"> | |
<text-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</text-layout-data> | |
<button-layout-data> | |
<grid-data widthHint="300" verticalAlign="SWT.CENTER" /> | |
</button-layout-data> | |
<tooltip>${ptp_rm:LSF_STDERR_PATH_APPEND#tooltip}</tooltip> | |
</browse> | |
</composite> | |
</dynamic> | |
<!-- Notifications tab --> | |
<dynamic includeWidgetValuesFrom="Job Submission,Scheduling,Resources,Limits,I/O"> | |
<title>Notifications</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="3" makeColumnsEqualWidth="false" | |
horizontalSpacing="10" verticalSpacing="15" /> | |
</layout> | |
<!-- LSF_EMAIL_ID: Notification email address --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_EMAIL_ID#description} | |
</fixed-text> | |
</widget> | |
<widget type="text" attribute="LSF_EMAIL_ID" style="SWT.BORDER"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" widthHint="300" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_EMAIL_ID#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_NOTIFY_DISPATCH: Notify on job dispatch --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_NOTIFY_DISPATCH#description} | |
</fixed-text> | |
</widget> | |
<widget type="checkbox" attribute="LSF_NOTIFY_DISPATCH" | |
style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_NOTIFY_DISPATCH#tooltip}</tooltip> | |
</widget> | |
<!-- LSF_NOTIFY_COMPLETION: Notify on job completion --> | |
<widget type="label" style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.BEGINNING" | |
grabExcessHorizontal="false" /> | |
</layout-data> | |
<fixed-text>${ptp_rm:LSF_NOTIFY_COMPLETION#description} | |
</fixed-text> | |
<control-state> | |
<disable-if> | |
<and> | |
<rule attribute="LSF_STDOUT_PATH_APPEND" value="" /> | |
<rule attribute="LSF_STDOUT_PATH_NEW" value="" /> | |
</and> | |
</disable-if> | |
</control-state> | |
</widget> | |
<widget type="checkbox" attribute="LSF_NOTIFY_COMPLETION" | |
style="SWT.LEFT"> | |
<layout-data> | |
<grid-data horizontalAlign="SWT.FILL" | |
grabExcessHorizontal="false" horizontalSpan="2" /> | |
</layout-data> | |
<tooltip>${ptp_rm:LSF_NOTIFY_COMPLETION#tooltip}</tooltip> | |
<control-state> | |
<disable-if> | |
<and> | |
<rule attribute="LSF_STDOUT_PATH_APPEND" value="" /> | |
<rule attribute="LSF_STDOUT_PATH_NEW" value="" /> | |
</and> | |
</disable-if> | |
</control-state> | |
</widget> | |
</composite> | |
</dynamic> | |
<!-- Advanced Tab --> | |
<dynamic> | |
<title>Advanced</title> | |
<layout> | |
<grid-layout /> | |
</layout> | |
<composite group="true"> | |
<layout> | |
<grid-layout numColumns="1" /> | |
</layout> | |
<viewer name="LSFOptionsAdvanced" style="SWT.BORDER" sort="true" | |
initialAllChecked="true" type="table"> | |
<layout-data> | |
<grid-data widthHint="600" heightHint="400" | |
horizontalSpan="1" /> | |
</layout-data> | |
<!-- These are the 6 attribute fields mappable to columns. In a "table | |
viewer" the order of the columns is entirely arbitrary --> | |
<column-data name="Description" width="300" /> | |
<column-data name="Value" width="300" /> | |
<items> | |
<include>LSF_QUEUE</include> | |
<include>LSF_EXCLUSIVE_EXECUTION</include> | |
<include>LSF_NUM_PROCS</include> | |
<include>LSF_HOST_NAMES</include> | |
<include>LSF_DEPENDENCIES</include> | |
<include>LSF_RESOURCES</include> | |
<include>LSF_HOST_NAMES</include> | |
<include>LSF_RESERVATION_ID</include> | |
<include>LSF_APP_PROFILE</include> | |
<include>LSF_NETWORK</include> | |
<include>LSF_JOB_RESIZABLE</include> | |
<include>LSF_LICENSE_SCHEDULER_PROJECT</include> | |
<include>LSF_PROJECT_NAME</include> | |
<include>LSF_SERVICE_CLASS</include> | |
<include>LSF_JOB_NAME</include> | |
<include>LSF_JOB_DESCRIPTION</include> | |
<include>LSF_JOB_PRIORITY</include> | |
<include>LSF_USER_GROUP</include> | |
<include>LSF_JOB_GROUP</include> | |
<include>LSF_LOGIN_SHELL</include> | |
<include>LSF_JSDL_FILE</include> | |
<include>LSF_JSDL_FILE_STRICT</include> | |
<include>LSF_CHECKPOINT</include> | |
<include>LSF_SIGNAL</include> | |
<include>LSF_JOB_ACTION</include> | |
<include>LSF_JOB_ACTION_TIME</include> | |
<include>LSF_DISPATCH_AT</include> | |
<include>LSF_TERMINATION_DEADLINE</include> | |
<include>LSF_RUNTIME_ESTIMATE</include> | |
<include>LSF_MIGRATION</include> | |
<include>LSF_PASS_USER_LIMITS</include> | |
<include>LSF_COREFILE_LIMIT</include> | |
<include>LSF_CPUTIME_LIMIT</include> | |
<include>LSF_DATA_LIMIT</include> | |
<include>LSF_FILESIZE_LIMIT</include> | |
<include>LSF_MEMORY_LIMIT</include> | |
<include>LSF_PROCESS_LIMIT</include> | |
<include>LSF_STACK_LIMIT</include> | |
<include>LSF_THREAD_LIMIT</include> | |
<include>LSF_RUNTIME_LIMIT</include> | |
<include>LSF_SWAP_LIMIT</include> | |
<include>LSF_STDIN_PATH</include> | |
<include>LSF_STDIN_EDITABLE_PATH</include> | |
<include>LSF_STDOUT_PATH_NEW</include> | |
<include>LSF_STDOUT_PATH_APPEND</include> | |
<include>LSF_STDERR_PATH_NEW</include> | |
<include>LSF_STDERR_PATH_APPEND</include> | |
<include>LSF_RERUN_SYS_FAILURE</include> | |
<include>LSF_NORERUN_SYS_FAILURE</include> | |
<include>LSF_REQUEUE_CODES</include> | |
<include>LSF_NOTIFY_DISPATCH</include> | |
<include>LSF_NOTIFY_COMPLETION</include> | |
<include>LSF_EMAIL_ID</include> | |
<include>LSF_OTHER_OPTIONS</include> | |
<include>LSF_MPI_COMMAND</include> | |
</items> | |
</viewer> | |
</composite> | |
</dynamic> | |
</launch-tab> | |
</control-data> | |
<monitor-data schedulerType="LSF"> | |
</monitor-data> | |
</resource-manager-builder> |