Le système de parallélisation des scripts shell PaSh relève de la Linux Foundation

Le projet PaSh, qui développe des outils pour l'exécution parallèle de scripts shell, a annoncé qu'il évolue sous les auspices de la Linux Foundation, qui fournira l'infrastructure et les services nécessaires à la poursuite du développement. Le code du projet est distribué sous licence MIT et comprend des composants en Python, Shell, C et OCaml.

PaSh comprend un compilateur JIT, un runtime et une bibliothèque d'annotations :

  • Le runtime fournit un ensemble de primitives pour prendre en charge l'exécution parallèle de scripts.
  • La bibliothèque d'annotations définit un ensemble de propriétés qui décrivent les situations dans lesquelles la parallélisation de commandes individuelles POSIX et GNU Coreutils est autorisée.
  • Le compilateur analyse à la volée le script Shell proposé dans un arbre de syntaxe abstraite (AST), le divise en fragments adaptés à une exécution parallèle et forme sur leur base une nouvelle version du script, dont certaines parties peuvent être exécutées simultanément. Les informations sur les commandes permettant la parallélisation sont extraites par le compilateur de la bibliothèque d'annotations. Lors du processus de génération d'une version exécutée en parallèle du script, des constructions supplémentaires du Runtime sont insérées dans le code.

Le système de parallélisation des scripts shell PaSh relève de la Linux Foundation

Par exemple, un script qui traite deux fichiers f1.md et f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | trier | unique | comm -13 dict.txt — > out cat out | wc-l | sed 's/$/ mots mal orthographiés !/' traiterait normalement deux fichiers séquentiellement :

Le système de parallélisation des scripts shell PaSh relève de la Linux Foundation
et lorsqu'il sera lancé sous le contrôle de PaSh, il sera divisé en deux threads exécutés simultanément, dont chacun traite son propre fichier :
Le système de parallélisation des scripts shell PaSh relève de la Linux Foundation


Source: opennet.ru

Ajouter un commentaire