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.


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


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ć.


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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.