LINUX.ORG.RU

GNU Parallel 20180922 ('Danske')

 , , , ,


0

1

GNU Parallel — это инструмент командной оболочки для выполнения задач параллельно на одном или нескольких компьютерах. Задача может быть одной командой или небольшим скриптом, который должен выполниться для каждой строки ввода. Примеры такого ввода — списки файлов, хостов, пользователей, ссылок или таблиц. Задачей также может быть команда, читающая из пайпа. GNU Parallel может разделять ввод и перенаправлять его выполняющимся параллельно командам.

Если Вы уже пользуетесь xargs и tee — использовать GNU Parallel будет очень просто, так как он совместим с аргументами xargs. Если Вы пишете циклы в командной оболочке, то обнаружите, что GNU Parallel может заменить большинство циклов и ускорить их за счёт распараллеливания. GNU Parallel может заменять даже вложенные циклы.

GNU Parallel гарантирует, что вывод команд получается таким же, каким был бы при последовательном запуске. Это позволяет использовать вывод GNU Parallel в качестве ввода для других программ.

Новое в этом выпуске:

>>> Получите книжку GNU Parallel 2018

>>> Источник



Проверено: anonymous_incognito ()
Последнее исправление: anonymous_incognito (всего исправлений: 1)

Я, конечно, могу специально придумать как это поюзать, но кто, как и зачем это юзает в действительности?

WitcherGeralt ★★
()
Ответ на: комментарий от WitcherGeralt

Ну вот прямо текущий кейс.

Есть монорепа (https://github.com/helm/charts), из которой я git subtree-ом выдираю отдельные части и впиливаю в свою репу с проектом. git subtree split — это долго. А если оно выполняется десять раз — это ещё дольше. Всё это действие IO-bound, поэтому GNU parallel неплохо заходит. Мелочь, на самом деле, но удобно.

Вот: http://ix.io/1nPr/bash

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

Блин, нафига добавлять к новости какие-то картиночки, если это не скриншоты? Задолбали.

sluggard ★★★★★
()
Ответ на: комментарий от sluggard

Когда новость пишешь нельзя указать куда ты ее хочешь, это пятка модератора решает при подтверждении.

mandala ★★★★★
()
Ответ на: комментарий от dave

Оно работает, но для GNU разработчики немного того. Кругом реклама, а кто против, для тех man parallel_alternatives.

boowai ★★★★
()
Ответ на: комментарий от Deleted

Например? Винду хоть не использует, и то хлеб. Хотя от него уже всего можно ожидать.

bodqhrohro_promo
() автор топика
Ответ на: комментарий от dave

По сравнению с произволом гноморастов это простительно.

bodqhrohro_promo
() автор топика

Ну наконец-то подтвердили.

hobbit ★★★★★
()

Битва с кавычками для более-менее сложных команд утомляет. Но это уже как бы поблемы баша.

anonymous
()
Ответ на: комментарий от WitcherGeralt

биоинформатика, обработка данных в пайплайнах

ZERG ★★★★★
()
Ответ на: комментарий от WitcherGeralt

Я, конечно, могу специально придумать как это поюзать, но кто, как и зачем это юзает в действительности?

Постоянно юзаю для целой кучи юзкейсов. Собственно абсолютно всё, что написано однопоточным, и при этом надо применить к куче входных данных (или файлов).

Например из часто используемого:

# Пережать все флаки в текущем каталоге с -8
ls *.flac | parallel "flac -8 {} -o __{}" && rename __ '' __*

# Оптимизировать все png в текущем каталоге
ls *.png | parallel optipng -o7 -zm6-9 -strip all

anonymous
()
Ответ на: комментарий от WitcherGeralt

Я юзаю, когда надо определённое число http запросов отправить. Да что угодно удобно параллельить, если надо в n потоков.

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от anonymous

Наконец-то годный анонимус подошёл. Спасибо.

hobbit ★★★★★
()

Надо будет как-нибудь побороть свою лень и заюзать.
Есть необходимость, но так влом переписывать старые скрипты...

WatchCat ★★★★★
()
Ответ на: комментарий от intelfx

Там даже полоска прогресса есть!!1

Когда подобное ждать в системд??7

anonymous
()
Ответ на: комментарий от anonymous

ls *.flac

ls *.png

Не делай так, это некорректно.

# Пережать все флаки в текущем каталоге с -8
parallel "flac -8 {} -o __{}" && rename __ '' __* ::: *.flac

# Оптимизировать все png в текущем каталоге
parallel optipng -o7 -zm6-9 -strip all ::: *.png
intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от anonymous

всё навернётся если будут имена с пробелами, коллега

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.