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 parallel
zainstalowany 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 parallel
podrę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.
gnu-parallel
moreutils-parallel
Haczykowaty
źródło
źródło
parallel --version
mówi$ parallel bnzip2 -- * sh: bnzip2: command not found
Odpowiedzi:
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:
Obejrzyj filmy wprowadzające do GNU Parallel, aby dowiedzieć się więcej: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
źródło
apt-get install parallel
pobiera równolegle Tollefa, a nie twoją wersję GNU. Dzięki za wypełnienie mnie.(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ć.źródło
--gnu
do $ HOME / .parallel / config.