GNU Parallel, czyli 100% użycia procesora

piątek, 13 marca 2015
Źródło: http://www.gnu.org/software/parallel/
Czasem zdarzają mi się zadania wymagające obliczeniowo. Przykładowo konwersja plików audio z jednego na drugi format, czy przeskalowanie całej kolekcji zdjęć.
Dzisiaj właśnie musiałem zmienić rozdzielczość ok 1500 zdjęć. Jak to zrobić - wiadomo. ImageMagick zrobi wszystko. Zdjęcia z jednego katalogu można przeskalować (zrobić z nimi cokolwiek) takim one-linerem w bashu:
for file in *.jpg; do convert $file -resize 50% small-$file; done
Ale od czego mamy 4 (lub więcej) rdzeni w tych super-hiper wypasionych komputerach? Właśnie po to, by ich używać. Zdjęcia można skonwertować na przykład tak:
parallel -j4 convert {} -resize 50% small-{} ::: *.jpg
 gdzie:
  • -j4 oznacza ile zadań można równolegle uruchomić;
  • {} są nazwą pliku wejściowego, a w zasadzie tym, co dopasowało się do wyrażenia *.jpg
Na koniec bonusik - konwersja plików FLAC na MP3:
parallel -j4 ffmpeg -i {} -f mp3 -ab 320000 {.}.mp3 ::: *.flac
 Ja sam benchmarków nie robiłem, ale ktoś już zrobił. Na pewno jest szybciej.

0 komentarze :

Prześlij komentarz

Popular Posts

Krótko :)

 

Tagi

Wydarzenia (12) Tomsk (9) Podróż do Tomska (8) życie (7) Bajkał (5) Wideo (5) Jedzenie (4) Rosja (4) Zima (4) transport (4) minusy (3) Kościół (2) Rowery (2) TPU (2) noc (2) pieniądze (2) Ałtaj (1) C++ (1) Ferie 2014 (1) Kapusta (1) Linux (1) Mecz (1) Podróż (1) Soczi 2014 (1) Sprzedam (1) akademik (1) błoto (1) edukacja (1) sport (1) święta (1)

Info

Aktualnie przebywam w Tomsku na wymianie międzyuczelnianej. Z tego powodu większość świeżych wpisów dotyczy wszystkiego, co związane jest z moim pobytem na Syberii.