Swift (parallel scripting language)

From Wikipedia, the free encyclopedia
Jump to: navigation, search
This article is about the parallel scripting language. For the Apple programming language, see Swift (programming language).
Swift
Swift (programing language) logo.png
Developer University of Chicago and Argonne National Laboratory
Appeared in 2007 (2007)
Stable release 0.94.1 / 09/30/2013
Influenced by C syntax, functional programming, concurrent programming languages, scientific workflow systems, grid computing
License Apache License, Version 2.0
Website http://swift-lang.org

Swift[1] is an implicitly parallel programming language that allows to write scripts that distribute program execution across distributed computing resources,[2] including clusters, clouds, grids, and supercomputers. Swift implementations are open source under the Apache License, version 2.0.

Language features[edit]

A Swift script[3] describes strongly typed data, application components, invocations of applications components, and the inter-relations in the dataflow between those invocations. The program statements will automatically run in parallel unless there is a data dependency between them, given sufficient computing resources. The design of the language guarantees that results of a computation are deterministic, even though the order in which statements executes may vary. A special file data type is built into Swift and Swift allows command-line programs to be integrated into a program as typed functions. This allows programmers to write programs that treat command-line programs and files in the same way as regular functions and variables. A concept of "mapping"[4] is used to store and exchange complex data structures using a file system structure with files and directories.

Rapid dispatch of parallel tasks to a wide range of resources is implemented through a mechansim called "Coasters task dispatch".[5] A Message Passing Interface based implementation of the language[6] supports very high task execution rates (e.g., 3000 tasks per second)[7] on large clusters and supercomputers.

Area of applications[edit]

Application examples:[7][8]

  • Climate modelling
  • Economic modelling
  • Biochemical protein modelling
  • MRI analysis in neuroscience

See also[edit]

References[edit]

  1. ^ "Swift Home Page". swift-lang.org. Retrieved 2014-06-02. 
  2. ^ Wilde, Michael; Hategan, Mihael; Wozniak, Justin M.; Clifford, Ben; Katz, Daniel S.; Foster, Ian (2011). "Swift: A language for distributed parallel scripting". Parallel Computing 37 (9): 633–652. doi:10.1016/j.parco.2011.05.005. 
  3. ^ Reference manual, chapter 2
  4. ^ Reference manual, chapter 3
  5. ^ Hategan, Mihael; Wozniak, Justin; Maheshwari, Ketan (2011). "Coasters : uniform resource provisioning and access for scientific computing on clouds and grids". Proceedings Utility and Cloud Computing. 
  6. ^ Wozniak, Justin M., Timothy G. Armstrong, Michael Wilde, Daniel S. Katz, Ewing Lusk, and Ian T. Foster. "Swift/T: Large-scale Application Composition via Distributed-memory Dataflow Processing." In Cluster, Cloud and Grid Computing (CCGrid), 2013 13th IEEE/ACM International Symposium on, pp. 95-102. IEEE, 2013
  7. ^ a b Wilde, Michael; Foster, Ian; Iskra, Kamil; Beckman, Pete; Zhang, Zhao; Espinosa, Allan; Hategan, Mihael; Clifford, Ben; Raicu, Ioan (2009). "Parallel Scripting for Applications at the Petascale and Beyond". Computer 42 (11). 
  8. ^ Case studies on the officiel site

External links[edit]