| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- ******************************************************************************* --> |
| <!-- * Copyright (c) 2011 University of Illinois. All rights reserved. --> |
| <!-- * This program and the accompanying materials are made available under the --> |
| <!-- * terms of the Eclipse Public License v1.0 which accompanies this distribution, --> |
| <!-- * and is available at http://www.eclipse.org/legal/epl-v10.html --> |
| <!-- * --> |
| <!-- * Contributors: --> |
| <!-- * Al Rossi - Design and implementation --> |
| <!-- * Galen Arnold - Adapted to mvapich2 --> |
| <!-- * Jeff Overbey - Adapted to Grid Engine --> |
| <!-- ******************************************************************************* --> |
| <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="edu.utexas.tacc.ranger.sge.batch.xml"> |
| <control-data> |
| <!-- (Required) This attribute is required by LML. Link it to the batch-specific variable name. --> |
| <attribute name="control.queue.name" visible="false"> |
| <link-value-to>destination</link-value-to> |
| </attribute> |
| <!-- (Required) Used by RM internals for fetch. Name is fixed by convention --> |
| <attribute name="stdout_remote_path" visible="false"> |
| <default>${ptp_rm:directory#value}/${ptp_rm:Job_Name#value}.o${ptp_rm:@jobId#default}</default> |
| <link-value-to>Output_Path</link-value-to> |
| </attribute> |
| <!-- (Required) Useded by RM internals for fetch. Name is fixed by convention --> |
| <attribute name="stderr_remote_path" visible="false"> |
| <default>${ptp_rm:directory#value}/${ptp_rm:Job_Name#value}.e${ptp_rm:@jobId#default}</default> |
| <link-value-to>Error_Path</link-value-to> |
| </attribute> |
| <!-- This is prepended to qconf, qsub, qdel, and showq below. |
| Set the default value of this attribute if Grid Engine is not in the user's PATH. --> |
| <attribute name="bindir" visible="false"/> |
| <!-- List of queues. Set by <start-up-command> below. Invisible since the values are not modifiable. --> |
| <attribute name="queues" visible="false"/> |
| |
| <attribute name="Output_Path" type="string"><!-- Linked to stdout_remote_path attribute above --><!-- Not in UI --> |
| <description>The final path name for the file containing the job's standard output stream.</description> |
| <tooltip><![CDATA[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> |
| </attribute> |
| <attribute name="Error_Path" type="string"><!-- Linked to stderr_remote_path attribute above --><!-- Not in UI --> |
| <description>The final path name for the file containing the job's standard error stream.</description> |
| <tooltip><![CDATA[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> |
| </attribute> |
| <attribute name="destination" type="string"><!-- Linked to control.queue.name attribute above --> |
| <description>Designation of the queue to which to submit the job.</description> |
| <tooltip>Format: queue[@server].</tooltip> |
| <default>normal</default> |
| <validator> |
| <regex expression="[\S]+"/> |
| <error-message>cannot be empty</error-message> |
| </validator> |
| </attribute> |
| <attribute name="mpiCommand" type="choice"> |
| <description>Command used to run MPI jobs.</description> |
| <choice>,ibrun,ibrun tacc_affinity</choice> |
| <default>ibrun</default> |
| </attribute> |
| <attribute name="Account_Name" type="string"> |
| <description>Account to which to charge this job.</description> |
| <tooltip>Format: string</tooltip> |
| <validator> |
| <regex expression="[\S]*"/> |
| <error-message>must not contain spaces</error-message> |
| </validator> |
| </attribute> |
| <attribute name="export_all" type="boolean" translateBooleanAs="-V, "> |
| <description><![CDATA[All variables in the qsub command's environment are to be exported to the batch job.]]></description> |
| <default>-V</default> |
| </attribute> |
| <attribute name="Job_Name" type="string"> |
| <description>The name assigned to the job by the qsub or qalter command.</description> |
| <tooltip><![CDATA[Format: string up to 15 characters, |
| first character must be alphabetic; default value: |
| the base name of the job script or STDIN.]]></tooltip> |
| <default>ptp_job</default> |
| <validator> |
| <regex expression="[a-zA-Z_][0-9a-zA-Z_]*"/> |
| <error-message>must be at least one alphanumeric character</error-message> |
| </validator> |
| </attribute> |
| <attribute name="Join_Path" type="boolean" translateBooleanAs="yes,no"> |
| <description>Merge stdout and stderr into stdout.</description> |
| <default>no</default> |
| </attribute> |
| <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> |
| <validator> |
| <!-- Empty or user [@host] [,user [@host] ] ...--> |
| <regex expression="|[^\s@,]+(@[^\s@,]+)?(,[^\s@,]+(@[^\s@,]+)?)*"/> |
| <error-message>must be a comma-separated list of user[@host]</error-message> |
| </validator> |
| </attribute> |
| <attribute name="Resource_List.mem" type="string"> |
| <description>Maximum amount of memory used by all concurrent processes in the job.</description> |
| <tooltip><![CDATA[Format: Integer number of bytes, |
| with an optional suffix: K (kilo), M (mega), or G (giga). |
| Examples: 1048576 or 1024k or 1m]]></tooltip> |
| <validator> |
| <!-- Memory format documented in man page for sge_types(1) --> |
| <regex expression="|[\d]+[kKmMgG]?"/> |
| <error-message>must be an integer with an optional K, M, or G suffix</error-message> |
| </validator> |
| </attribute> |
| <attribute name="Resource_List.pe" type="string"> |
| <description>Parallel environment to instantiate. Ranger has 16 cores per node. |
| "16way 32" gives 16 MPI tasks per node and 32 total cores (2 nodes). |
| 16way environments are recommended for MPI jobs. Use "1way 16" for serial jobs.</description> |
| <tooltip><![CDATA[The range (i.e., the second number) must |
| be a positive multiple of 16.)]]></tooltip> |
| <choice>1way 16,2way 16,4way 16,8way 16,16way 16,16way 32,16way 48,16way 64,16way 96,16way 128,16way 256,16way 512,16way 1024,16way 2048,16way 4096,16way 8192,16way 16384</choice> |
| <default>16way 16</default> |
| <validator> |
| <regex expression="[\d]+way[\s]+[\d]+"/> |
| <error-message>must be "Nway M", where N is the number of tasks per node and M is the total number of cores (i.e., number of nodes times 16)</error-message> |
| </validator> |
| </attribute> |
| <attribute name="Resource_List.walltime" 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> |
| <validator> |
| <regex expression="\d?\d:\d?\d:\d?\d"/> |
| <error-message>format must be hh:mm:ss</error-message> |
| </validator> |
| </attribute> |
| |
| <!-- ========== --> |
| <!-- JOB SCRIPT --> |
| <!-- ========== --> |
| <script insertEnvironmentAfter="35"> |
| <file-staging-location>${ptp_rm:directory#value}</file-staging-location> |
| <line> |
| <arg>#!/bin/bash</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -N">#$ -N ${ptp_rm:Job_Name#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -A">#$ -A ${ptp_rm:Account_Name#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -q">#$ -q ${ptp_rm:destination#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -pe ">#$ -pe ${ptp_rm:Resource_List.pe#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -l h_data=">#$ -l h_data=${ptp_rm:Resource_List.mem#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -l h_rt=">#$ -l h_rt=${ptp_rm:Resource_List.walltime#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -M">#$ -M ${ptp_rm:Mail_Users#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -j">#$ -j ${ptp_rm:Join_Path#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -o">#$ -o ${ptp_rm:Output_Path#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$ -e">#$ -e ${ptp_rm:Error_Path#value}</arg> |
| </line> |
| <line> |
| <arg isUndefinedIfMatches="#\$">#$ ${ptp_rm:export_all#value}</arg> |
| </line> |
| <line><arg resolve="false">cd $SCRATCH</arg></line> |
| <line><arg>cp ${ptp_rm:executablePath#value} .</arg></line> |
| <line><arg>MYSCREXE=`basename ${ptp_rm:executablePath#value}`</arg></line> |
| <line> |
| <arg>COMMAND=${ptp_rm:mpiCommand#value}</arg> |
| </line> |
| <line> |
| <arg resolve="false">if [ -n "${COMMAND}" ] ; then</arg> |
| </line> |
| <line> |
| <arg resolve="false"> COMMAND="${COMMAND}</arg> |
| <arg resolve="false"> ${MYSCREXE} </arg> |
| <arg>${ptp_rm:progArgs#value}"</arg> |
| </line> |
| <line> |
| <arg resolve="false">else</arg> |
| </line> |
| <line> |
| <arg resolve="false"> COMMAND="${MYSCREXE}</arg> |
| <arg>${ptp_rm:progArgs#value}"</arg> |
| </line> |
| <line> |
| <arg resolve="false">fi</arg> |
| </line> |
| <line> |
| <arg resolve="false">${COMMAND}</arg> |
| </line> |
| </script> |
| |
| <!-- ================= --> |
| <!-- START-UP COMMANDS --> |
| <!-- ================= --> |
| <start-up-command name="get-queues"> |
| <arg>${ptp_rm:bindir#value}qconf</arg> |
| <arg>-sql</arg> |
| <stdout-parser delim="\n"> |
| <target ref="queues"> |
| <match> |
| <expression>([a-zA-Z0-9-_]+)</expression> |
| <add field="value"> |
| <entry valueGroup="1"/> |
| </add> |
| </match> |
| </target> |
| </stdout-parser> |
| </start-up-command> |
| |
| <!-- ============== --> |
| <!-- JOB SUBMISSION --> |
| <!-- ============== --> |
| <submit-batch name="submit-batch" directory="${ptp_rm:directory#value}" waitForId="true"> |
| <arg>${ptp_rm:bindir#value}qsub</arg> |
| <arg>${ptp_rm:managed_file_for_script#value}</arg> |
| <stdout-parser delim="\n" all="true" save="1"> |
| <target ref="@jobId"> |
| <match> |
| <expression>Your job ([\d]+) .*has been submitted</expression> |
| <set field="name"> |
| <entry valueGroup="1"/> |
| </set> |
| <set field="default"> |
| <entry valueGroup="1"/> |
| </set> |
| <set field="value"> |
| <entry value="SUBMITTED"/> |
| </set> |
| </match> |
| </target> |
| <target ref="@jobId"> |
| <match> |
| <expression flags="DOTALL|UNIX_LINES">.*ERROR!.*</expression> |
| <set field="value"> |
| <entry value="FAILED"/> |
| </set> |
| </match> |
| <match> |
| <expression flags="DOTALL|UNIX_LINES">qsub: Unknown option</expression> |
| <set field="value"> |
| <entry value="FAILED"/> |
| </set> |
| </match> |
| <match> |
| <expression flags="DOTALL|UNIX_LINES">.*> Rejecting job <.*</expression> |
| <set field="value"> |
| <entry value="FAILED"/> |
| </set> |
| </match> |
| <match> |
| <expression flags="DOTALL|UNIX_LINES">Unable to run job: .*</expression> |
| <set field="value"> |
| <entry value="FAILED"/> |
| </set> |
| </match> |
| </target> |
| </stdout-parser> |
| <stderr-parser delim="\n"> |
| <target ref="@jobId"> |
| <match> |
| <expression>.*ERROR!.*</expression> |
| <throw message="Job Submit Failed"/> |
| </match> |
| <match> |
| <expression>qsub: Unknown option</expression> |
| <throw message="Job Submit Failed"/> |
| </match> |
| <match> |
| <expression>.*> Rejecting job <.*</expression> |
| <throw message="Job Submit Failed"/> |
| </match> |
| <match> |
| <expression>Unable to run job: .*</expression> |
| <throw message="Job Submit Failed"/> |
| </match> |
| </target> |
| </stderr-parser> |
| </submit-batch> |
| |
| <!-- ========== --> |
| <!-- JOB STATUS --> |
| <!-- ========== --> |
| <get-job-status name="get-job-status" ignoreExitStatus="true"> |
| <arg>${ptp_rm:bindir#value}showq</arg> |
| <arg>-u</arg> |
| <stdout-parser delim="\n"> |
| <target ref="@jobId"> |
| <match> |
| <!-- Example: |
| JOBID JOBNAME USERNAME STATE CORE WCLIMIT QUEUETIME |
| ================================================================================ |
| 346890 myMPI joverbey Waiting 12 00:01:00 Tue Nov 22 10:42:19 |
| |
| WAITING JOBS WITH JOB DEPENDENCIES |
| JOBID JOBNAME USERNAME STATE CORE WCLIMIT QUEUETIME |
| ================================================================================ |
| |
| UNSCHEDULED JOBS |
| JOBID JOBNAME USERNAME STATE CORE WCLIMIT QUEUETIME |
| ================================================================================ |
| 346887 myMPI joverbey Unsched 12 00:01:00 Tue Nov 22 10:40:26 |
| --> |
| <!-- JOBID JOBNAME USERNAME STATE ... --> |
| <expression>${ptp_rm:@jobId#name}[\s]+[\S]+[\s]+[\S]+[\s]+([A-Za-z]+)[\s]+.+</expression> |
| <set field="value"> |
| <entry valueGroup="1"/> |
| </set> |
| </match> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Waiting</value> |
| <set field="value"> |
| <entry value="QUEUED_ACTIVE"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>DepWait</value> |
| <set field="value"> |
| <entry value="QUEUED_ACTIVE"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Idle</value> |
| <set field="value"> |
| <entry value="QUEUED_ACTIVE"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Starting</value> |
| <set field="value"> |
| <entry value="QUEUED_ACTIVE"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Hold</value> |
| <set field="value"> |
| <entry value="SYSTEM_ON_HOLD"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Running</value> |
| <set field="value"> |
| <entry value="RUNNING"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Suspended</value> |
| <set field="value"> |
| <entry value="SUSPENDED"/> |
| </set> |
| </test> |
| <test op="EQ"> |
| <value>#value</value> |
| <value>Unsched</value> |
| <set field="value"> |
| <entry value="COMPLETED"/> |
| </set> |
| </test> |
| </target> |
| </stdout-parser> |
| <stderr-parser delim="\n"> |
| <target ref="@jobId"> |
| <match> |
| <expression>.+</expression> |
| <set field="value"> |
| <entry value="COMPLETED"/> |
| </set> |
| </match> |
| </target> |
| </stderr-parser> |
| </get-job-status> |
| |
| <!-- =============== --> |
| <!-- JOB TERMINATION --> |
| <!-- =============== --> |
| <terminate-job name="cancel" ignoreExitStatus="true"> |
| <arg>${ptp_rm:bindir#value}qdel</arg> |
| <arg>${ptp_rm:@jobId#name}</arg> |
| </terminate-job> |
| |
| <!-- ========================= --> |
| <!-- USER INTERFACE/LAUNCH TAB --> |
| <!-- ========================= --> |
| <launch-tab> |
| <dynamic> |
| <title>Grid Engine Settings</title> |
| <layout> |
| <grid-layout/> |
| </layout> |
| <!-- ATTRIBUTES group --> |
| <composite group="true"> |
| <layout> |
| <grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/> |
| </layout> |
| <!-- HEADER --> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Name</fixed-text> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" horizontalSpan="2" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Value</fixed-text> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_RED"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Description</fixed-text> |
| </widget> |
| <!-- row 1 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Job_Name#tooltip}</tooltip> |
| <fixed-text>Job Name: </fixed-text> |
| </widget> |
| <widget type="text" style="SWT.BORDER" attribute="Job_Name"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Job_Name#description}</fixed-text> |
| </widget> |
| <!-- row 2 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Account_Name#tooltip}</tooltip> |
| <fixed-text>Account: </fixed-text> |
| </widget> |
| <widget type="text" style="SWT.BORDER" attribute="Account_Name"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Account_Name#description}</fixed-text> |
| </widget> |
| <!-- row 3 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:destination#tooltip}</tooltip> |
| <fixed-text>Queue: </fixed-text> |
| </widget> |
| <widget type="combo" style="SWT.BORDER" readOnly="true" attribute="destination"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/> |
| </layout-data> |
| <items-from>queues</items-from> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:destination#description}</fixed-text> |
| </widget> |
| <!-- row 4 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Resource_List.pe#tooltip}</tooltip> |
| <fixed-text>Parallel environment: </fixed-text> |
| </widget> |
| <widget type="combo" style="SWT.BORDER" readOnly="false" attribute="Resource_List.pe"> |
| <layout-data> |
| <grid-data widthHint="150" horizontalAlign="SWT.FILL" horizontalSpan="2"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Resource_List.pe#description}</fixed-text> |
| </widget> |
| <!-- row 5 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Resource_List.mem#tooltip}</tooltip> |
| <fixed-text>Total Memory Needed: </fixed-text> |
| </widget> |
| <widget type="text" style="SWT.BORDER" attribute="Resource_List.mem"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Resource_List.mem#description}</fixed-text> |
| </widget> |
| <!-- row 6 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Resource_List.walltime#tooltip}</tooltip> |
| <fixed-text>Wallclock Time: </fixed-text> |
| </widget> |
| <widget type="text" style="SWT.BORDER" attribute="Resource_List.walltime"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false" widthHint="150"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Resource_List.walltime#description}</fixed-text> |
| </widget> |
| <!-- row 7 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>MPI Launch Command: </fixed-text> |
| </widget> |
| <widget type="combo" style="SWT.BORDER" readOnly="false" attribute="mpiCommand"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:mpiCommand#description}</fixed-text> |
| </widget> |
| <!-- row 8 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Mail_Users#tooltip}</tooltip> |
| <fixed-text>Send E-mail To: </fixed-text> |
| </widget> |
| <widget type="text" style="SWT.BORDER" attribute="Mail_Users"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="true" widthHint="150"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Mail_Users#description}</fixed-text> |
| </widget> |
| <!-- row 9 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:Join_Path#tooltip}</tooltip> |
| <fixed-text>Combine stdout and stderr: </fixed-text> |
| </widget> |
| <widget type="checkbox" style="SWT.BORDER" attribute="Join_Path"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:Join_Path#description}</fixed-text> |
| </widget> |
| <!-- row 10 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <tooltip>${ptp_rm:export_all#tooltip}</tooltip> |
| <fixed-text>Export Environment: </fixed-text> |
| </widget> |
| <widget type="checkbox" style="SWT.BORDER" attribute="export_all"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" horizontalSpan="2" grabExcessHorizontal="false"/> |
| </layout-data> |
| </widget> |
| <widget type="label" style="SWT.LEFT" foreground="SWT.COLOR_DARK_BLUE"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>${ptp_rm:export_all#description}</fixed-text> |
| </widget> |
| </composite> |
| </dynamic> |
| <import title="Import Grid Engine Script"> |
| <export-for-override name="exportedEnv" style="SWT.BORDER | SWT.MULTI | SWT.V_SCROLL" sort="true" type="table" |
| initialAllChecked="true" tooltipEnabled="true"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" verticalAlign="SWT.CENTER" grabExcessHorizontal="true" heightHint="80"/> |
| </layout-data> |
| <column-data name="Name" width="175" resizable="true"> |
| <tooltip>Multi-select and click checkbox to apply change to all rows.</tooltip> |
| </column-data> |
| <column-data name="Value" width="200" resizable="true"> |
| <tooltip>Click to activate value widget.</tooltip> |
| </column-data> |
| <items> |
| <include>destination</include> |
| <include>Job_Name</include> |
| <include>Output_Path</include> |
| <include>Error_Path</include> |
| </items> |
| </export-for-override> |
| </import> |
| </launch-tab> |
| </control-data> |
| |
| <monitor-data schedulerType="GridEngine" /> |
| </resource-manager-builder> |