Сколько процессов я должен запустить параллельно?

У меня есть распараллеленная задача, которая читает материал из нескольких файлов и записывает информацию в несколько файлов.

Идиома, которую я сейчас использую для распараллеливания вещей:

listOfProcesses = []
for fileToBeRead in listOfFilesToBeRead:
    process = multiprocessing.Process(target = somethingThatReadsFromAFileAndWritesSomeStuffOut, args = (fileToBeRead))
    process.start()
    listOfProcesses.append(process)

for process in listOfProcesses:
    process.join()

Стоит отметить, что somethingThatReadsFromAFileAndWritesSomeStuffOut может сам распараллеливать задачи (возможно, придется читать из других файлов и т. Д. И т. Д.).

Теперь, как вы можете видеть, количество создаваемых процессов не зависит от количества ядер на моем компьютере или чего-либо еще, , за исключением того, сколько задач нужно выполнить . , Если нужно выполнить десять задач, создайте десять процессов и т. Д.

Это лучший способ создавать задачи? Стоит ли мне думать о том, сколько ядер у моего процессора и т. Д .

9
задан user89 22 May 2014 в 20:33
поделиться