Donc, j'ai à peu près ce code:OpenMP; l'action entre les boucles imbriquées
for (int i = 0; i != 10000; ++i) {
doAction(i);
for (int j = 0; j != 10000; ++j) {
...
}
}
Et je veux parallellize à l'aide d'OpenMP. Si je comprends bien, un simple collapse
ne fera pas dans ce cas; mes tentatives pour utiliser les #pragma omp for
s n'ont pas non plus porté leurs fruits. Y at-il un moyen simple de paralléliser cela facilement ou dois-je recourir à appeler doAction
i*j
fois?
Que diriez-vous de remplacer! = Par – tim18
@ tim18 Qu'est-ce que c'est censé faire? J'ai toujours supposé qu'ils sont équivalents dans ce contexte. En outre, je ne vois pas comment cela est lié à la partie en boucle imbriquée de la question – Akiiino
** [A]: ** Considérez-vous un appel à une fonction 'doAction (i);' pour représenter le * (cit .) "action ** entre ** boucles imbriquées" *? ** [B]: ** Comment avez-vous eu l'idée que le code 'doAction (i)' est appelé ** 'i * j' ** fois? ** [C]: ** Quel est le traitement réel dans '...'? Le code MCVE devrait représenter un exemple reproductible. Comment valider un tel morceau de code, sans avoir la possibilité de confirmer/rejeter la possibilité d'organiser une exécution de code "juste" - ** '[CONCURRENT]' ** ou vrai - ** '[PARALLEL]' **, quand ceci morceau du code MCVE est réellement manquant? – user3666197