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

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

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

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

Например, скрипт, обрабатывающий два файла 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 будет разбит на два одновременно выполняемых потока, каждый из которых обрабатывает свой файл:

Подписаться
Уведомить о
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии