Swift (parallel scripting language)

{{Short description|Parallel scripting language}}

{{About|a parallel scripting language|the programming language developed by Apple|Swift (programming language)}}

{{Infobox programming language

| title = Swift

| name = Swift

| logo = Swift (programing language) logo.png

| logo caption =

| screenshot =

| screenshot caption =

| paradigms = Dataflow, distributed, grid, concurrent, scientific workflow, scripting

| family =

| designer =

| developers = University of Chicago,
Argonne National Laboratory

| released = {{Start date and age|2007}}

| latest release version = 0.96.2

| latest release date = {{Start date and age|2015|08|05}}

| typing = Strong

| scope =

| programming language =

| platform = Cross-platform: Java

| operating system = Cross-platform: Java

| license = Apache 2.0

| website = {{URL|swift-lang.org}}

| influenced by = C syntax, functional programming

| influenced = Cuneiform

}}

Swift{{cite web|url=http://swift-lang.org/|title=Swift Home Page|publisher=swift-lang.org|accessdate=2014-06-02}} is an implicitly parallel programming language that allows writing scripts that distribute program execution across distributed computing resources,{{cite journal|url=http://swift-lang.org/papers/SwiftLanguageForDistributedParallelScripting.pdf|last1=Wilde|first1=Michael|first2=Mihael|last2=Hategan|first3=Justin M.|last3=Wozniak|first4=Ben|last4=Clifford|first5=Daniel S.|last5=Katz|first6=Ian|last6=Foster|title=Swift: A language for distributed parallel scripting|journal=Parallel Computing|volume=37|number=9|year=2011|pages=633–652|doi=10.1016/j.parco.2011.05.005|url-status=dead|archiveurl=https://web.archive.org/web/20140606215300/http://swift-lang.org/papers/SwiftLanguageForDistributedParallelScripting.pdf|archivedate=2014-06-06|citeseerx=10.1.1.658.8990}} including clusters, clouds, grids, and supercomputers. Swift implementations are open-source software under the Apache License, version 2.0.

Language features

A Swift scriptReference manual, chapter 2 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 mappingReference manual, chapter 3 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.{{cite journal|url=http://swift-lang.org/papers/pdfs/UCC-coasters.pdf|last1=Hategan|first1=Mihael|last2=Wozniak|first2=Justin|last3=Maheshwari|first3=Ketan|title=Coasters: uniform resource provisioning and access for scientific computing on clouds and grids|journal=Proceedings Utility and Cloud Computing|year=2011}} A Message Passing Interface based implementation of the languageWozniak, 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 supports very high task execution rates (e.g., 3000 tasks per second){{cite journal|url=http://swift-lang.org/papers/SwiftParallelScripting.pdf|first1=Michael|last1=Wilde|first2=Ian|last2=Foster|first3=Kamil|last3=Iskra|first4=Pete|last4=Beckman|first5=Zhao|last5=Zhang|first6=Allan|last6=Espinosa|first7=Mihael|last7=Hategan|first8=Ben|last8=Clifford|first9=Ioan|last9=Raicu|title=Parallel Scripting for Applications at the Petascale and Beyond|journal=Computer|volume=42|number=11|year=2009|doi=10.1109/mc.2009.365|pages=50–60|s2cid=5271623|url-status=dead|archiveurl=https://web.archive.org/web/20140712123547/http://swift-lang.org/papers/SwiftParallelScripting.pdf|archivedate=2014-07-12}} on large clusters and supercomputers.

Area of applications

Application examples:[http://swift-lang.org/case_studies/ Case studies on the official site]

  • Energy modelling
  • Climate modelling
  • Economic modelling
  • Biochemical protein modelling
  • Magnetic resonance imaging (MRI) analysis in neuroscience
  • Glass structure modelling

See also

References