Swift
is an
implicitly parallel programming language that allows writing scripts that distribute program execution across distributed computing resources, including
clusters,
clouds,
grids, and
supercomputer
A supercomputer is a type of computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly measured in floating-point operations per second (FLOPS) instead of million instruc ...
s. Swift implementations are
open-source software
Open-source software (OSS) is Software, computer software that is released under a Open-source license, license in which the copyright holder grants users the rights to use, study, change, and Software distribution, distribute the software an ...
under the
Apache License
The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
, version 2.0.
Language features
A Swift script 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'' 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''. A
Message Passing Interface based implementation of the language supports very high task execution rates (e.g., 3000 tasks per second)
on large clusters and supercomputers.
Area of applications
Application examples:
Case studies on the official site
/ref>
* Energy modelling
*Climate modelling
* Economic modelling
* Biochemical protein modelling
* Magnetic resonance imaging
Magnetic resonance imaging (MRI) is a medical imaging technique used in radiology to generate pictures of the anatomy and the physiological processes inside the body. MRI scanners use strong magnetic fields, magnetic field gradients, and ...
(MRI) analysis in neuroscience
*Glass structure modelling
See also
* Distributed computing
Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different networked computers.
The components of a distributed system commu ...
* Parallel computing
Parallel computing is a type of computing, computation in which many calculations or Process (computing), processes are carried out simultaneously. Large problems can often be divided into smaller ones, which can then be solved at the same time. ...
References
{{Reflist
Programming languages