Il sistema di parallelizzazione degli script della shell PaSh è sotto l'ala protettrice della Linux Foundation

Il progetto PaSh, che sviluppa strumenti per l'esecuzione parallela di script di shell, ha annunciato che si muoverà sotto l'egida della Linux Foundation, che fornirà l'infrastruttura e i servizi necessari per continuare lo sviluppo. Il codice del progetto è distribuito sotto la licenza MIT e include componenti in Python, Shell, C e OCaml.

PaSh include un compilatore JIT, runtime e libreria di annotazioni:

  • Il runtime fornisce una serie di primitive per supportare l'esecuzione parallela di script.
  • La libreria di annotazioni definisce un insieme di proprietà che descrivono situazioni in cui è consentita la parallelizzazione di singoli comandi POSIX e GNU Coreutils.
  • Il compilatore analizza al volo lo script Shell proposto in un albero di sintassi astratto (AST), lo suddivide in frammenti adatti all'esecuzione parallela e sulla base forma una nuova versione dello script, parti del quale possono essere eseguite simultaneamente. Le informazioni sui comandi che consentono la parallelizzazione vengono prese dal compilatore dalla libreria di annotazioni. Nel processo di generazione di una versione in esecuzione parallela dello script, nel codice vengono inseriti costrutti aggiuntivi dal runtime.

Il sistema di parallelizzazione degli script della shell PaSh è sotto l'ala protettrice della Linux Foundation

Ad esempio, uno script che elabora due file f1.md e f2.md cat f1.md f2.md | tr AZ az | tr -cs A-Za-z '\n' | ordinare | unico | comm -13 dict.txt — > fuori gatto fuori | wc -l | sed 's/$/parole errate!/' normalmente elaborerebbe due file in sequenza:

Il sistema di parallelizzazione degli script della shell PaSh è sotto l'ala protettrice della Linux Foundation
e quando lanciato sotto il controllo di PaSh, verrà diviso in due thread eseguiti simultaneamente, ognuno dei quali elabora il proprio file:
Il sistema di parallelizzazione degli script della shell PaSh è sotto l'ala protettrice della Linux Foundation


Fonte: opennet.ru

Aggiungi un commento