J'ai un grand programme C++ qui modifie le mot de contrôle FPU (en utilisant _controlfp()
). Il démasque certaines exceptions FPU et installe un SEHTranslator pour produire des exceptions C++ typées. J'utilise VC++ 9.0.Contrôle du comportement du FPU dans un programme OpenMP?
Je voudrais utiliser OpenMP (v.2.0) pour paralléliser certaines de nos boucles de calcul. Je l'ai déjà appliqué avec succès à un, mais les résultats numériques sont légèrement différents (même si je comprends que cela pourrait aussi être dû au fait que les calculs sont effectués dans un ordre différent). Je suppose que c'est parce que l'état FPU est spécifique au thread. Existe-t-il un moyen pour que les threads OpenMP héritent de cet état du thread principal? Ou existe-t-il un moyen de spécifier en utilisant OpenMP que les nouveaux threads exécutent une fonction particulière qui définit l'état correct? Quelle est la manière idiomatique de gérer cette situation?
@Sting: Votre profil aboutme vous indique que vous souhaitez supprimer votre profil? visitez http://meta.stackexchange.com/questions/31048/closing-out-my-stack-overflow-account/31054#31054 –
Avec quel flag/fp compilez-vous? –