Je m'en remet à vous pour essayer de comprendre une erreur que je traine depuis quelques jours.
Je vous mets en contexte, je travaille sur un projet de simulation des plaques OCT [Tomographie par cohérence optique], et j'ai besoin d'ajouter un compteur pour calculer le nombre de photons, en effet le compteur s'initialise après un certain nombre d'itération, paracerque j'utilise dans mon programme la programmation parallèle, je voulais savoir comment je peux faire pour introduire une boucle dans mon programme?
est ce qu'il ya qlqun qui peux m'aider par des solutions ou bien des ressources ?
mais selon les cas d'utilisation c'est pas forcément la panacée, y'a moyen de configurer un peu la directive openmp pour par exemple fixer une taille de chunk, le nombre de threads, le type de découpage etc ... pour affiner un peu le truc mais s'est souvent moins performant qu'un multithreading manuel, ne serait-ce que parce que openmp crée les threads au moment de la boucle ce qui prend un peu de temps.
Salut ! Tu pourrais nous donner un peu plus de contexte s'il te plait ? Parce que perso j'ai pas vraiment compris ou se trouve le problème, quelle est la situation, et quelles ont été tes tentatives pour le régler.
Salut ! Tu pourrais nous donner un peu plus de contexte s'il te plait ? Parce que perso j'ai pas vraiment compris ou se trouve le problème, quelle est la situation, et quelles ont été tes tentatives pour le régler.
Je suis désolé, je n'ai pas bien expliquer le problème, du coup quand je rajoute une boucle a mon programme, dans l'affichage je trouve que les valeurs du boucles sont désordonnées, donc je dois empêcher le programme d'exécuter le multithreading au niveau du boucle pour que les valeurs soient ordonnées.
en effet j'ai utilisé le #pragma omp criteria , mais ca na pas marché .
est qu'avec cette dernière directive, le code va être exécuté par tous les threads, mais séquentiellement, tandis qu'avec la première, un seul thread exécute vraiment le code.
- Edité par Nozio 31 mars 2021 à 9:58:05
Avez-vous entendu parler de Julia ? Laissez-vous tenter ...
est qu'avec cette dernière directive, le code va être exécuté par tous les threads, mais séquentiellement, tandis qu'avec la première, un seul thread exécute vraiment le code.
- Edité par Nozio il y a environ 3 heures
D'acc, j vais jeter un œil sur le lien
Merci beaucoup
C++ OpenMP (Paralel Computing)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
https://zestedesavoir.com/tutoriels/822/la-programmation-en-c-moderne/
Avez-vous entendu parler de Julia ? Laissez-vous tenter ...