langage de programmation De Wikipédia, l'encyclopédie libre
Swift[1] est un langage de script implicitement parallèle, qui permet d'écrire des scripts qui distribuent l'exécution de programmes sur des ressources de traitements parallèles[2] tels que des grappes de serveurs, des nuages, des grilles informatiques, et des supercalculateurs. L'implémentation est en open source sous licence Apache version 2.0.
Swift | |
Date de première version | 2007 |
---|---|
Paradigme | Programmation concurrente, Parallélisation, calcul distribué, Fonctionnel, Impératif |
Développeur | Université de Chicago et laboratoire National d'Argonne |
Dernière version | 0.96.2 (5 aôut 2015) |
Typage | Fort |
Influencé par | C (langage), Programmation fonctionnelle, Grille informatique |
Licence | Licence Apache version 2.0 |
Site web | http://swift-lang.org |
modifier |
Un script Swift[3] décrit des données avec un typage fort, des composants applicatifs, des invocations de ces composants, et l'interdépendance entre elles sur la base des flux de données. L'exécution est implicitement parallèle, c'est-à-dire, toutes les instructions du script seront automatiquement exécutées en parallèle, dans la limite des processeurs disponibles, et sauf dépendance entre leurs données. Le langage est déterministe : les résultats des traitements sont indépendants de l'ordre dans lequel les tâches parallèles s'exécutent. Un mécanisme de mise en correspondance (« mapping » en anglais)[4] permet de traiter et transmettre des données par l'intermédiaire de répertoires et de fichiers.
La répartition de tâches parallèles entre un grand nombre de ressources est implémentée par un mécanisme de « cabotage » (« coaster task dispatch » en anglais)[5] gérant le lancement de tâches et si nécessaire le transfert de fichier. Une implémentation basée sur une interface à base de messages[6] permet une exécution à très haut débit (par exemple plus de 3 000 tâches par seconde)[7] sur des grappes de grande capacité et des supercalculcateurs.
Exemples d'applications[8] :
Seamless Wikipedia browsing. On steroids.