[Swift-commit] r2410 - text/hpdc09submission

noreply at svn.ci.uchicago.edu noreply at svn.ci.uchicago.edu
Fri Jan 9 05:06:15 CST 2009


Author: benc
Date: 2009-01-09 05:06:15 -0600 (Fri, 09 Jan 2009)
New Revision: 2410

Modified:
   text/hpdc09submission/paper.latex
Log:
procedures are called procedures, not functions. some rearrangements of text

Modified: text/hpdc09submission/paper.latex
===================================================================
--- text/hpdc09submission/paper.latex	2009-01-09 09:23:32 UTC (rev 2409)
+++ text/hpdc09submission/paper.latex	2009-01-09 11:06:15 UTC (rev 2410)
@@ -97,21 +97,19 @@
 and other arguments that are the inputs and outputs of each program
 invocation. This formal but simple specification of data inputs and
 outputs enables Swift to provide four critical features not provided
-by scripting languages like Perl, Python, Tcl, or the various command-line ``shells'':
+by scripting languages like Perl, Python, or the various command-line shells:
 
 \begin{itemize}
 \item It can provide location transparent execution: automatically
-selecting a location (i.e. a specific distributed system) for a given
-program invocation
-\item It can automatically parallelize (and throttle) the execution flow
+selecting a location for a given program invocation
+\item It can automatically parallelize the execution flow
 of program invocations, executing invocations that have no data
-dependencies in parallel.
-\item It can record the provenance of derived data objects (and related
-caller-callee information)
-\item The Swift execution engine records the progress of a script's
-execution, so if interrupted or terminated, it can be restarted from
-the point of interruption, without re-executing any work that was
-logged as successfully completed.
+dependencies in parallel, whilst throttling parallel invocations to a rate
+appropriate for each execution location
+\item It can record the provenance of derived data objects
+\item It can provide reliability through retrying of failed executions during
+a run and by logging completed work so that an interrupted script can be
+restarted from the point of interruption.
 \end{itemize}
 
 In the rest of this section, we provide an overview of Swift's main
@@ -132,7 +130,7 @@
 implemented. This specification is instead left up to a set of
 mappers.
 
-\emph{Execution of atomic functions}. Underlying this is an
+\emph{Execution of atomic procedures}. Underlying this is an
 implementation to execute scripts on grid and other platforms,
 providing built-in site selection, data management and
 reliability. Swift scripts can be tested on a single local
@@ -146,7 +144,7 @@
 several benefits. A notable benefit visible to users is that of
 providers. This enbles the Swift execution model to be extended by
 adding new data providers and job execution providers. This is
-explained in more detail in section X: Swift Implementation.
+explained in more detail in section \ref{ExecutingSites}: Executing on a remote site.
 
 \emph{Minimalist nature of Swift}. As a scripting language, Swift is
 intentionally designed to be a sparse, minimal language. Its primary
@@ -165,28 +163,26 @@
 Swift programs typically contain very little code to manipulate data
 directly.
 
-\emph{Function composition and Libraries}. Swift programs are composed
-starting with ``atomic'' functions, and then higher level functions are
-composed as pipelines of sub-functions. The basic structure of a
-composite function is a graph of calls to other functions.
+\emph{Procedure composition and Libraries}. Swift programs are composed
+starting with ``atomic'' procedures, and then higher level procedures are
+composed as pipelines of sub-procedures. The basic structure of a
+composite procedure is a graph of calls to other procedures.
 
-Recursive function calls [are / are not] supported  [TODO: Relevant?]
-
 \emph{Variables, single assignment and data flow}. Swift variables hold
 primitive values, or references to datasets, which are files or
 collections of files. Variables are ``single assignment'', which is the
-basis for Swift's model of function chaining. Functions are executed
-when their variables are all set. Functions are chained by specifying
-that an output variable of one function is passed as the input
-variable to the second function.
+basis for Swift's model of procedure chaining (TODO execution ordering?). Procedures are executed
+when their input variables are all set. Procedures are chained by specifying
+that an output variable of one procedure is passed as the input
+variable to the second procedure.
 
-This dataflow model means that within a Swift program, functions are
+This dataflow model means that within a Swift program, procedures are
 executed when their data is available - which is not necessarily in
 source-code order.
 
-Swift function arguments are lists of such variables, and return lists
+Swift procedure arguments are lists of such variables, and return lists
 of such variables. Swift does not yet have a notion of
-libraries. Swift programs execute as if all functions called in the
+libraries. Swift programs execute as if all procedures called in the
 script are present in a single logical source file and are thus passed
 to the Swift virtual machine all at once.
 
@@ -232,7 +228,7 @@
 automatically make remote execution transparent.
 
 In a sense, Swift adds to scripting what RPC adds to programming: by
-formalizing the inputs and outputs of ``applications-as-functions'', it
+formalizing the inputs and outputs of ``applications-as-procedures'', it
 provides a way to make the remote - and hence parallel - execution of
 applications fairly transparent.
 
@@ -243,10 +239,6 @@
 set of data. Unlike make, in which case the derived product is only
 produced once, in Swift, derived datasets are repetitively derived.
 
-Could existing programs execute Swift calls through a library
-approach?  The answer to this is certainly ``yes'', and we examine this
-in more detail in section X.
-
 Usage of Swift. Swift is achieving growing use on a variety of science
 problems.
 
@@ -729,6 +721,7 @@
 interesting?
 
 \subsection{Executing on a remote site}
+\label{ExecutingSites}
 
   With the above restrictions, execution of a unix program on a remote
 site is straightforward. The Swift runtime must prepare a remote
@@ -1256,6 +1249,11 @@
 on what is available now - logprocessing module, as well as
 mentioning CEDPS\cite{CEDPS} as somewhat promising(?) for the future.
 
+\subsection{Swift as a library}
+Could existing programs execute Swift calls through a library
+approach?  The answer to this is certainly ``yes''. (?)
+
+
 \section{Implementation status}
 
   TODO: list how Swift can be downloaded here. describe development group?
@@ -1272,7 +1270,7 @@
 legacy applications), were coded in various programming languages and
 run in different platforms and architectures.  Linda defines a set of
 coordination primitives for concurrent agents to put and retrieve
-tuples from a shared data space called tuplespace, which serves as the
+tuples from a shared data space called a tuple space, which serves as the
 medium for communication and coordination. Strand and PCN use
 single-assignment variables\cite{singleassigment} as coordination mechanism. Like Linda,
 Strand and PCN are data driven in the sense that the action of sending




More information about the Swift-commit mailing list