Paralellverarbeitung im Batch?

Dabei seit
25.01.09
Beiträge
93
Standort
München
#1
Hallo,

ich sitze wieder mal an der Bearbeitung meiner Urlaubsbilder und dabei ist mir folgendes aufgefallen: Einer meiner Schritte ist, per Script über alle ausgewählten Bilder zu gehen und z.B. autocontrast o.ä. laufen zu lassen. Das mache ich als Teil des Workflows "von außen" in dem ich FixFoto mit dem entsprechenden "/script" starte.

Ich habe versucht, den Prozess zu beschleunigen, in dem ich im Taskmanager die Priorität des Prozesses hoch drehe. Damit komme dabei aber auf meiner alten 4-Kern-Maschine nie über 25%. D.h. also, dass die Arbeit nur auf einem Kern stattfindet. Also muss ich offensichtlich wohl noch irgendwas in meinem Script machen, um höhere Parallelisierung zu erreichen? Gibts da irgendein Feature, dass ich nutze kann?

Ich würde ja nur ungern Parallelverarbeitung selbst bauen und z.B. mehrere FF-Instanzen starten.

Danke & noch einen schönen restlichen Feiertag
 

JKS

FF-Team
Dabei seit
06.06.02
Beiträge
6.715
#2
Das Skripting-System ist nicht threadfest.
Davon abgesehen wird's nicht schneller, wenn mehrere Prozessoren auf das Laufwerk warten...
 

JKS

FF-Team
Dabei seit
06.06.02
Beiträge
6.715
#4
Ich hatte überlegt, Python als Skriptsprache mit aufzunehmen, fragt sich nur wieviel Interesse vorhanden ist.
 

W.P.

Mitglied
Dabei seit
16.10.02
Beiträge
5.099
Standort
Anzing BY
#5
Hallo zusammen,
hm, da kapiere ich was nicht. Die einzelnen Routinen, die von FF erledigt werden, laufen doch unter Multitasking(oder nur Multithreading?)? Da müsste doch mehr als 25% drin sein. Zumindest die Bildverarbeitungsroutinen. Für Metadaten macht der Aufwand ja keinen Sinn, es sei denn man verarbeitet parallel die verschiedenen Typen (Laden u. interpretieren/speichern in den Hauptspeicher, bevor alles auf Platte geschrieben wird)
Dass das Skript selber nur als Single-Task läuft, ist da völlig irrelevant, da zum Ende der Funktion wieder synchronisiert wird und die Funktion abgeschlossen wird bevor sie wieder verlassen wird. Da müssten also 60-75% CPU-Auslastung schon drin sein.

Terminus nach .Net:
Multitasking: Verteilung der Einzelaufgaben auf alle Kerne. Wenn eine Teilaufgabe vom Kern erledigt ist, holt es sich die nächste freie Teilaufgabe. Sind alle Teilaufgaben erledigt, geht es weiter in der Funktion.
Multithreading: Starten eines Threads, der auf einen beliebigen Kern läuft(auch möglich auf einen vollen CPU-Kern). Priorität kann man beliebig setzen. Verwaltung der CPU-Kern-Vergabe über das OS. Synchronisierung muss man selber erledigen durch aktives Warten auf alle Threads.
 

hhoefling

Mitglied
Dabei seit
02.01.04
Beiträge
3.994
Standort
NRW/Ruhrgebiet
Trophäen
4! 2*
#8
Ich kenne Python (ganz rudimentär) nur von meiner openWB (auf Raspi)
32/64? Multithreading? oder nur "hübscher"
Ist Fixfoto dann Libary von Python / oder Python ist Subroutine von FixFoto (wie jetzt JScript)?

Ich wäre nicht abgeneigt mit Python anzufangen, aber es soll sich schon lohnen das ganze JScript über den haufen zu werfen.
 

praetor

Mitglied
Dabei seit
24.10.04
Beiträge
2.144
Standort
Berlin
Trophäen
{**!!!}**!!!!! !!!!! !!
#10
Fände ich auch spannend, wäre ein Impuls, mal in Python einzusteigen. Wäre das tendenziell stabiler? Aktuell bleiben Skripte bei vielen Daten/Durchläufen schon sehr gern mal hängen.
 

JKS

FF-Team
Dabei seit
06.06.02
Beiträge
6.715
#11
Ohne die Ursache des Hängens zu kennen nicht zu beantworten. Tendenziell eher kein Problem der Skriptsprache.
 
Oben