J'ai une boucle for imbriquée dans mon code python qui ressemble à ceci :
results = []
for azimuth in azimuths:
for zenith in zeniths:
# Do various bits of stuff
# Eventually get a result
results.append(result)
J'aimerais paralléliser cette boucle sur ma machine à 4 cœurs pour l'accélérer. En regardant la documentation sur la programmation parallèle d'IPython (http://ipython.org/ipython-doc/dev/parallel/parallel\_multiengine.html#quick-and-easy-parallelism), il semble qu'il y ait un moyen facile d'utiliser map
pour paralléliser les opérations itératives.
Cependant, pour ce faire, je dois avoir le code à l'intérieur de la boucle comme une fonction (ce qui est facile à faire), et ensuite mapper à travers cette fonction. Le problème que je rencontre est que je n'arrive pas à obtenir un tableau pour mapper cette fonction. itertools.product()
produit un itérateur avec lequel je n'arrive pas à utiliser la fonction map.
Est-ce que je fais fausse route en essayant d'utiliser map ici ? Existe-t-il une meilleure façon de procéder ? Ou existe-t-il un moyen d'utiliser itertools.product
et de procéder ensuite à une exécution parallèle à l'aide d'une fonction mappée sur les résultats ?