Wie kann ich dieses Bildverarbeitungsskript parallelisieren?

278
user2800708

Ich habe dieses Skript, das .CR2-Bilder von meinen Canon-Camern in JPEG konvertiert. Die Bilder werden IMG_ .CR2 genannt, wobei die Bildfolgenummern der Kamera sind. Ich möchte es parallelisieren, um 4 oder 8 Kerne zu verwenden:

#!/bin/sh  for i in `find . -name '*.CR2' | sed 's;./IMG_;;' | sed 's;.CR2;;'`; do dcraw -c -h -w -M -b 1 -o 1 IMG_$i.CR2 | cjpeg -quality 80 > IMG_$i.jpg; done 
0

1 Antwort auf die Frage

0
Raymond Burkholder

Finden Sie heraus, wie viele CPU-Ressourcen Sie in / proc / cpuinfo oder einem anderen Tool haben.

Erstellen Sie mit Ihrem Befehl eine Reihe von Stapeldateien, eine für jede CPU. Führen Sie dann die Batch-Dateien mit dem "&" aus, um sie im Hintergrund auszuführen.