LINUX.ORG.RU

GNU Parallel 20180722 ('Crimson Hexagon') [alpha]

 , , , , ,

GNU Parallel 20180722 ('Crimson Hexagon') [alpha]

4

2

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

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

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

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

  • Изменён движок экранирования. Вместо \-экранирования GNU Parallel теперь использует '-экранирование в bash/ash/dash/ksh. Это должно улучшить совместимость с различными локалями. Из-за такого крупного изменения выпуск получил статус альфы.
  • Изменён подсчёт ЦП. По умолчанию GNU Parallel использует в качестве количества ЦП количество нитей ЦП. Вместо этого можно использовать количество ядер ЦП или гнёзд ЦП с помощью ключей --use-cores-instead-of-threads и --use-sockets-instead-of-threads соответственно.
  • Распознанное количество гнёзд, ядер и нитей можно вывести ключами --number-of-sockets, --number-of-cores и --number-of-threads соответственно.
  • env_parallel теперь поддерживает mksh с помощью env_parallel.mksh
  • GNU Parallel распространяется как часть Snippy — программы для сравнения геномов
  • Исправления ошибок и обновления мануала

>>> Скачать

>>> Подробности

>>> Установить всего за 10 секунд: (wget -O - pi.dk/3 || curl pi.dk/3/) | bash

>>> Видео для начинающих

>>> Источник



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

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

Если скрипт написан как положено, то можно.

Legioner ★★★★★
()

Вот я принципиально не против картинок к новостям на ЛОРе, но что это, мать его, за вырвиглазие? Да ещё и на фоне tango чёрную подпись на прозрачном фоне не видно нифига.

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

thread - это нить. «поток» - это прижившийся дурацкий перевод от официальных переводчиков MS. Словом «поток» нормальные переводчики КЛ переводят только слово «stream» и заодно не путают нити исполнения программы с потоками ввода-вывода. Ср. «нить повествования» лит.

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

перевод от официальных переводчиков MS.

трудно виндузятникам, чо не видят- всё считают происками мысы

anonymous
()

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

Кто-нибудь может разъяснить? Это про циклы for и т.д.??? Пример хочу)

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

ШТАБЛЯ?

Боишься прихода нового Поцтеринга, что ли?

Дебил, в мозгу которого возникает идея пообсуждать доступность ФС в продукте, который по дефолту для этого не предназначен, как-то не особо пугает.

Маня, не рвись.

Да мне-то похрену, а вот что ты делать лет через десять будешь, читая и вспоминая каким же ты был дятлом, это твои проблемы. Но так обсираться на все инторнеты я бы не стал. Перед коллегами было бы стыдно. Ну и перед пони, радугой и котиком конечно.

anonymous
()

оно на баше написано чтоли?

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

А что не понятно?

Любой цикл можно развернуть в параллельное выполнение каждой итерации. Собственно, тут есть только две ловушки. Во первых, в общем случае потребление ресурсов будет ничем не ограничено. Бесконечный цикл будет порождать бесконечное количество параллельно исполняющихся процессов, что может привести к смерти системы. Это излечимо созданием управляемой очереди процессов. А во вторых, зацепление данных в итерациях может привести к тому, что параллельные процессы все равно будут происходить практически последовательно. Это лечится уже только (автоматической) правкой алгоритма или вовсе не лечится.

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

Пфффф... Это же сучье опущенное 2chевское быдло, не опускайтесь до него, оно даже не достойно ваших извинений :))

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

ЗЫ. Это я про анонизменного манявыбледка, который

«Что ты забыл в Linux, убожество, с такими «познаниями»?»

Так то!

anonymous
()

Отличная идея. Давайте дальше будем писать последовательные циклы с однопоточными утилитами, и пусть кто нибудь напишет интерпретатор, который развернёт эти циклы в паралельные конструкции.

З.Ы. о утилите узнал только что. До сих пор использовал несложные костыли в 3-4-5 строк чтобы распаралелить задачу и везде заменил gzip/bzip2 на pbzip2 и 7z. Проблема решена.

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

На самом деле область применения довольно узкая. Мне кажется это больше не про десктопы. Ну хотя wget в 100 потоков запускать нормально.

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

Я боюсь область применения слишком узкая. Запускать всякие grep | ffmpeg для папки с музыкой, причём у тех, кто не осилил других способов.

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

Даланте...

Не мешай, пусть чуваки развлекутся так... чисто дружеским минетом. Может, хоть один из них слово «Linux» правильно научится писать и произносить. Тоже польза... =)))

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

что это, мать его, за вырвиглазие?

Я не виноват, это maxcom изначально минимальный размер 400x400 для картинок в галерее захардкодил и для новостей так и оставил. Пришлось ресайзить. Впрочем, можно было и поля добавить, но тогда визг подняли бы нелюбители моднявых разрежённых дизайнов.

чёрную подпись на прозрачном фоне не видно нифига

Надписи на картинках не нужны :P

bodqhrohro_promo
() автор топика
Ответ на: ШТАБЛЯ? от anonymous

Дебил, в мозгу которого возникает идея пообсуждать доступность ФС

... не хуже дебила, который сравнивает ОС с мелкой утилитой.

а вот что ты делать лет через десять будешь, читая и вспоминая каким же ты был дятлом

До этого ещё дожить надо. И вряд ли я буду заниматься столь бесполезным занятием, как перечитывание своих постов на какому-то умершем форуме.

Перед коллегами было бы стыдно

Поцчему ты стыдишься показывать себя таким, каков есть? У тебя комплексы какие-то?

Ну и перед пони, радугой и котиком конечно

А, так ты ещё и шизик...

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

Что есть десктоп? Так-то CLI вообще не про десктопы давно ;-)

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

врёти это не настоящие анонимусы и регистранты не настоящие это всё виртуалы усача

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

А потом оказывается, что процессоры исполняют не то, что писал програмист и не так, как задумывали разработчики процессора.

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

Бывает :( Потому лоулэвэл такой глюкодром с граблями. Iron_Bug вон вообще давеча жаловалась, что аж с осциллографом отлаживать приходится. Впрочем, и с хайлэвэлом бывает не лучше; чем больше гора абстракций, тем больше вероятность бага. Идеал — что-то железоабстрагированное и в то же время не переусложнённое, типа Shell, Pascal, Perl и т. п.

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

Ну вот...

Linux — это звучит гордо

Отправка к логопеду подействовала... И не долго надо было лечить. Всё же просто, если подойти к делу с умением!

А та помойка, которую я из него соорудил — это лялипс. Не путай.

Ну вот! Можешь же когда хочешь! Теперь поставь Gentoo, разберись как работает система и возрадуйся, ибо будет тебе счастье. Не то что ты там думаешь надо понять, ты и сам в курсе что у тебя помойка, а как оно должно быть тебе надо понять. И тебе полегчает, я это гарантирую.

Удачи!

anonymous
()
Ответ на: Ну вот... от anonymous

Отправка к логопеду подействовала...

Ниет.

как оно должно быть

Ану кыш отсюда, проприетарщик.

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

такую аудиторию правильней давить не инструментами а катком)

Если человек запускает скрипт из интернета не глядя его к юниксу близко подпускать нельзя.

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

Элитизм у Вас в бошке. И если Ваш лично уютный рыночек с одним локалхостом это устраивает то это Ваше личное дело.

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

Вне локалхостов всё ещё печальнее, повышенная компуктерная грамотность на неайтишных должностях всячески не приветствуется. А то юзверь ещё начнёт ограниченные учётки обходить, флешки совать, куда не положено и поблочено, и тому подобное.

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

https://www.idontplaydarts.com/2016/04/detecting-curl-pipe-bash-server-side/

The sleep cleverness is excessive though - what you really want to know is if the script you're returning is being executed as it's sent. If it is, then you can be pretty confident that a human isn't reading it line by line. 1. Send your response as transfer-encoding: chunked and tcp_nodelay

2. Send the first command as

curl http://www.example.com/$unique_id Then the server waits before sending the next command - if it gets the ping from the script, we know that whatever is executing the script is running the commands as they're sent, and is therefore unlikely to be read by a human before the next command runs. If it doesn't ping within a second or so, proceed with the innocent payload. For extra evil deniability, structure your malicious payload as a substring of a plausibly valid sequence of commands - then simply hang the socket partway through. Future investigation will make it look like a network issue.

Говорят, так делать действительно не стоит. Хотя я не понимаю, обычно я курлом сохраняю в файл потому что мне не нравится вгет, и потом смотрю что пришло катом, и уже потом исполняю. Как можно предполагать, что файл не будет просмотрен?

С другой стороны, если исполнять файл из интернета, он всегда обновлённый будет...

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

слил файл, разобрался - выполнил)

для параноиков : слил файл сделал cat скопипастил построчно вырезав лишнее)

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