[Swift-commit] r8470 - www/Swift-T
wozniak at ci.uchicago.edu
wozniak at ci.uchicago.edu
Mon Jul 27 10:48:26 CDT 2015
Author: wozniak
Date: 2015-07-27 10:48:26 -0500 (Mon, 27 Jul 2015)
New Revision: 8470
Modified:
www/Swift-T/guide.html
Log:
Fix for floor/ceil/round types
Modified: www/Swift-T/guide.html
===================================================================
--- www/Swift-T/guide.html 2015-07-23 21:57:35 UTC (rev 8469)
+++ www/Swift-T/guide.html 2015-07-27 15:48:26 UTC (rev 8470)
@@ -536,7 +536,7 @@
-/* SWIFT/T GUIDE CUSTOMIZATIONS */
+/* Swift/T guide customizations */
a:visited {
color: gray;
@@ -544,7 +544,6 @@
h5 {
font-size: 0.8em;
}
-
</style>
<script type="text/javascript">
/*<![CDATA[*/
@@ -758,10 +757,10 @@
</div>
</div>
<div class="sect1">
-<h2 id="_support">1. Support</h2>
+<h2 id="support">1. Support</h2>
<div class="sectionbody">
-<div class="paragraph"><p>An overview of Swift/T may be found at the ExM project site:</p></div>
-<div class="paragraph"><p><a href="https://sites.google.com/site/exmcomputing">https://sites.google.com/site/exmcomputing</a></p></div>
+<div class="paragraph"><p>An overview of Swift/T may be found at the main Swift site:</p></div>
+<div class="paragraph"><p><a href="http://swift-lang.org/Swift-T">http://swift-lang.org/Swift-T</a></p></div>
<div class="paragraph"><p>The Swift/T user discussion mailing list is found here:</p></div>
<div class="paragraph"><p><a href="http://lists.mcs.anl.gov/mailman/listinfo/exm-user">http://lists.mcs.anl.gov/mailman/listinfo/exm-user</a></p></div>
</div>
@@ -779,6 +778,8 @@
for specific systems.</p></div>
<div class="sect2">
<h3 id="_installation_of_prerequisites">2.1. Installation of Prerequisites</h3>
+<div class="paragraph"><p>All Swift/T prerequisites can be installed using the appropriate
+package manager for your system.</p></div>
<div class="olist arabic"><ol class="arabic">
<li>
<p>
@@ -787,24 +788,30 @@
<div class="ulist"><ul>
<li>
<p>
-On compute clusters, an MPI will almost certainly be pre-installed
+On maintained compute clusters, an MPI implementation
+ will almost certainly be pre-installed.
</p>
</li>
<li>
<p>
Many operating systems provide packages with MPI implementations
- that are usable, but often outdated.
- E.g. the <code>mpich2</code> package on Debian/Ubuntu.
+ that are usable, but often outdated.
+ E.g. the <code>mpich2</code> package on Debian/Ubuntu.
</p>
</li>
<li>
<p>
See <a href="http://www.mpich.org">MPICH Guides</a> for information on installing the
- latest version of MPICH.
+ latest version of MPICH.
</p>
</li>
<li>
<p>
+Installing MPICH from source is not difficult.
+</p>
+</li>
+<li>
+<p>
Other MPI implementations are <a href="#Build_configuration">supported</a> as well.
</p>
<div class="paragraph"><p>Swift/T attempts to use MPI 3.0 functionality by default. If you
@@ -822,49 +829,37 @@
<div class="ulist"><ul>
<li>
<p>
-Tcl is available through the package manager on many systems.
- You may need to install an additional Tcl development package
- in addition to the standard tcl package,
- e.g. <code>tcl8.6</code> plus <code>tcl8.6-dev</code> on Debian/Ubuntu systems.
+You may need to install an additional Tcl development package
+ in addition to the standard Tcl package,
+ e.g., <code>tcl8.6</code> plus <code>tcl8.6-dev</code> on Debian/Ubuntu (APT) systems.
</p>
</li>
<li>
<p>
Source distributions are available at the <a href="http://www.tcl.tk">Tcl web
-site</a>
+ site</a>
</p>
</li>
<li>
<p>
-Tcl 8.5 is also acceptable.
+Tcl 8.5 is also acceptable. (Swift/T optionally uses Tcl 8.6
+ features to produce cleaner error messages.)
</p>
</li>
</ul></div>
</li>
<li>
<p>
-Install or locate SWIG
+Ensure you have these third-party software development tools (APT
+ packages are denoted in parentheses):
+ SWIG (<code>swig</code>), ZSH (<code>zsh</code>), Apache Ant (<code>ant</code>), a Java Development
+ Kit (<code>default-jdk</code>), Make (<code>make</code>), and GCC for C (<code>gcc</code>).
</p>
-<div class="ulist"><ul>
-<li>
-<p>
-You can check if SWIG is installed by running <code>swig -version</code>
-</p>
</li>
-<li>
-<p>
-SWIG is available through the package manager on many systems.
-</p>
-</li>
-<li>
-<p>
-Source distributions are available at
- the <a href="http://swig.org">SWIG web site</a>
-</p>
-</li>
-</ul></div>
-</li>
</ol></div>
+<div class="paragraph"><p>Swift/T is primarily tested with OpenJDK+GCC and IBM Java+XLC
+ (on the IBM Blue Gene). If you have difficulties with other
+ compilers, please <a href="#support">contact us</a>.</p></div>
</div>
<div class="sect2">
<h3 id="_installation_of_swift_t_from_source">2.2. Installation of Swift/T from Source</h3>
@@ -2358,7 +2353,7 @@
<div class="paragraph"><p><strong>Import:</strong> <code>math</code></p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
-<code>floor(float) → int</code>
+<code>floor(float) → float</code>
</dt>
<dd>
<p>
@@ -2366,7 +2361,7 @@
</p>
</dd>
<dt class="hdlist1">
-<code>ceil(float) → int</code>
+<code>ceil(float) → float</code>
</dt>
<dd>
<p>
@@ -2374,7 +2369,7 @@
</p>
</dd>
<dt class="hdlist1">
-<code>round(float) → int</code>
+<code>round(float) → float</code>
</dt>
<dd>
<p>
@@ -3325,9 +3320,86 @@
to the <a href="http://swift-lang.org/docs/">Swift/K documentation</a>.</p></div>
</div>
<div class="sect2">
-<h3 id="_external_scripting_support">14.5. External scripting support</h3>
+<h3 id="_custom_app_executors_advanced">14.5. Custom App Executors (Advanced)</h3>
+<div class="paragraph"><p>It is possible to extend Swift/T with additional app executors.
+To implement an executor, you need to write C code implementing the
+<code>turbine_executor</code> interface (defined in <code>turbine/executors/exec_interface.h</code>).
+Your <code>turbine_executor</code> implementation is registered at runtime by calling the
+<code>turbine_add_async_exec</code> function. The details of the interface
+are documented in <code>exec_interface.h</code>.</p></div>
+<div class="paragraph"><p>You also need to register the
+executor with Swift by adding a <code>appexecdef</code> statement in your
+Swift source code, typically in a module that is imported to enable your
+executor. The <code>appexecdef</code> statement provides a Tcl template that is
+used to start jobs in your executor. You must implement this Tcl function
+as part of implementing the executor. For example, the coaster executor is
+defined as follows:</p></div>
+<div class="listingblock">
+<div class="content">
+<pre><code>pragma appexecdef COASTER "turbine" "0.8.0"
+ "turbine::async_exec_coaster <<cmd>> <<args>> <<stage_in>> <<stage_out>> <<props>> <<success>> <<failure>>";</code></pre>
+</div></div>
+<div class="paragraph"><p>The arguments are:</p></div>
+<div class="dlist"><dl>
+<dt class="hdlist1">
+<code>cmd</code>
+</dt>
+<dd>
+<p>
+a string with the executable to run
+</p>
+</dd>
+<dt class="hdlist1">
+<code>args</code>
+</dt>
+<dd>
+<p>
+a list of command-line arguments to pass to the executable
+</p>
+</dd>
+<dt class="hdlist1">
+<code>stage_in</code>
+</dt>
+<dd>
+<p>
+a list of files to stage in (currently unused)
+</p>
+</dd>
+<dt class="hdlist1">
+<code>stage_out</code>
+</dt>
+<dd>
+<p>
+a list of files to stage out (currently unused)
+</p>
+</dd>
+<dt class="hdlist1">
+<code>props</code>
+</dt>
+<dd>
+<p>
+a Tcl dictionary of properties to pass to the executor.
+ This includes <code>stdin</code>, <code>stdout</code>, <code>stderr</code> for input/output
+ redirects and any executor-specific options.
+</p>
+</dd>
+<dt class="hdlist1">
+<code>success</code>/<code>failure</code>
+</dt>
+<dd>
+<p>
+Tcl code that is executed on success or failure.
+ Your executor implementation only needs to save these values
+ and return them once the app completes (this is documented
+ in <code>exec_interface.h</code>).
+</p>
+</dd>
+</dl></div>
+</div>
+<div class="sect2">
+<h3 id="_external_scripting_support">14.6. External scripting support</h3>
<div class="sect3">
-<h4 id="_calling_python">14.5.1. Calling Python</h4>
+<h4 id="_calling_python">14.6.1. Calling Python</h4>
<div class="paragraph"><p>You can evaluate arbitrary Python code from within Swift/T. For
example, you can perform processing with a Python library.
Once you have that working, you can use Swift/T to coordinate
@@ -3413,7 +3485,7 @@
</div>
</div>
<div class="sect3">
-<h4 id="_calling_r">14.5.2. Calling R</h4>
+<h4 id="_calling_r">14.6.2. Calling R</h4>
<div class="paragraph"><p>Consider the following Swift script:</p></div>
<div class="listingblock">
<div class="content">
@@ -3462,7 +3534,7 @@
</div>
</div>
<div class="sect3">
-<h4 id="_calling_julia">14.5.3. Calling Julia</h4>
+<h4 id="_calling_julia">14.6.3. Calling Julia</h4>
<div class="paragraph"><p>Consider the following Swift script:</p></div>
<div class="listingblock">
<div class="content">
@@ -4112,6 +4184,16 @@
</p>
</dd>
<dt class="hdlist1">
+<code>ADLB_PLACEMENT</code>
+</dt>
+<dd>
+<p>
+Change the placement policy. Alternatives are:
+ random (place data on a random server - the default) and
+ local (place data on the local server).
+</p>
+</dd>
+<dt class="hdlist1">
<code>VALGRIND</code>
</dt>
<dd>
@@ -4524,7 +4606,7 @@
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
-Last updated 2015-04-06 10:41:00 CDT
+Last updated 2015-07-27 10:46:37 CDT
</div>
</div>
</body>
More information about the Swift-commit
mailing list