Accueil🇫🇷Chercher

Swift (langage de script parallèle)

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.

Fondements

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.

Applications

Exemples d'applications[8] :

  • ModĂ©lisation du climat ;
  • ModĂ©lisation Ă©conomique ;
  • ModĂ©lisation de protĂ©ines en biochimie ;
  • Analyse d'IRM en neuroscience.

Notes et références

  1. (en) « Swift Home Page », swift-lang.org (consulté le ).
  2. Michael Wilde, Mihael Hategan, Justin M. Wozniak, Ben Clifford, Daniel S. Katz et Ian Foster, « Swift: A language for distributed parallel scripting », Parallel Computing, vol. 37, no 9,‎ , p. 633-652 (lire en ligne [PDF]).
  3. Manuel de référence, chapitre 2.
  4. Manuel de référence, chapitre 3.
  5. Mihael Hategan, Justin Wozniak et Ketan Maheshwari, « Coasters: uniform resource provisioning and access for scientific computing on clouds and grids », Proceedings Utility and Cloud Computing,‎ (lire en ligne [PDF]).
  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.
  7. Michael Wilde, Ian Foster, Kamil Iskra, Pete Beckman, Zhao Zhang, Allan Espinosa, Mihael Hategan, Ben Clifford et Ioan Raicu, « Parallel Scripting for Applications at the Petascale and Beyond », Computer, vol. 42, no 11,‎ (lire en ligne [PDF]).
  8. (en) Études de cas sur le site officiel.

Annexes

Articles connexes

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.