Bonjour à tous,

Je souhaiterais me lancer dans un petit projet perso. Je n'ai pas encore décidé le langage que j'allais utiliser. Ma préférence va pour le moment pour Python grâce à sa simplicité et toutes les bibliothèques scientifiques disponibles. Cependant il me reste une interrogation quand au parallélisme, qui pourrait peut-être me faire aller vers Scala...

Il se trouve que dans mon appli, il y a beaucoup (vraiment beaucoup) de boucles imbriquées à exécuter de type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
from numpy import *
 
nA=10
nB=20
 
A=[random.rand(5,5) for i in range(nA)]
B=[random.rand(5,3) for i in range(nB)]
C=[]
 
for i in range(nA):
    for j in range(nB):
        C.append(dot(A[i],B[j]))
Je voudrais savoir si ce bout de code est facilement parallélisable d'un point de vue pratique (en coupant A en 2 par exemple). Si la réponse est oui, comment faut-il s'y prendre?

Merci pour votre aide

PS: Petite question annexe, est-ce que je peux pré-allouer la taille de la liste C pour aller plus vite?