У меня есть генетический алгоритм, который я бы хотел ускорить. Я думаю, что самый простой способ добиться этого - модулем многопроцессорности pythons. После запуска cProfile на моей GA, я узнал, что большая часть вычислительного времени имеет место в функции оценки.Parallelize for loop in python
def evaluation():
scores = []
for chromosome in population:
scores.append(costly_function(chromosome))
Как бы я попытался распараллелить этот метод? Важно, чтобы все баллы добавлялись в том же порядке, что и в случае, если программа будет запускаться последовательно.
Я использую Python 2.7
Использование 'multiprocessing.Pool.map'. Результаты будут упорядочены так же, как и в вашем опубликованном коде. –