| <?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: --> |
| <!-- * Albert L. Rossi - design and implementation --> |
| <!-- ****************************************************************************** --> |
| <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="tabbed-example"> |
| <control-data> |
| <property name="e1" visible="true"/> |
| <property name="e2" visible="true"/> |
| <property name="e3" visible="true"/> |
| <property name="e4" visible="true"/> |
| <property name="e5" visible="true"/> |
| <property name="path1" visible="true"/> |
| <property name="path2" visible="true"/> |
| <property name="path3" visible="true"/> |
| <property name="path4" visible="true"/> |
| <property name="linked" visible="true"> |
| <default>${ptp_rm:Resource_List.walltime#value}</default> |
| </property> |
| <attribute name="saveFiles" type="integer"> |
| <description>Does nothing; for testing boolean value translation.</description> |
| </attribute> |
| <attribute name="mpiCommand" type="choice"> |
| <description>Which mpi command to use.</description> |
| <choice>,mpiexec,mpirun</choice> |
| </attribute> |
| <attribute name="mpiCores" min="1" type="integer"> |
| <description>the '-np' value</description> |
| <default>1</default> |
| </attribute> |
| <attribute name="destination" type="string"> |
| <description>Designation of the queue to which to submit the job.</description> |
| <tooltip>Format: queue[@server].</tooltip> |
| </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[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> |
| <default>20gb</default> |
| </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> |
| </attribute> |
| <script> |
| <line> |
| <arg>QUEUE = ${ptp_rm:destination#value}</arg> |
| </line> |
| <line> |
| <arg>COMMAND = ${ptp_rm:mpiCommand#value}</arg> |
| </line> |
| <line> |
| <arg>CORES = ${ptp_rm:mpiCores#value}</arg> |
| </line> |
| <line> |
| <arg>MEM = ${ptp_rm:Resource_List.mem#value}</arg> |
| </line> |
| <line> |
| <arg>WALL = ${ptp_rm:Resource_List.walltime#value}</arg> |
| </line> |
| <line> |
| <arg>e1 = ${ptp_rm:e1#value}</arg> |
| </line> |
| <line> |
| <arg>e2 = ${ptp_rm:e2#value}</arg> |
| </line> |
| <line> |
| <arg>e3 = ${ptp_rm:e3#value}</arg> |
| </line> |
| <line> |
| <arg>e4 = ${ptp_rm:e4#value}</arg> |
| </line> |
| <line> |
| <arg>e5 = ${ptp_rm:e5#value}</arg> |
| </line> |
| <line> |
| <arg>path1 = ${ptp_rm:path1#value}</arg> |
| </line> |
| <line> |
| <arg>path2 = ${ptp_rm:path2#value}</arg> |
| </line> |
| <line> |
| <arg>path3 = ${ptp_rm:path3#value}</arg> |
| </line> |
| <line> |
| <arg>path4 = ${ptp_rm:path4#value}</arg> |
| </line> |
| <line> |
| <arg>linked = ${ptp_rm:linked#value}</arg> |
| </line> |
| </script> |
| <submit-interactive name="submit-interactive"> |
| <arg>echo</arg> |
| <arg>$VAR_1</arg> |
| <arg>$VAR_2</arg> |
| <arg>$VAR_3</arg> |
| <arg>$VAR_4</arg> |
| <arg>$VAR_5</arg> |
| <environment name="VAR_1" value="${ptp_rm:e1#value}"/> |
| <environment name="VAR_2" value="${ptp_rm:e2#value}"/> |
| <environment name="VAR_3" value="${ptp_rm:e3#value}"/> |
| <environment name="VAR_4" value="${ptp_rm:e4#value}"/> |
| <environment name="VAR_5" value="${ptp_rm:e5#value}"/> |
| </submit-interactive> |
| <launch-tab> |
| <dynamic> |
| <title>Cores</title> |
| <composite group="true"> |
| <layout> |
| <grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/> |
| </layout> |
| <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> |
| <fixed-text>Keep Files: </fixed-text> |
| </widget> |
| <widget type="checkbox" saveValueTo="saveFiles" style="SWT.LEFT" translateBooleanAs="1,0"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" grabExcessHorizontal="false"/> |
| </layout-data> |
| </widget> |
| <!-- it seems that SWT will not spread a single button over more than one grid column, so we need an empty label filler here --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" 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:saveFiles#description}</fixed-text> |
| </widget> |
| <!-- row 2 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>MPI Number of Cores: </fixed-text> |
| </widget> |
| <button-group saveValueTo="mpiCores" group="true"> |
| <layout> |
| <row-layout type="SWT.HORIZONTAL" center="true" fill="true" justify="true"/> |
| </layout> |
| <button type="radiobutton" title="1"/> |
| <button type="radiobutton" title="2"/> |
| <button type="radiobutton" title="3"/> |
| <button type="radiobutton" title="4"/> |
| <button type="radiobutton" title="5"/> |
| <button type="radiobutton" title="6"/> |
| <button type="radiobutton" title="7"/> |
| <button type="radiobutton" title="8"/> |
| </button-group> |
| <!-- likewise cannot seem to make new composite with row layout span two columns of its parent grid layout, so we use another empty |
| label here as filler --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" 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:mpiCores#description}</fixed-text> |
| </widget> |
| </composite> |
| </dynamic> |
| <dynamic includeWidgetValuesFrom="Environment,Paths"> |
| <title>Settings</title> |
| <composite> |
| <layout> |
| <grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/> |
| </layout> |
| <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:Resource_List.mem#tooltip}</tooltip> |
| <fixed-text>Total Memory Needed: </fixed-text> |
| </widget> |
| <widget type="text" style="SWT.BORDER" saveValueTo="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 2 --> |
| <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" saveValueTo="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 3 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>MPI Command: </fixed-text> |
| </widget> |
| <widget type="combo" style="SWT.BORDER" readOnly="true" saveValueTo="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> |
| </composite> |
| </dynamic> |
| <dynamic> |
| <title>Paths</title> |
| <composite> |
| <layout> |
| <grid-layout numColumns="4" makeColumnsEqualWidth="false" horizontalSpacing="10" verticalSpacing="15"/> |
| </layout> |
| <!-- row 1 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Browse URI: </fixed-text> |
| </widget> |
| <widget type="browse" uri="true" style="SWT.BORDER" readOnly="false" title="Browse" saveValueTo="path1"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" widthHint="200" horizontalSpan="2" grabExcessHorizontal="true"/> |
| </layout-data> |
| <sub-layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" widthHint="100" horizontalSpan="1" grabExcessHorizontal="false"/> |
| </sub-layout-data> |
| </widget> |
| <!-- row 2 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Browse Dir Path: </fixed-text> |
| </widget> |
| <widget type="browse" uri="false" directory="true" style="SWT.BORDER" readOnly="true" title="Browse" saveValueTo="path2"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" widthHint="200" horizontalSpan="2" grabExcessHorizontal="true"/> |
| </layout-data> |
| <sub-layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" widthHint="100" horizontalSpan="1" grabExcessHorizontal="false"/> |
| </sub-layout-data> |
| </widget> |
| <!-- row 3 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Browse Local File: </fixed-text> |
| </widget> |
| <widget type="browse" style="SWT.BORDER | SWT.H_SCROLL" readOnly="true" localOnly="true" title="Browse" saveValueTo="path3"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" widthHint="200" horizontalSpan="2" grabExcessHorizontal="true"/> |
| </layout-data> |
| <sub-layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" widthHint="100" horizontalSpan="1" grabExcessHorizontal="false"/> |
| </sub-layout-data> |
| </widget> |
| <!-- row 4 --> |
| <widget type="label" style="SWT.LEFT"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" grabExcessHorizontal="false"/> |
| </layout-data> |
| <fixed-text>Browse Local Dir URI: </fixed-text> |
| </widget> |
| <widget type="browse" directory="true" uri="true" style="SWT.BORDER" readOnly="true" localOnly="true" title="Browse" |
| saveValueTo="path4"> |
| <layout-data> |
| <grid-data horizontalAlign="SWT.FILL" widthHint="200" horizontalSpan="2" grabExcessHorizontal="true"/> |
| </layout-data> |
| <sub-layout-data> |
| <grid-data horizontalAlign="SWT.BEGINNING" widthHint="100" horizontalSpan="1" grabExcessHorizontal="false"/> |
| </sub-layout-data> |
| </widget> |
| </composite> |
| </dynamic> |
| <dynamic includeWidgetValuesFrom="Settings"> |
| <title>Environment</title> |
| <composite group="true"> |
| <layout> |
| <grid-layout numColumns="1"/> |
| </layout> |
| <viewer name="environment" style="SWT.BORDER | SWT.MULTI" sort="true" type="table"> |
| <layout-data> |
| <grid-data widthHint="600" heightHint="200" horizontalSpan="1"/> |
| </layout-data> |
| <column-data name="Name" width="175"> |
| <tooltip>Double-click on selected rows toggles their checked value.</tooltip> |
| </column-data> |
| <column-data name="Value" width="400"> |
| <tooltip>Click to activate value widget.</tooltip> |
| </column-data> |
| <items> |
| <include>e1</include> |
| <include>e2</include> |
| <include>e3</include> |
| <include>e4</include> |
| <include>e5</include> |
| <include>linked</include> |
| </items> |
| <value pattern="export @name='@value'" separator="; "/> |
| </viewer> |
| </composite> |
| </dynamic> |
| </launch-tab> |
| </control-data> |
| <monitor-data schedulerType="Tabbed"> |
| <driver> |
| <name></name> |
| </driver> |
| </monitor-data> |
| </resource-manager-builder> |