The Swift parallel scripting language enables scientists, engineers, and data analysts to express and coordinate parallel invocations of application programs on distributed and parallel computing platforms: one of the dominant modes of performing computation in science and engineering.
Swift has been fruitfully employed in many diverse domains, including biochemistry, neuroscience, climate, earthquake simulation, hydrology, energy, economics, social network analysis, mass media analysis, materials science, and astronomy. It runs on a variety of platforms, and enables users to move their application scripts between them with relative ease. As personal computers become increasingly parallel, Swift enables users to leverage this parallel power with little or no experience in parallel programming. And Swift opens up complex cyberinfrastructure like the Open Science Grid, TeraGrid/XSEDE and FutureGrid to a wide range and scale of scientific user communities, broadening participation in high performance computing.
Swift comprises a programming model, scripting language, and runtime engine. Its implicitly parallel programming model allows users with minimal programming expertise to transparently utilize parallel and distributed systems. The scripting language is minimal and standalone, The Swift programming model has also been embedded into the highly popular R language for data analysis (via the SwiftR package), and has been experimentally embedded into Python via the PyDFlow package.
Swift has been actively engaged in training and education in parallel computing. From its inception, Swift has been leveraged as a base to broaden participation in scientific computing, and has created opportunities for, and leveraged the skills and contributions of numerous graduate and undergraduate students. Swift provides the parallel computing base for the secondary education project "I2U2: Interactions in Understanding the Universe," (http://www.i2u2.org) which teaches the concepts of parallel and distributed computing to our next generation of scientists at the high school level.
Swift incorporates several existing toolkits.
Swift uses the Globus Toolkit as middleware to talk to various resources.
The CoG Kit provides a high level uniform interface to different versions of the Globus Toolkit. It also contains the Karajan language and interpreter which is used as an underlying execution engine for Swift.