АнглийскийФранцузскийИспанский

Значок OnWorks

paexec - Онлайн в облаке

Запустите paexec в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда paexec, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


paexec - параллельный исполнитель, распределяет задачи по сети или процессорам

СИНТАКСИС


паексек [опции]

паексек -C [опции] команду [аргументы ...]

ОПИСАНИЕ


Предположим, у вас есть длинный список АВТОНОМНЫХ задач, которые необходимо выполнить, например, вы
хотите преобразовать тысячи аудиофайлов .wav в формат .ogg. Также предположим, что несколько
Доступны ЦП, например, многопроцессорная система SMP (или современный многоядерный ЦП) или кластер.
состоящий из отдельных компьютеров, подключенных к сети или Интернету. паексек
эффективно выполнять эту работу, то есть паексек эффективно распределяет различные задачи по
разные процессоры (или компьютеры), получает от них результаты обработки и
отправляет эти результаты на стандартный вывод.

Следует определить несколько понятий: задача, команду, перевозки, узел.

Задач читаются паексек из стандартного ввода и представлены в виде одной строки текста, т. е. одной
строка ввода - одна задача.

узел идентификатор - идентификатор удаленного компьютера или ЦП, например порядковый номер ЦП или
DNS-имя компьютера, например node12.cluster.company.com.

Command - программа пользователя, которая считывает однострочную задачу из стандартного ввода и отправляет многострочный результат в
stdout, где пустая строка означает JOB_IS_DONE__I_AM_READY_FOR_THE_NEXT_ONE. После отправки
пустая строка в stdout, stdout ДОЛЖЕН БЫТЬ ОЧИЩЕН. Помните, что пустая строка НЕ ​​ДОЛЖНА
появляется в общих строках результатов. Иначе паексек может зависнуть из-за тупика.

Транспорт - специальная программа, помогающая запустить команду на узел. Требуется узел
идентификатор в качестве первого аргумента и команду со своими аргументами, как и остальные. Например,
является '/ usr / bin / ssh'. Оба перевозки и команду могут быть указаны с их аргументами, т.е.
'/ usr / bin / ssh -x 'допускается как перевозки программу.

Алгоритм. Команды запускаются на каждом узел с помощью перевозки программа. Потом, задачи
построчно читается со стандартного ввода (одна задача на строку) и отправляется бесплатно узел (ровно один
задача на узел за раз). При этом строки результатов считываются из командование stdout и
выводятся на paexec's стандартный вывод. Когда пустая строка получается из узел (это означает
который узел завершил свою работу) он помечается как свободный и готов к следующему заданию. Эти
шаги повторяются до тех пор, пока не будет достигнут конец стандартного ввода и все узлы закончить свою работу.

Более формально (чтобы лучше понять, как работает paexec):

run_command_on_each_node
mark_all_nodes_as_free
пока нет (end_of_stdin) или нет (all_nodes_are_free)
в то время как there_is_free_node / i, а не (end_of_stdin)
задача = read_task_from_stdin
send_task_to_node (задача, i)
mark_node_as_busy (я)
конец
в то время как result_line_from_node_is_available / i
результат = read_result_line_from_node (i)
send_line_to_stdout (результат)
если is_empty_line (результат)
# конец работы
mark_node_as_free (я)
конец
конец
конец
close_command_on_each_node

Обратите внимание, что команду что ваша фактическая задача запускается один раз (для каждого узла), она не перезапускается
для любой задачи.

Также обратите внимание, что вывод содержит строки результатов (полученные из разных узлы) в смешанном
порядок. То есть первая строка вывода может содержать строку результата, полученную из
первый узел, вторая строка вывода - из второй узел, но третья строка вывода
может содержать строку результата с первого узел опять таки. Также не гарантируется, что
первая строка вывода будет с первой узел или с первого задача. Все строки результатов
выводятся, как только они читаются паексек, т.е. как только они будут готовы к выводу.
паексек работает таким образом из соображений эффективности. Вы можете играть с -l, -r и -p кредита
чтобы увидеть, что происходит.

ДОПОЛНИТЕЛЬНЫЕ ОПЦИИ


-h Показать справочную информацию.

-V Показать информацию о версии.

-c команду
Команда со своими аргументами.

-C Команда с ее аргументами указывается после параметров.

-t перевозки
Транспортная команда

-n + номер
Ряд команд для параллельного выполнения.

-n узлы
Список узлов, разделенных пробелом. Первый символ должен быть
буквенно-цифровой, "_" или "/". Все остальные символы зарезервированы для будущих расширений.

-n :имя файла
Имя файла, содержащее список узлов, по одному в каждой строке.

-x Выполнить команду, указанную -c для каждой задачи. Его стандартный вывод передается в паексек, Если оба
указаны "-x" и "-g", задача считается неудачной, если статус выхода команды
ненулевой.

-X Подразумевает -x и игнорировать стандартный вывод калькулятора.

-r Включите в вывод идентификатор узла или номер узла (на основе 0), т. Е. Идентификатор / количество
узел, который производит эту конкретную строку вывода. Появляется этот идентификатор или номер
перед номером строки, если -l также применяется. Пробел используется как разделитель.

-l Включите в вывод номер задачи (номер строки ввода), отсчитываемый от 0, т. Е. Номер строки
из которого была произведена эта конкретная линия вывода. Он появляется перед pid, если -p is
также применяется. Пробел используется как разделитель.

-p Включите pid подпроцесса paexec, который взаимодействует с узел + команда до
выход. Pid добавляет строку фактического результата. Пробел используется как разделитель.

-e Когда маркер конца задачи получается из узла, в стандартный вывод выводится пустая строка.
Эта опция может быть полезна вместе с -l и / или -r.

-E Подразумевается -e и сбрасывает стандартный вывод.

-d Включите режим отладки (только для отладки)

-i Скопируйте строки ввода (т.е. задачи) в стандартный вывод.

-I Подразумевается -i и сбрасывает стандартный вывод.

-s|-g Орграф задач (частично упорядоченный набор) читается со стандартного ввода.

Вместо автономных задач из stdin считывается график задач. В этом режиме
каждая задача может быть ПРОВЕРИНА или УСПЕШНА. Как всегда, пустая строка выводится команду
означает конец of задача. Строка перед ним показывает СТАТУС ВЫХОДА задачи. Слово
«провал» означает неудачу, «успех» - успех, а «фатальный» означает, что текущая задача
переназначается другому узлу (и, конечно, перезапускается) (см. параметр -z). Видеть
examples / 1_div_x / cmd для образца. Строка ввода (stdin paexec) должна содержать
либо одна задача без пробелов внутри, либо две задачи, разделенные одним пробелом
персонаж, например, задача1 задача2. задание 1 Строка task2 означает, что задача task1 должна быть выполнена
перед задачей2 и обязательно, то есть если задача1 неудача все зависимые задачи
(включая task2) также рекурсивно не выполняются. Задачи, имеющие зависимости:
запускается только после успешного выполнения всех зависимостей. Когда задача завершается успешно paexec
выводит слово "успех" непосредственно перед маркером end_of_task (см. -e или -E), в противном случае
выводится слово «сбой», за которым следует список задач, из-за которых не удалось выполнить задание.

Образцы:

задачи (примеры / make_package / файл задач)

textproc / dictem
devel / autoconf wip / libmaa
разработка / gmake wip / libmaa
wip / libmaa wip / dict-сервер
протрите / libmaa протрите / дикт-клиент
devel / m4 wip / dict-сервер
devel / byacc wip / dict-сервер
devel / byacc wip / dict-client
devel / flex wip / dict-сервер
разработка / гибкий протирание / дикт-клиент
devel / glib2
devel / libjudy

команда (примеры / make_package / cmd__flex)

#!/ USR / bin / awk -f
{
распечатать $ 0
если ($ 0 == "devel / flex")
распечатать "сбой"
еще
печать "успех"

print "" # маркер конца задачи
fflush ()
}

вывод "paexec -s -l -c cmd__flex -n +10 \
<задачи "

3 devel / autoconf
3 успех
4 разработки / gmake
4 успех
7 град / м4
7 успех
8 разработчик / byacc
8 успех
9 разработка / гибкость
9 сбой
9 devel / flex wip / dict-server wip / dict-client
10 разработчик / glib2
10 успех
11 разработок / libjudy
11 успех
1 текстовый процесс / dictem
1 успех
2 протирания / libmaa
2 успех

-z Если применимо, прочтите /записывать(2) операции от / до узлов становятся некритичными. В случае
paexec потерял соединение с узлом, он переназначит неудачную задачу другому узлу
и, если применить -s, выведет на стандартный вывод "фатальную" строку ("успех" + "сбой" +
«фатальный»). Это делает paexec устойчивым к ошибкам ввода-вывода, в результате вы можете создавать
Кластеры paexec даже в сети, состоящей из ненадежных хостов (Интернет?). Не смогли
хосты отмечены как таковые и не будут использоваться во время текущего запуска paexec.

-Z Тайм-аут
После появления -z применяется, если команду сбой, соответствующий узел помечается как сломанный и
исключены из следующего распределения задач. Но если -Z применяется, каждый Тайм-аут
секунд предпринимается попытка повторно запустить команду на отказавшем узле. -Z подразумевает -z. Это
опция позволяет организовать кластеры по ненадежным сетям / оборудованию.

-w If -Z вариант был применен, паексек выходит с ошибкой, если BCE узлы вышли из строя. С участием -w it
не выйдет и будет ждать восстановления узлов.

-m s=успех
-m f=недостаточность
-m F=роковой
-m t=СРВ
-m d=ограничитель
Задайте альтернативную строку для 'успех', 'неудача', 'фатальный', '' (конец задачи) и ''
(символ-разделитель задач). Пустая строка для 'фатального' означает, что она не будет выводиться
в стандартный вывод в случае фатальной ошибки.

-W Num
Когда для обработки задач используются несколько машин или процессоров, имеет смысл
как можно скорее приступайте к «более тяжелым» задачам, чтобы свести к минимуму общие вычисления
время. Если -W указывается, каждой используемой задаче присваивается особый вес
для переупорядочивания задач. Если Num равно 0, сами веса используются для переупорядочения
задания. Чем больше вес, тем приоритетнее задача. Если Num 1 лет,
Общий вес задачи - это сумма собственного веса (указанного при вводе) и весов
все задачи в зависимости от этого прямо или косвенно. Если Num равно 2, общий вес
задача - максимальное значение собственного веса задачи и весов всех задач в зависимости от
это прямо или косвенно. Веса указываются с помощью ключевого слова "weight:".
Если вес не указан, по умолчанию он равен 1. Ниже приведен пример для
входной граф задач с весами.

вес: gtk2 30
вес: glib2 20
gtk2 фаерфокс
вес: firefox 200
glib2 gtk2
вес: 4 200 кварты
вес: kcachegrind 2
qt4 kcachegrind
qt4 DJView4
размолвка djview4
png
вес: twm 1
вес: gqview 4

-y Если применяется, волшебная строка используется как маркер конца задачи вместо пустой строки.
Маловероятно, что эта строка появится на выходе калькулятора. Этот вариант имеет
приоритет выше, чем у переменной среды PAEXEC_EOT.

ПРИМЕРЫ


1.
paexec -t '/ usr / bin / ssh -x '-n' хост1 хост2 хост3 '\
-le -g -c calculate-me <tasks.txt |
paexec_reorder -Mf -Sl

2.
ls -1 * .wav | paexec -x -n +4 -c 'oggenc -Q'

3.
ls -1 * .wav | paexec -xCil -n + 4 flac -f --silent

4.
{uname -s; uname -r; uname -m; } |
paexec -x -lp -n + 2 -c баннер |
paexec_reorder -l

Для получения дополнительных примеров см. Paexec.pdf и подкаталог examples / в дистрибутиве.

ПРИМЕЧАНИЯ


выберите(2) системный вызов и неблокирование читать(2) используются для чтения строк результатов из узлы.

На данный момент блокировка записывать(2) используется для отправки задача до узел. Это может замедлить
вся обработка, если задачи слишком большие. Поэтому рекомендуется использовать более короткие задачи, Для
например, имя файла или URI (размером несколько десятков байтов) вместо нескольких мегабайт
содержание. Хотя это может быть исправлено в будущем.

Исходный архив paexec содержит несколько примеров использования в файле презентации / paexec.pdf.
файл. После установки вы можете найти этот файл в папке share / doc / paexec / paexec.pdf или
поблизости.

ОКРУЖАЮЩАЯ СРЕДА


PAEXEC_BUFSIZE
Заменяет время компиляции начальный размер внутренних буферов, используемых для хранения задач и
строки результата. Версии паексек до 0.9.0 это значение использовалось как максимальный
размер буфера. Теперь размер внутренних буферов изменяется автоматически. Если не уверены, не устанавливайте
Переменная PAEXEC_BUFSIZE. См. Значение по умолчанию в Makefile.

PAEXEC_ENV
Список переменных, переданных в калькулятор.

PAEXEC_EOT
Эта переменная устанавливает маркер конца задачи, который по умолчанию является пустой строкой. Также,
через эту переменную на все калькуляторы передается маркер завершения задачи.

PAEXEC_NODES
Если только вариант -n был применен, эта переменная определяет узлы.

PAEXEC_TRANSPORT
Если только вариант -t был применен, эта переменная определяет транспорт.

Используйте paexec онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    GenX
    GenX
    GenX - это научная программа для улучшения
    коэффициент отражения рентгеновских лучей, нейтрон
    отражательная способность и поверхностные рентгеновские лучи
    данные дифракции с использованием дифференциального
    алгоритм эволюции ....
    Скачать GenX
  • 2
    pspp4windows
    pspp4windows
    PSPP — программа для статистического
    анализ выборочных данных. это бесплатно
    замена фирменной программе
    СПСС. PSPP имеет как текстовую, так и
    графические нас...
    Скачать pspp4windows
  • 3
    Расширения Git
    Расширения Git
    Git Extensions - это автономный инструмент пользовательского интерфейса
    для управления репозиториями Git. Это также
    интегрируется с проводником Windows и
    Microsoft Visual Studio
    (2015/2017/2019). Ч ...
    Скачать расширения Git
  • 4
    eSpeak: синтез речи
    eSpeak: синтез речи
    Механизм преобразования текста в речь для английского и
    многие другие языки. Компактный размер с
    четкое, но искусственное произношение.
    Доступен в виде программы командной строки с
    много ...
    Скачать eSpeak: синтез речи
  • 5
    Карта неба / Cartes du Ciel
    Карта неба / Cartes du Ciel
    SkyChart — программа для построения графиков
    ночное небо для астронома-любителя
    из скопления звезд и туманностей
    каталоги. Полную информацию см. на главной веб-странице.
    скачать...
    Скачать Sky Chart / Cartes du Ciel
  • 6
    GSmartControl
    GSmartControl
    GSmartControl — графический пользователь
    интерфейс для smartctl. Это позволяет вам
    осмотрите жесткий диск и твердотельный
    управлять данными SMART, чтобы определить его
    здоровье, как ж...
    Скачать GSmartControl
  • Больше »

Команды Linux

Ad