Danke,
ich habe noch einen Fehler entdeckt, bei dem ich um Hilfe Bitte:
Code: Alles auswählen
cores=cpu_count() # Anzahl der Kerne
teil=int(all_pages/cores) # Anzahl der Seiten, die je Kern zu bearbeiten sind
processes=[
Process(target=merge,
args=(teil,nr*teil,path,tempdir,nr))
for nr in xrange(cores)
]
das dumme ist, dass dbei dieser lösung ein Rest bleibt.
Bsp:
cores=4 # Anzahl der Kerne
all_pages=141
teil=int(all_pages/cores) = int(141/4)=35 # Anzahl der Seiten, die je Kern zu bearbeiten sind
macht bei 4 Kernen 4*35=140 Seiten
das heißt, ich müßte eigendlich so etwas machen:
Code: Alles auswählen
rest=all-(cores-1)*teil
first=(cores-1)*teil
kerne=cores-1
processes=[
Process(target=merge,
args=(teil,nr*teil,path,tempdir,nr))
for nr in xrange(kerne),
Process(target=merge,
args=(rest,first,path,tempdir,kerne))
]
So funktioniert es aber nicht.
Code: Alles auswählen
TypeError: unsupported operand type(s) for *: 'xrange' and 'int'
so funkktionierts natürlich für 4 Kerne:
Code: Alles auswählen
processes=[
Process(target=merge,
args=(teil,0*teil,path,tempdir,0)),
Process(target=merge,
args=(teil,1*teil,path,tempdir,1)),
Process(target=merge,
args=(teil,2*teil,path,tempdir,2)),
Process(target=merge,
args=(rest,3*teil,path,tempdir,3))
]
Könnt Ihr mir helfen??
Gruß Mathi