У меня есть вложенный цикл for в моем коде на Python, который выглядит примерно так:
results = []
for azimuth in azimuths:
for zenith in zeniths:
# Do various bits of stuff
# Eventually get a result
results.append(result)
Я хотел бы распараллелить этот цикл на своей 4-ядерной машине, чтобы ускорить его. Глядя на документацию по параллельному программированию IPython (http://ipython.org/ipython-doc/dev/parallel/parallel_multiengine.html#quick-and-easy-parallelism), кажется, что есть простой способ использовать карту
для распараллеливания итерационных операций.
Однако для этого мне нужно иметь код внутри цикла как функцию (что легко сделать), а затем отображать эту функцию. У меня проблема в том, что я не могу получить массив для сопоставления этой функции. itertools.product ()
создает итератор, с которым я не могу использовать функцию карты.
Я лаю не на то дерево, пытаясь использовать здесь карту? Есть ли способ лучше? Или есть способ использовать itertools.product
, а затем выполнить параллельное выполнение с функцией, сопоставленной с результатами?