| Swift | |
|---|---|
| Paradigms | Dataflow,distributed,grid,concurrent,scientific workflow,scripting |
| Developers | University of Chicago, Argonne National Laboratory |
| First appeared | 2007; 18 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 |
| Influenced by | |
| C syntax,functional programming | |
| Influenced | |
| Cuneiform | |
Swift[1] is animplicitly parallel programming language that allows writing scripts that distribute program execution across distributed computing resources,[2] includingclusters,clouds,grids, andsupercomputers. Swift implementations areopen-source software under theApache License, version 2.0.
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 ofmapping[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 calledCoasters task dispatch.[5] AMessage 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.