Iterator mit pool abarbeiten?
Verfasst: Donnerstag 16. Februar 2012, 21:58
Hi,
und direkt noch eine Frage.
Muss eine große Anzahl an Dateien lesen und die darin enthaltenen Daten auswerten.
Habe mir dazu eine Lesefunktion geschrieben die mir einen Iterator gibt (eine Datei kann viele (>1kk) Datensätze beinhalten, da ich die nicht alle gleichzeitig im Speicher haben kann, das was ich am ende aber brauche nur ein Float ist gehe ich durch den Iterator, lese dabei genau den Teil der Datei den ich brauche, bekomme die Daten zurück gegeben und kann sie direkt auswerten, einen Float im RAM behalten und den Rest wieder wegwerfen). Nun dauert die Auswertung der vom Iterator zurückgegebenen Daten. Zusätzlich nutze ich nur einen Core von meinen vieren (1 ist für 10h auf 100%, der Rest auf 0%). Ich würde nun gerne wissen, ob es Möglich ist, Iteratoren über einen pool abarbeiten zu lassen. Wichtig ist dabei, das mein Interator intern eine Queue verwendet (und die sollte ja Threadsafe sein, oder?), der Rest sind nur Daten die zur Laufzeit vorhanden sind (also nichts mit self. )
Kann ich jetzt einfach einen Pool auf diesen Iterator loslassen?
Habe leider für euch (noch) keinen Code, wollte diesmal erst verstehen wie es richtig geht bevor ich wieder alles drei mal machen muss.
Schonmal Danke fürs Antworten!
p90
und direkt noch eine Frage.
Muss eine große Anzahl an Dateien lesen und die darin enthaltenen Daten auswerten.
Habe mir dazu eine Lesefunktion geschrieben die mir einen Iterator gibt (eine Datei kann viele (>1kk) Datensätze beinhalten, da ich die nicht alle gleichzeitig im Speicher haben kann, das was ich am ende aber brauche nur ein Float ist gehe ich durch den Iterator, lese dabei genau den Teil der Datei den ich brauche, bekomme die Daten zurück gegeben und kann sie direkt auswerten, einen Float im RAM behalten und den Rest wieder wegwerfen). Nun dauert die Auswertung der vom Iterator zurückgegebenen Daten. Zusätzlich nutze ich nur einen Core von meinen vieren (1 ist für 10h auf 100%, der Rest auf 0%). Ich würde nun gerne wissen, ob es Möglich ist, Iteratoren über einen pool abarbeiten zu lassen. Wichtig ist dabei, das mein Interator intern eine Queue verwendet (und die sollte ja Threadsafe sein, oder?), der Rest sind nur Daten die zur Laufzeit vorhanden sind (also nichts mit self. )
Kann ich jetzt einfach einen Pool auf diesen Iterator loslassen?
Habe leider für euch (noch) keinen Code, wollte diesmal erst verstehen wie es richtig geht bevor ich wieder alles drei mal machen muss.
Schonmal Danke fürs Antworten!
p90