[Swift-commit] r7185 - SwiftTutorials/OSG-Swift/doc
wilde at ci.uchicago.edu
wilde at ci.uchicago.edu
Fri Oct 18 15:02:59 CDT 2013
Author: wilde
Date: 2013-10-18 15:02:59 -0500 (Fri, 18 Oct 2013)
New Revision: 7185
Modified:
SwiftTutorials/OSG-Swift/doc/README
Log:
Recent changes to project name (swift -> Swift) and some doc changes
Modified: SwiftTutorials/OSG-Swift/doc/README
===================================================================
--- SwiftTutorials/OSG-Swift/doc/README 2013-10-18 19:41:31 UTC (rev 7184)
+++ SwiftTutorials/OSG-Swift/doc/README 2013-10-18 20:02:59 UTC (rev 7185)
@@ -197,7 +197,7 @@
40
75
-$ stats.sh f*
+$ stats.sh f* 2>log
50
-----
@@ -205,60 +205,63 @@
Basic of the Swift language with local execution
------------------------------------------------
-Here's a brief summary of Swift in a nutshell:
+A Summary of Swift in a nutshell
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-* Swift scripts are text files ending in `.swift`
+* Swift scripts are text files ending in `.swift` The `swift` command
+runs on any host, and executes these scripts. `swift` is a Java
+application, which you can install almost anywhere. On Linux, just
+unpack the distribution `tar` file and add its `bin/` directory to
+your `PATH`.
-* The `swift` command runs on any host, and executes `.swift`
-scripts. Its a Java application, so you can install Swift almost
-anywhere by simply unpacking the distribution `tar` file and adding
-its `bin/` directory to your `PATH`.
-
* Swift scripts run ordinary applications, just like shell scripts
-do. But Swift makes it easy to run the applications on parallel and
+do. Swift makes it easy to run these applications on parallel and
remote computers (from laptops to supercomputers). If you can `ssh` to
the system, Swift can likely run applications there.
* The details of where to run applications and how to get files back
and forth are described in configuration files separate from your
-program. Swift currently speaks ssh, PBS, Condor, SLURM, LSF, SGE,
-Cobalt, and Globus to run applications, and scp, http, ftp, and
-GridFTP to move data.
+program. Swift speaks ssh, PBS, Condor, SLURM, LSF, SGE, Cobalt, and
+Globus to run applications, and scp, http, ftp, and GridFTP to move
+data.
* The Swift language has 5 main data types: `boolean`, `int`,
-`string`, `float`, and `file`.
+`string`, `float`, and `file`. Collections of these are dynamic,
+sparse arrays of arbitrary dimension and structures of scalars and/or
+arrays defined by the `type` declaration.
-* Swift has a simple library of functions for string and file
-manipulation.
-
* Swift file variables are "mapped" to external files. Swift sends
files to and from remote systems for you automatically.
* Swift variables are "single assignment": once you set them you can't
-change them (within a given instance of a block of code). This makes
-it a natural, parallel "data flow" language. Once you get used to it,
-this programming model keeps your workflow scripts much simpler.
+change them (in a given block of code). This makes Swift a natural,
+"parallel data flow" language. This programming model keeps your
+workflow scripts simple and easy to write and understand.
* Swift lets you define functions to "wrap" application programs, and
-to nicely structure more complex scripts. Swift `app` functions take
+to cleanly structure more complex scripts. Swift `app` functions take
files and parameters as inputs and return files as outputs.
-* Swift conceptually executes all the statements, expressions and
-function calls in your program in parallel, based on data flow, and
-throttled based on available resources and settings.
-
-* Swift has dynamic, sparse arrays of arbitrary dimension, as well as
-structures defined by the `type` declaration.
-
-* Swift's equivalent of `printf()` is `tracef()`,with limited and
+* A compact set of built-in functions for string and file
+manipulation, type conversions, high level IO, etc. is provided.
+Swift's equivalent of `printf()` is `tracef()`, with limited and
slightly different format codes.
* Swift's `foreach {}` statement is the main parallel workhorse of the
-language.
+language, and executes all iterations of the loop concurrently. The
+actual number of parallel tasks executed is based on available
+resources and settable "throttles".
-* Swift has simple `if` and `switch` statements for conditional
-execution, seldom used in typical workflows.
+* In fact, Swift conceptually executes *all* the statements,
+expressions and function calls in your program in parallel, based on
+data flow. These are similarly throttled based on available resources
+and settings.
+* Swift also has `if` and `switch` statements for conditional
+execution. These are seldom needed in simple workflows but they enable
+very dynamic workflow patterns to be specified.
+
+
We'll see many of these points in action in the examples below. Lets
get started!
More information about the Swift-commit
mailing list