# Swift (parallel scripting language)

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Swift_(parallel_scripting_language)
> Markdown URL: https://mediated.wiki/source/Swift_(parallel_scripting_language).md
> Source: https://en.wikipedia.org/wiki/Swift_(parallel_scripting_language)
> Source revision: 1274914521
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

Parallel scripting language

This article is about a parallel scripting language. For the programming language developed by Apple, see [Swift (programming language)](/source/Swift_(programming_language)).

Swift Paradigms Dataflow, distributed, grid, concurrent, scientific workflow, scripting Developers University of Chicago, Argonne National Laboratory First appeared 2007; 19 years ago (2007) Stable release 0.96.2 / August 5, 2015; 10 years ago (2015-08-05) Typing discipline Strong Platform Cross-platform: Java OS Cross-platform: Java License Apache 2.0 Website swift-lang.org Influenced by C syntax, functional programming Influenced Cuneiform

**Swift**[1] is an [implicitly parallel](/source/Implicitly_parallel) programming language that allows writing scripts that distribute program execution across distributed computing resources,[2] including [clusters](/source/Cluster_(computing)), [clouds](/source/Cloud_computing), [grids](/source/Grid_computing), and [supercomputers](/source/Supercomputer). Swift implementations are [open-source software](/source/Open-source_software) under the [Apache License](/source/Apache_License), version 2.0.

## Language features

A Swift script[3] describes strongly typed data, application components, invocations of applications components, and the interrelations 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. It 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](/source/Data_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 mechanism called *Coasters task dispatch*.[5] A [Message Passing Interface](/source/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

Application examples:[7][8]

- Energy modelling

- Climate modelling

- Economic modelling

- Biochemical protein modelling

- [Magnetic resonance imaging](/source/Magnetic_resonance_imaging) (MRI) analysis in neuroscience

- Glass structure modelling

## See also

- [Distributed computing](/source/Distributed_computing)

- [Parallel computing](/source/Parallel_computing)

## References

1. **[^](#cite_ref-swift-lang_1-0)** ["Swift Home Page"](http://swift-lang.org/). swift-lang.org. Retrieved 2014-06-02.

1. **[^](#cite_ref-2)** Wilde, Michael; Hategan, Mihael; Wozniak, Justin M.; Clifford, Ben; Katz, Daniel S.; Foster, Ian (2011). ["Swift: A language for distributed parallel scripting"](https://web.archive.org/web/20140606215300/http://swift-lang.org/papers/SwiftLanguageForDistributedParallelScripting.pdf) (PDF). *Parallel Computing*. **37** (9): 633–652. [CiteSeerX](/source/CiteSeerX_(identifier)) [10.1.1.658.8990](https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.658.8990). [doi](/source/Doi_(identifier)):[10.1016/j.parco.2011.05.005](https://doi.org/10.1016%2Fj.parco.2011.05.005). Archived from [the original](http://swift-lang.org/papers/SwiftLanguageForDistributedParallelScripting.pdf) (PDF) on 2014-06-06.

1. **[^](#cite_ref-3)** Reference manual, chapter 2

1. **[^](#cite_ref-4)** Reference manual, chapter 3

1. **[^](#cite_ref-5)** Hategan, Mihael; Wozniak, Justin; Maheshwari, Ketan (2011). ["Coasters: uniform resource provisioning and access for scientific computing on clouds and grids"](http://swift-lang.org/papers/pdfs/UCC-coasters.pdf) (PDF). *Proceedings Utility and Cloud Computing*.

1. **[^](#cite_ref-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

1. ^ [***a***](#cite_ref-parallel-scripting_7-0) [***b***](#cite_ref-parallel-scripting_7-1) 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"](https://web.archive.org/web/20140712123547/http://swift-lang.org/papers/SwiftParallelScripting.pdf) (PDF). *Computer*. **42** (11): 50–60. [doi](/source/Doi_(identifier)):[10.1109/mc.2009.365](https://doi.org/10.1109%2Fmc.2009.365). [S2CID](/source/S2CID_(identifier)) [5271623](https://api.semanticscholar.org/CorpusID:5271623). Archived from [the original](http://swift-lang.org/papers/SwiftParallelScripting.pdf) (PDF) on 2014-07-12.

1. **[^](#cite_ref-8)** [Case studies on the official site](http://swift-lang.org/case_studies/)

---
Adapted from the Wikipedia article [Swift (parallel scripting language)](https://en.wikipedia.org/wiki/Swift_(parallel_scripting_language)) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Swift_(parallel_scripting_language)?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
