[Swift-commit] r8414 - SwiftApps/subjobs

ketan at ci.uchicago.edu ketan at ci.uchicago.edu
Tue Mar 24 16:59:06 CDT 2015


Author: ketan
Date: 2015-03-24 16:59:06 -0500 (Tue, 24 Mar 2015)
New Revision: 8414

Modified:
   SwiftApps/subjobs/README.html
   SwiftApps/subjobs/README.txt
Log:
background and diving deep

Modified: SwiftApps/subjobs/README.html
===================================================================
--- SwiftApps/subjobs/README.html	2015-03-24 20:57:45 UTC (rev 8413)
+++ SwiftApps/subjobs/README.html	2015-03-24 21:59:06 UTC (rev 8414)
@@ -781,12 +781,28 @@
 ./runmira.sh #on mira</code></pre>
 </div></div>
 <div class="paragraph"><p>Another example is found in <code>subjobs/simanalyze/part06</code></p></div>
-<div class="paragraph"><p>For the details about the working of this example, see Swift tutorial <a href="http://swift-lang.org/tutorials/localhost/tutorial.html#_part_3_analyzing_results_of_a_parallel_ensemble">here</a>.</p></div>
+<div class="paragraph"><p>For the details about the working of this example, see Swift tutorial
+<a href="http://swift-lang.org/tutorials/localhost/tutorial.html#_part_3_analyzing_results_of_a_parallel_ensemble">here</a>.</p></div>
 </div>
 </div>
 <div class="sect1">
-<h2 id="_how_to">3. How To</h2>
+<h2 id="_background">3. Background</h2>
 <div class="sectionbody">
+<div class="paragraph"><p>This section briefly discusses the Swift parallel scripting, Subjobs and their integration.</p></div>
+<div class="sect2">
+<h3 id="_swift">3.1. Swift</h3>
+</div>
+<div class="sect2">
+<h3 id="_subjobs">3.2. Subjobs</h3>
+<div class="paragraph"><p>Subjobs offer a way to run ensembles and parameter sweep like computations over BG/Q resources.</p></div>
+</div>
+</div>
+</div>
+<div class="sect1">
+<h2 id="_diving_deep">4. Diving deep</h2>
+<div class="sectionbody">
+<div class="sect2">
+<h3 id="_convert_any_swift_script_to_subjob">4.1. Convert any Swift script to subjob</h3>
 <div class="paragraph"><p>To configure a Swift application to run in subjob mode, the following
 changes are required:</p></div>
 <div class="paragraph"><p>First, add <code>bg.sh</code> as the application invoker in place of <code>sh</code> or any other
@@ -813,6 +829,52 @@
 <td class="content">The value of <code>SUBBLOCK_SIZE</code> variable must be a power of 2 and less than 512.</td>
 </tr></table>
 </div>
+</div>
+<div class="sect2">
+<h3 id="_swift_configuration">4.2. Swift Configuration</h3>
+<div class="paragraph"><p>A complete example config file for a sub-block job run on ALCF is shown below:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>sites : cluster
+site.cluster {
+    execution {
+        type: "coaster"
+        URL: "localhost"
+        jobManager: "local:cobalt"
+        options {
+            maxNodesPerJob: 32
+            maxJobs: 1
+            tasksPerNode: 2
+            #workerLoggingLevel = "DEBUG"
+            nodeGranularity: 32
+            maxJobTime = "00:60:00"
+        }
+    }
+    filesystem {
+        type: "local"
+        URL: "localhost"
+    }
+    staging : direct
+    workDirectory: "/home/"${env.USER}"/swift.work"
+    maxParallelTasks: 30
+    initialParallelTasks: 29
+    app.bgsh {
+        executable: "/home/ketan/SwiftApps/subjobs/bg.sh"
+        maxWallTime: "00:04:00"
+        env.SUBBLOCK_SIZE="16"
+    }
+}
+
+executionRetries: 0
+keepSiteDir: true
+providerStagingPinSwiftFiles: false
+alwaysTransferWrapperLog: true</code></pre>
+</div></div>
+<div class="paragraph"><p>Of note are the <code>SUBBLOCK_SIZE</code> property which must be present in the sites
+definition. It defines the size of the subblock needed to run the script.  In
+this particular example, we have the outer block size to be 256 nodes whereas
+the subblock size is 16 nodes. This results in a total of 16 subblocks
+resulting in <code>jobsPerNode</code> value to be 16.</p></div>
 <div class="admonitionblock">
 <table><tr>
 <td class="icon">
@@ -824,14 +886,15 @@
 </div>
 </div>
 </div>
+</div>
 <div class="sect1">
-<h2 id="_use_case_applications">4. Use-Case Applications</h2>
+<h2 id="_use_case_applications">5. Use-Case Applications</h2>
 <div class="sectionbody">
 <div class="paragraph"><p>This section discusses some of the real-world use-cases that are set up as demo
 applications with this package. These applications are tested with subblock as
 well as non-subblock runs on BG/Q system.</p></div>
 <div class="sect2">
-<h3 id="_namd">4.1. NAMD</h3>
+<h3 id="_namd">5.1. NAMD</h3>
 <div class="paragraph"><p><code>NAMD</code> is a molecular dynamics simulation code developed at
 <a href="http://www.ks.uiuc.edu/Research/namd">uiuc</a>. The Swift source and configuration
 files along with application inputs can be found in the <code>namd</code> directory in the
@@ -859,7 +922,7 @@
 parameters in the sites file as described in section 1 above.</p></div>
 </div>
 <div class="sect2">
-<h3 id="_rosetta">4.2. Rosetta</h3>
+<h3 id="_rosetta">5.2. Rosetta</h3>
 <div class="paragraph"><p><code>Rosetta</code> is a molecular <a href="http://rosie.rosettacommons.org/docking">docking</a>
 toolkit with many related programs used by many large-scale HPC science
 applications. This implementation shows how to run <code>FlexPeptide Docking</code> on
@@ -901,7 +964,7 @@
 </div></div>
 </div>
 <div class="sect2">
-<h3 id="_dock">4.3. Dock</h3>
+<h3 id="_dock">5.3. Dock</h3>
 <div class="paragraph"><p>Dock is another molecular docking
 <a href="http://dock.compbio.ucsf.edu/DOCK_6/dock6_manual.htm">program</a> used by many
 applications. The Swift source, configuration and application related inputs
@@ -916,7 +979,7 @@
 </div>
 </div>
 <div class="sect1">
-<h2 id="_internals">5. Internals</h2>
+<h2 id="_internals">6. Internals</h2>
 <div class="sectionbody">
 <div class="paragraph"><p>The key driver of the Swift sub-block jobs is a script called <code>bg.sh</code> that does
 the sub-block jobs calculations and othe chores for the users. The script looks
@@ -1004,7 +1067,7 @@
 </div>
 </div>
 <div class="sect1">
-<h2 id="_further_information">6. Further Information</h2>
+<h2 id="_further_information">7. Further Information</h2>
 <div class="sectionbody">
 <div class="olist arabic"><ol class="arabic">
 <li>
@@ -1029,7 +1092,7 @@
 <div id="footnotes"><hr /></div>
 <div id="footer">
 <div id="footer-text">
-Last updated 2015-03-24 15:47:10 CDT
+Last updated 2015-03-24 16:58:35 CDT
 </div>
 </div>
 </body>

Modified: SwiftApps/subjobs/README.txt
===================================================================
--- SwiftApps/subjobs/README.txt	2015-03-24 20:57:45 UTC (rev 8413)
+++ SwiftApps/subjobs/README.txt	2015-03-24 21:59:06 UTC (rev 8414)
@@ -46,11 +46,29 @@
 
 Another example is found in +subjobs/simanalyze/part06+
 
-For the details about the working of this example, see Swift tutorial http://swift-lang.org/tutorials/localhost/tutorial.html#_part_3_analyzing_results_of_a_parallel_ensemble[here].
+For the details about the working of this example, see Swift tutorial
+http://swift-lang.org/tutorials/localhost/tutorial.html#_part_3_analyzing_results_of_a_parallel_ensemble[here].
 
-How To
--------
+Background
+-----------
 
+This section briefly discusses the Swift parallel scripting, Subjobs and their integration.
+
+Swift
+~~~~~~
+
+
+Subjobs
+~~~~~~~~
+Subjobs offer a way to run ensembles and parameter sweep like computations over BG/Q resources.
+
+
+Diving deep
+------------
+
+Convert any Swift script to subjob
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
 To configure a Swift application to run in subjob mode, the following
 changes are required:
 
@@ -75,47 +93,53 @@
 
 NOTE: The value of +SUBBLOCK_SIZE+ variable must be a power of 2 and less than 512.
 
-////
-A complete example sites file for a sub-block job run on ALCF +Vesta+ is shown below:
+Swift Configuration
+~~~~~~~~~~~~~~~~~~~~
+A complete example config file for a sub-block job run on ALCF is shown below:
 
 ----
-<?xml version="1.0" encoding="UTF-8"?>
-<config xmlns="http://www.ci.uchicago.edu/swift/SwiftSites">
+sites : cluster
+site.cluster {
+    execution {
+        type: "coaster"
+        URL: "localhost"
+        jobManager: "local:cobalt"
+        options {
+            maxNodesPerJob: 32
+            maxJobs: 1
+            tasksPerNode: 2
+            #workerLoggingLevel = "DEBUG"
+            nodeGranularity: 32
+            maxJobTime = "00:60:00"
+        }
+    }
+    filesystem {
+        type: "local"
+        URL: "localhost"
+    }
+    staging : direct
+    workDirectory: "/home/"${env.USER}"/swift.work"
+    maxParallelTasks: 30
+    initialParallelTasks: 29
+    app.bgsh {
+        executable: "/home/ketan/SwiftApps/subjobs/bg.sh"
+        maxWallTime: "00:04:00"
+        env.SUBBLOCK_SIZE="16"
+    }
+}
 
-<pool handle="cluster">
-<execution provider="coaster" jobmanager="local:cobalt" />
-
-<!-- "slots" determine the number of Cobalt jobs -->
-<profile namespace="globus" key="slots">1</profile>
-<profile namespace="globus" key="mode">script</profile>
-
-<profile namespace="karajan" key="jobThrottle">2.99</profile>
-<profile namespace="karajan" key="initialScore">10000</profile>
-<profile namespace="globus" key="maxwalltime">00:40:00</profile>
-<profile namespace="globus" key="walltime">2050</profile>
-<profile namespace="globus" key="maxnodes">256</profile>
-<profile namespace="globus" key="nodegranularity">256</profile>
-
-<!-- required for sub-block jobs, remove for non-sub-block jobs -->
-<profile key="SUBBLOCK_SIZE" namespace="env">16</profile>
-<profile namespace="globus" key="jobsPerNode">16</profile>
- 
-<workdirectory>/tmp/swiftwork</workdirectory>
-<filesystem provider="local"/>
-
-</pool>
-</config>
+executionRetries: 0
+keepSiteDir: true
+providerStagingPinSwiftFiles: false
+alwaysTransferWrapperLog: true
 ----
 
-Of note are the +SUBBLOCK_SIZE+ and the +mode+ properties which must be present
-in the sites definition. The former defines the size of the subblock needed and
-the latter specifies that the "mode" to run the outer cobalt job would be
-+script+ mode. In this particular example, we have the outer block size to be
-256 nodes whereas the subblock size is 16 nodes. This results in a total of 16
-subblocks resulting in +jobsPerNode+ value to be 16.
+Of note are the +SUBBLOCK_SIZE+ property which must be present in the sites
+definition. It defines the size of the subblock needed to run the script.  In
+this particular example, we have the outer block size to be 256 nodes whereas
+the subblock size is 16 nodes. This results in a total of 16 subblocks
+resulting in +jobsPerNode+ value to be 16.
 
-////
-
 NOTE: Swift installation for sub-block jobs on Vesta and Mira machines can be
 found at +/home/ketan/swift-k/dist/swift-svn/bin/swift+
 




More information about the Swift-commit mailing list