[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