Dlaczego równolegle (GNU?) Nie działa cicho i jak to naprawić?

15

W większym skrypcie do przetworzenia niektórych danych symulacyjnych miałem następujący wiersz:

parallel bnzip2 -- *.bz2

Co, jeśli dobrze rozumiem parallel(a może nie rozumiem ), powinno uruchamiać n-rdzeniowe wątki programu na wszystkich plikach z wymienionym rozszerzeniem. Możesz zauważyć, że źle napisałem polecenie bunzip2. Spodziewałbym się tutaj ostrzeżenia lub komunikatu o błędzie, ale po cichu się nie powiedzie. Czy to jest zamierzone? Jak mogę się tym nie pogodzić w przyszłości?

Aktualizacja:

Możliwe, że mam parallelzainstalowany inny niż myślę:

> parallel --version`


parallel: invalid option -- '-'
parallel [OPTIONS] command -- arguments
    for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
    run specified commands in parallel

Strona parallelpodręcznika systemowego w moim systemie zawiera:

 parallel(1)                                                        parallel(1)
NAME
       parallel - run programs in parallel
....
AUTHOR
   Tollef Fog Heen

Wydaje się, że to nie jest wersja GNU.

Haczykowaty
źródło
Wyświetla błąd w moim systemie. Co parallel --versionmówi $ parallel bnzip2 -- * sh: bnzip2: command not found
Mikel
Równolegle GNU to „Copyright (C) 2010, 2011,2012 Ole Tange, ole.tange.dk i Free Software Foundation, Inc.” (Ten sam autor od początku.)
Mat.

Odpowiedzi:

20

Zostałeś dotknięty pomieszaniem z równoległością Tollefa z moreutils. Zobacz https://www.gnu.org/software/parallel/history.html

Możesz zainstalować GNU Parallel po prostu przez:

wget http://git.savannah.gnu.org/cgit/parallel.git/plain/src/parallel
chmod 755 parallel
cp parallel sem

Obejrzyj filmy wprowadzające do GNU Parallel, aby dowiedzieć się więcej: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Ole Tange
źródło
1
Teraz wszystko nabiera sensu! Dla przypomnienia, na Ubuntu 12 teraz apt-get install parallelpobiera równolegle Tollefa, a nie twoją wersję GNU. Dzięki za wypełnienie mnie.
Zaczepiono
1
W przypadku Ubuntu 12, zobacz Gdzie mogę uzyskać pakiet GNU Parallel?
Ian
12

(Chciałbym zrobić z tego komentarz, ale brakuje mi przywilejów).

Prawdopodobnie możesz po prostu użyć parallel --gnu. Powiedziałeś, że Ubuntu 12 (.04?) Używa wersji Tollef, ale tak naprawdę jest to implementacja GNU, z jakiegoś powodu domyślnie przyjmuje domyślną składnię Tollef.

Dodałem alias parallel='parallel --gnu'do mojego skryptu logowania, więc nie muszę się już nim przejmować.

billyjmc
źródło
2
Możesz także dodać --gnudo $ HOME / .parallel / config.
Thor
Uwaga: tutaj odpowiedzią jest komentarz z @Hooked.
nobar
Zobacz tutaj inne podejście oraz nieco więcej szczegółów dotyczących wersji: askubuntu.com/a/298598/11522 .
nobar
1
Frustrująco Fedora umieszcza także --tollef w / etc / parallel / config . Jakby to nie było wystarczająco nieprzyjemne, sama GNU równolegle donosi, że --tollef zostanie usunięty w 20140222 .
musicinmybrain,