как лучше всего разделить огромные вложенные циклы на 8 (или более) процессов используя Python?

на этот раз я столкнулся с проблемой "дизайна". Используя Python, у меня есть реализация математического алгоритма, который использует 5 параметров. Чтобы найти лучшую комбинацию этих 5 параметров, я использовал 5-слойный вложенный цикл для перечисления всех возможных комбинаций в заданном диапазоне. Время, необходимое для завершения, оказалось выше моих ожиданий. Так что я думаю, что пора использовать многопоточность ...

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

Поскольку у меня нет большого опыта работы с многопоточностью на любом языке, не говоря уже о Python, я хотел бы попросить несколько советов о том, какой должна быть структура для этой проблемы. А именно, как следует динамически назначать вычисления потокам и как потоки должны сохранять результаты, а затем объединять все результаты в один файл. Я надеюсь, что количество потоков можно регулировать.

Любая иллюстрация с кодом будет очень полезна.

Большое спасибо за ваше время, я ценю это.

#

обновление 2-го дня: спасибо за все полезные ответы, теперь я знаю, что это многопроцессорность, а не многопоточность. Я всегда путаю эти две концепции, потому что считаю, что если она многопоточная, то ОС будет автоматически использовать несколько процессоров для ее запуска, когда это возможно. Сегодня вечером я найду время попрактиковаться в многопроцессорности.

8
задан Matt 5 July 2011 в 11:19
поделиться