| <?xml version="1.0" encoding="UTF-8"?> |
| <resource-manager-builder xmlns="http://org.eclipse.ptp/rm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
| xsi:schemaLocation="resource_manager_type.xsd" name="rm-pbs-torque_2.3.7"> |
| <site-data> |
| <control-connection>ssh://abe.ncsa.uiuc.edu/usr/local/bin/qsub</control-connection> |
| </site-data> |
| <control-data> |
| <property name="available_queues" configurable="false"/> |
| <property name="stdout"> |
| <value>${rm:Output_Path#value}</value> |
| </property><!-- property needed for forwarding stdout in batch --> |
| <property name="stderr"> |
| <value>${rm:Error_Path#value}</value> |
| </property><!-- property needed for forwarding stderr in batch --> |
| <job-attribute name="mpiCommand" basic="true" type="choice"> |
| <description>Which mpi command to use.</description> |
| <choice>,mpiexec,mpirun</choice> |
| </job-attribute> |
| <job-attribute name="mpiCores" min="1" basic="true" type="integer"> |
| <description>the '-np' value</description> |
| </job-attribute> |
| <job-attribute name="mpiArgs" basic="true" type="string" configurable="false"> |
| <description>Which mpi options to use.</description> |
| <default>-machinefile $PBS_NODEFILE -np ${rm:mpiCores}</default> |
| </job-attribute> |
| <job-attribute name="Account_Name" basic="true" type="string"> |
| <description>Account to which to charge this job.</description> |
| <tooltip>Format: string</tooltip> |
| </job-attribute> |
| <job-attribute name="Checkpoint" type="choice"> |
| <description>Determines when checkpointing (if supported) will be performed by PBS on behalf of the job.</description> |
| <tooltip>Format: the strings "n" (no checkpointing), "s" (to be performed only when the server executing the job is shutdown), "c"s |
| (to be performed at the default minimum time for thes servers executing the job), "c=mmmm" (to be performed at an intervals ofs |
| minutess whichs is the integer number of minutes of CPUs time used bys the job; values must be greater than zero); defaults value: |
| "u", whichs iss unspecified. |
| </tooltip> |
| <choice>,u,n,s,c,c=????</choice> |
| <default>u</default> |
| </job-attribute> |
| <job-attribute name="depend" type="string"> |
| <description>The type of inter-job dependencies specified by the job owner.</description> |
| <tooltip>Format: "type:jobid[,jobid...]"; default value: no dependencies.</tooltip> |
| </job-attribute> |
| <job-attribute name="destination" type="string" basic="true"> |
| <description>Designation of the queue to which to submit the job.</description> |
| <tooltip>Format: queue[@server].</tooltip> |
| </job-attribute> |
| <job-attribute name="directive" type="string"> |
| <description>Defines the prefix that declares a directive to the qsub command within the script file.</description> |
| <tooltip>See the paragraph on script directives in the Extended Description section. If the option is presented with a |
| directive_prefix argument that is the null string, qsub will not scan the script file for directives. |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Error_Path" type="string"> |
| <description>The final path name for the file containing the job's standard error stream.</description> |
| <tooltip>Format: "[hostname:]pathname". If the option is not specified, the default file name for the standard error stream will be |
| used. The default name has the following form: job_name.eSeq_num where job_name is the name of the job, see -N option, and Seq_num |
| is the job number assigned when the job is submitted; default value: (job_name).e(job_number). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="export_all" basic="true" type="boolean"> |
| <description>Declares that all environment variables in the qsub command's environment are to be exported to the batch job. |
| </description> |
| <default>true</default> |
| </job-attribute> |
| <job-attribute name="group_list" type="string"> |
| <description>A list of group_names@hosts which determines the group under which the job is run on a given host.</description> |
| <tooltip>Format: group_name[@host][,group_name[@host]...]. When a job is to be placed into execution, the server will select a group |
| name according to the following ordered set of rules: 1) Select the group name from the list for which the associated host name |
| matches the name of the execution host; 2) Select the group name which has no associated host name, the wildcard name; 3) Use the |
| login group for the username under which the job will be run. |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Hold_Types" type="choice"> |
| <description>The set of holds currently applied to the job.</description> |
| <tooltip>If the set is not null, the job will not be scheduled for execution and is said to be in the hold state. Note, the hold |
| state takes precedence over the wait state. Format: string made up of the letters 'u', 's', 'o'; default value: no hold. |
| </tooltip> |
| <choice>,u,s,o</choice> |
| </job-attribute> |
| <job-attribute name="Job_Name" type="string" basic="true"> |
| <description>The name assigned to the job by the qsub or qalter command.</description> |
| <tooltip>Format: string up to 15 characters, first character must be alphabetic; default value: the base name of the job script or |
| STDIN. |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Join_Path" type="boolean"> |
| <description>Merge stdout and stderr into stdout.</description> |
| <tooltip>Format: boolean, values accepted are "True", "TRUE", "true", "Y", "y", "1", "False", "FALSE", "false", "N", "n", "0"; |
| default value: false. |
| </tooltip> |
| <default>false</default> |
| </job-attribute> |
| <job-attribute name="Keep_Files" type="choice"> |
| <description>Retain these streams on the execution host upon job termination.</description> |
| <tooltip>Format: "o", "e", "oe" or "eo"; default value: no keep, return files to submission host.</tooltip> |
| <choice>,o,e,oe,eo</choice> |
| </job-attribute> |
| <job-attribute name="Mail_Points" type="choice"> |
| <description>Identifies at which state changes the server will send mail about the job.</description> |
| <tooltip>Format: string made up of the letters 'a' for abort, 'b' for beginning, and default value: 'a', send on job abort. |
| </tooltip> |
| <choice>,a,b</choice> |
| <default>a</default> |
| </job-attribute> |
| <job-attribute name="Mail_Users" type="string"> |
| <description>The set of users to whom mail may be sent when the job makes certain state changes.</description> |
| <tooltip>Format: "user@host[,user@host]"; default value: job owner only.</tooltip> |
| </job-attribute> |
| <job-attribute name="Output_Path" type="string"> |
| <description>The final path name for the file containing the job's standard output stream.</description> |
| <tooltip>Format: "[hostname:]pathname". If the option is not specified, the default file name for the standard error stream will be |
| used. The default name has the following form: job_name.oSeq_num where job_name is the name of the job, see -N option, and Seq_num |
| is the job number assigned when the job is submitted; default value: (job_name).o(job_number). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Priority" type="string"> |
| <description>The job scheduling priority assigned by the user.</description> |
| <tooltip>Format: "[+|-]nnnnn"; default value: undefined.</tooltip> |
| </job-attribute> |
| <job-attribute name="Rerunnable" type="choice"> |
| <description>The rerunnable flag assigned by the user.</description> |
| <tooltip>Format: "y" or "n", see Join_Path; default value: y, job is rerunable.</tooltip> |
| <choice>,n,y</choice> |
| <default>y</default> |
| </job-attribute> |
| <job-attribute name="Resource_List.arch" type="string"> |
| <description>Specifies the administrator defined system architecture requried.</description> |
| <tooltip>This defaults to whatever the PBS_MACH string is set to in "local.mk". Units: string.</tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.cput" type="string"> |
| <description>Maximum amount of CPU time used by all processes in the job.</description> |
| <tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.file" type="string"> |
| <description>The largest size of any single file that may be created by the job.</description> |
| <tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw |
| (kilo), mb/mw (mega), gb/bw (giga). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.host" type="string"> |
| <description>Name of host on which job should be run.</description> |
| </job-attribute> |
| <job-attribute name="Resource_List.mem" type="string"> |
| <description>Maximum amount of memory used by all concurrent processes in the job.</description> |
| <tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw |
| (kilo), mb/mw (mega), gb/bw (giga). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.nice" type="integer" min="0" max="10"> |
| <description>The nice value under which the job is to be run.</description> |
| <tooltip>0 to 10.</tooltip> |
| <default>0</default> |
| </job-attribute> |
| <job-attribute name="Resource_List.nodes" basic="true" type="string"> |
| <description>Number and/or type of nodes to be reserved for exclusive use by the job.</description> |
| <tooltip>The value is one or more node_specs joined with the '+' character, "node_spec[+node_spec...]. Each node_spec is a number of |
| nodes required of the type declared in the node_spec and a name or one or more properity or properities desired for the nodes. The |
| number, the name, and each properity in the node_spec are separated by a colon ':'. If no number is specified, one (1) is assumed. |
| Units: string. The name of a node is its hostname. The properties of nodes are: ppn=# requested; defaults to 1; or an arbitrary |
| string defined by system administrator. Example: To ask for 2 processors on each of two blue nodes and three processors on one red |
| node: -l nodes=2:blue:ppn=2+red:ppn=3. |
| </tooltip> |
| <default>1</default> |
| </job-attribute> |
| <job-attribute name="Resource_List.ompthreads" type="integer" min="1"> |
| <description>Number of threads per processor for Open MP jobs.</description> |
| <default>1</default> |
| </job-attribute> |
| <job-attribute name="Resource_List.pcput" type="string"> |
| <description>Maximum amount of CPU time used by any single process in the job.</description> |
| <tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.pmem" type="string"> |
| <description>Maximum amount of physical memory (workingset) used by any single process of the job.</description> |
| <tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw |
| (kilo), mb/mw (mega), gb/bw (giga). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.pvmem" type="string"> |
| <description>Maximum amount of virtual memory used by any single process in the job.</description> |
| <tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw |
| (kilo), mb/mw (mega), gb/bw (giga). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.vmem" type="string"> |
| <description>Maximum amount of virtual memory used by all concurrent processes in the job.</description> |
| <tooltip>Format: integer[suffix]; the suffix is a multiplier in bytes or words (word size of the host): b (bytes), w (words), kb/kw |
| (kilo), mb/mw (mega), gb/bw (giga). |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Resource_List.walltime" basic="true" type="string"> |
| <description>Maximum amount of real time during which the job can be in the running state.</description> |
| <tooltip>Format: [[hours:]minutes:]seconds[.milliseconds].</tooltip> |
| <default>00:30:00</default> |
| </job-attribute> |
| <job-attribute name="Shell_Path_List" type="string"> |
| <description>A set of absolute paths of the program to process the job's script file.</description> |
| <tooltip>Format: path[@host][,path[@host]...]. If this is null, then the user's login shell on the host of execution will be used. |
| Default value: null, login shell. |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="stagein" type="string"> |
| <description>The list of files to be staged in prior to job execution.</description> |
| <tooltip>Format: local_path@remote_host:remote_path.</tooltip> |
| </job-attribute> |
| <job-attribute name="stageout" type="string"> |
| <description>The list of files to be staged out after job execution.</description> |
| <tooltip>Format: local_path@remote_host:remote_path.</tooltip> |
| </job-attribute> |
| <job-attribute name="User_List" type="string"> |
| <description>The list of user@hosts which determines the user name under which the job is run on a given host.</description> |
| <tooltip>When a job is to be placed into execution, the server will select a user name from the list according to the following |
| ordered set of rules: 1) Select the user name from the list for which the associated host name matches the name of the execution |
| host; 2) Select the user name which has no associated host name, the wild card name; 3) Use the Job_Owner as the user name. |
| Default |
| value: job owner name. |
| </tooltip> |
| </job-attribute> |
| <job-attribute name="Variable_List" type="string"> |
| <description>This is the list of environment variables passed with the Queue Job batch request.</description> |
| </job-attribute> |
| <managed-files> |
| <file-staging-location>.eclipsesettings</file-staging-location> |
| <file name="pbs_script" uniqueIdPrefix="true" deleteAfterUse="true"> |
| <contents>${rm:script#value}</contents> |
| </file> |
| </managed-files> |
| <script shellDirective="#!/bin/bash"> |
| <directive valueFrom="Account_Name"># @ PBS -A </directive> |
| <directive valueFrom="Checkpoint"># @ PBS -c </directive> |
| <directive valueFrom="depend"># @ PBS -W depend=</directive> |
| <directive valueFrom="destination"># @ PBS -q </directive> |
| <directive valueFrom="directive"># @ PBS -C </directive> |
| <directive valueFrom="Error_Path"># @ PBS -e </directive> |
| <directive valueFrom="export_all"># @ PBS -V </directive> |
| <directive valueFrom="group_list"># @ PBS -W group_list=</directive> |
| <directive valueFrom="Hold_Types"># @ PBS -h </directive> |
| <directive valueFrom="Job_Name"># @ PBS -N </directive> |
| <directive valueFrom="Join_Path"># @ PBS -j </directive> |
| <directive valueFrom="Keep_Files"># @ PBS -k </directive> |
| <directive valueFrom="Mail_Points"># @ PBS -m </directive> |
| <directive valueFrom="Mail_Users"># @ PBS -M </directive> |
| <directive valueFrom="Output_Path"># @ PBS -o </directive> |
| <directive valueFrom="Priority"># @ PBS -p </directive> |
| <directive valueFrom="Rerunnable"># @ PBS -r </directive> |
| <directive valueFrom="Resource_List.arch"># @ PBS -l arch=</directive> |
| <directive valueFrom="Resource_List.cput"># @ PBS -l cput=</directive> |
| <directive valueFrom="Resource_List.file"># @ PBS -l file=</directive> |
| <directive valueFrom="Resource_List.host"># @ PBS -l host=</directive> |
| <directive valueFrom="Resource_List.mem"># @ PBS -l mem=</directive> |
| <directive valueFrom="Resource_List.nice"># @ PBS -l nice=</directive> |
| <directive valueFrom="Resource_List.nodes"># @ PBS -l nodes=</directive> |
| <directive valueFrom="Resource_List.ompthreads"># @ PBS -l ompthreads=</directive> |
| <directive valueFrom="Resource_List.pcput"># @ PBS -l pcput=</directive> |
| <directive valueFrom="Resource_List.pmem"># @ PBS -l pmem=</directive> |
| <directive valueFrom="Resource_List.pvmem"># @ PBS -l pvmem=</directive> |
| <directive valueFrom="Resource_List.vmem"># @ PBS -l vmem=</directive> |
| <directive valueFrom="Resource_List.walltime"># @ PBS -l walltime=</directive> |
| <directive valueFrom="Shell_Path_List"># @ PBS -S </directive> |
| <directive valueFrom="stagein"># @ PBS -W stagein=</directive> |
| <directive valueFrom="stageout"># @ PBS -W stageout=</directive> |
| <directive valueFrom="User_List"># @ PBS -u </directive> |
| <directive valueFrom="Variable_List"># @ PBS -v </directive> |
| <pre-execute-command> |
| <arg isUndefinedIfEquals="cd">cd ${rm:directory#value}</arg> |
| </pre-execute-command> |
| <execute-command> |
| <arg>${rm:mpiCommand#value}</arg> |
| <arg>${rm:mpiArgs#value}</arg> |
| <arg>${rm:executablePath#value}</arg> |
| <arg>${rm:progArgs#value}</arg> |
| </execute-command> |
| <post-execute-command> |
| <arg>touch</arg> |
| <arg>DONE</arg> |
| </post-execute-command> |
| </script> |
| <!-- ********************** FOR TESTING ********************** --> |
| <start-up-command name="get-queues"> |
| <!-- |
| <arg>qstat -Q -f</arg> |
| <arg>| grep Queue:</arg> |
| <arg>| cut -d ' ' -f 2</arg> |
| <arg>| tr '\n' ' '</arg> |
| --> |
| <args> |
| <arg>/Users/arossi/qstatF</arg> |
| </args> |
| <stdout-parser> |
| <read delim="\n"> |
| <match> |
| <expression>[^\s]+</expression> |
| <target ref="available_queues"/> |
| <add field="value"> |
| <entry valueGroup="0"/> |
| </add> |
| </match> |
| </read> |
| </stdout-parser> |
| </start-up-command> |
| <!-- ********************** FOR TESTING ********************** --> |
| <submit-interactive name="submit-interactive" waitForId="true"> |
| <args> |
| <arg>/Users/arossi/qsub</arg> |
| <arg>${rm:pbs_script#value}</arg> |
| </args> |
| <stdout-parser> |
| <read delim="\n" all="true" save="1"> |
| <match> |
| <expression>([\d]*)[.].*</expression> |
| <target ref="@jobId@"/> |
| <set field="name"> |
| <entry valueGroup="1"/> |
| </set> |
| <set field="value"> |
| <entry value="SUBMITTED"/> |
| </set> |
| </match> |
| </read> |
| </stdout-parser> |
| </submit-interactive> |
| <!-- ********************** FOR TESTING ********************** --> |
| <get-job-status name="get-job-status"> |
| <args> |
| <arg>/Users/arossi/qstatId</arg> |
| <arg>@jobId@</arg> |
| </args> |
| <stdout-parser> |
| <read delim="\n"> |
| <match> |
| <expression>.+[\s]+.+[\s]+.+[\s]+.+[\s]+([A-Z])[\s]+.+</expression> |
| <target ref="@jobId@"/> |
| <set field="value"> |
| <entry valueGroup="1"/> |
| </set> |
| <test op="EQ"> |
| <value>this.value</value> |
| <value>Q</value> |
| <set field="value"> |
| <entry value="QUEUED_ACTIVE"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>this.value</value> |
| <value>R</value> |
| <set field="value"> |
| <entry value="RUNNING"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>this.value</value> |
| <value>S</value> |
| <set field="value"> |
| <entry value="SUSPENDED"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>this.value</value> |
| <value>C</value> |
| <set field="value"> |
| <entry value="COMPLETED"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>this.value</value> |
| <value>E</value> |
| <set field="value"> |
| <entry value="COMPLETED"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>this.value</value> |
| <value>H</value> |
| <set field="value"> |
| <entry value="SYSTEM_ON_HOLD"/> |
| </set> |
| </test> |
| </match> |
| </read> |
| </stdout-parser> |
| </get-job-status> |
| <!-- |
| <terminate-job name="cancel"> |
| <args> |
| <arg>qdel</arg> |
| <arg>@jobId@</arg> |
| </args> |
| </terminate-job> |
| --> |
| <launch-tab> |
| <basic> |
| <title>Basic PBS Settings</title> |
| <group> |
| <grid-layout numColumns="3"/> |
| <!-- row 1 --> |
| <widget type="text" valueFrom="Job_Name" saveAs="Job_Name"> |
| <label>Job Name: </label> |
| <tooltip>${rm:Job_Name#tooltip}</tooltip> |
| </widget> |
| <widget type="label"> |
| <displayValue> |
| <arg>${rm:Job_Name#description}</arg> |
| </displayValue> |
| </widget> |
| <!-- row 2 --> |
| <widget type="combo" readOnly="true" valueFrom="available_queues" saveAs="destination"> |
| <label>Queue: </label> |
| <tooltip>${rm:destination#tooltip}</tooltip> |
| </widget> |
| <widget type="label"> |
| <displayValue> |
| <arg>${rm:destination#description}</arg> |
| </displayValue> |
| </widget> |
| <!-- row 3 --> |
| <widget type="text" valueFrom="Resource_List.nodes" saveAs="Resource_List.nodes"> |
| <label>Nodes: </label> |
| <tooltip>${rm:Resource_List.nodes#tooltip}</tooltip> |
| </widget> |
| <widget type="label"> |
| <displayValue> |
| <arg>${rm:Resource_List.nodes#description}</arg> |
| </displayValue> |
| </widget> |
| <!-- row 4 --> |
| <widget type="text" valueFrom="Resource_List.walltime" saveAs="Resource_List.walltime"> |
| <label>Wallclock Time</label> |
| <tooltip>${rm:Resource_List.walltime#tooltip}</tooltip> |
| </widget> |
| <widget type="label"> |
| <displayValue> |
| <arg>${rm:Resource_List.walltime#description}</arg> |
| </displayValue> |
| </widget> |
| <!-- row 5 --> |
| <widget type="combo" readOnly="true" valueFrom="mpiCommand" saveAs="mpiCommand"> |
| <label>MPI Command: </label> |
| </widget> |
| <widget type="label"> |
| <displayValue> |
| <arg>${rm:mpiCommand#description}</arg> |
| </displayValue> |
| </widget> |
| <!-- row 6 --> |
| <widget type="spinner" readOnly="true" valueFrom="mpiCores" saveAs="mpiCores"> |
| <label>MPI Number of Cores: </label> |
| </widget> |
| <widget type="label"> |
| <displayValue> |
| <arg>${rm:mpiCores#description}</arg> |
| </displayValue> |
| </widget> |
| </group> |
| </basic> |
| <advanced dynamic="true"> |
| <title>Advanced PBS Settings</title> |
| <group dynamic="true" scrollable="true"> |
| <grid-layout numColumns="3"/> |
| <!-- iterates through all registered attributes, one to a row --> |
| <all-attributes> |
| <include sort="true" headers="true" name="true" tooltip="true" description="true"/> |
| </all-attributes> |
| </group> |
| </advanced> |
| <custom-controller>Import PBS Script</custom-controller> |
| </launch-tab> |
| </control-data> |
| <monitor-data/> |
| </resource-manager-builder> |