J'ai un programme qui tire parti d'OpenMP pour obtenir une grande vitesse sur un double CPU avec un total de 32 cœurs serveur. Les paramètres d'entrée que j'utilise ne permettent pas un chargement complet des CPU.Accès à la mémoire OpenMP et dégradation des performances
Aujourd'hui, deux cœurs étaient chargés à 100% par un autre programme. Quand j'ai lancé mon programme, il était terriblement lent même si la charge sur les processeurs était comme d'habitude assez élevée (~ 2500%). J'ai enlevé les instructions parallèles et j'ai remarqué quelques améliorations de performance.
Cela peut-il être dû à la bande passante mémoire limitée? Comment pourrais-je approfondir le problème et éventuellement améliorer mon code?
cela peut être un problème de mémoire ou parce que "autre programme" charge un peu de CPU, mais montrez votre code et effectuez une mesure réelle de la quantité de mémoire/CPU, temps d'exécution de votre programme! – alexbuisson