Система распараллеливания shell-скриптов PaSh перешла под крыло Linux Foundation

Kate

Administrator
Команда форума
Проект PaSh, развивающий инструменты для параллельного выполнения shell-скриптов, объявил о переходе под покровительство организации Linux Foundation, которая предоставит инфраструктуру и сервисы, необходимые для продолжения разработки. Код проекта распространяется под лицензией MIT и включает компоненты на языках Python, Shell, C и OCaml.

PaSh включает JIT-компилятор, runtime и библиотеку аннотаций:

  • Runtime предоставляет набор примитивов для поддержки параллельного выполнения скриптов.
  • Библиотека аннотаций определяет набор свойств, описывающих ситуации в которых допускается распараллеливание отдельных команд POSIX и GNU Coreutils.
  • Компилятор на лету разбирает предложенный Shell-скрипт в абстрактное синтаксическое дерево (AST), разбивает на фрагменты, пригодные для параллельного выполнения, и формирует на их основе новый вариант скрипта, части которого могут выполняться одновременно. Информация о командах, которые допускают распараллеливания, берётся компилятором из библиотеки аннотаций. В процессе генерации параллельно выполняемого варианта скрипта в код подставляются дополнительные конструкции из Runtime.

Например, скрипт, обрабатывающий два файла f1.md и f2.md


cat f1.md f2.md |
tr A-Z a-z |
tr -cs A-Za-z '\n' |
sort |
uniq |
comm -13 dict.txt - > out
cat out | wc -l | sed 's/$/ mispelled words!/'

в обычных условиях обработает два файла последовательно: а при запуске под управлением PaSh будет разбит на два одновременно выполняемых потока, каждый из которых обрабатывает свой файл:

 
Сверху