Tout d'abord je pense que Pythran et ton initiative pour faire un truc façon OpenMP est très bonne. Ensuite, tu dis que OpenMP est cool parce que c'est simple, etc. Mon expérience est que les gens font plein d'erreurs avec OpenMP parce que justement ils ne sont pas obligés d'utiliser default(none). Lorsque j'enseigne ce framework à des étudiants ou des ingénieurs, je les martèle avec une phrase que je répète régulièrement: « Utilisez default(none). Utilisez default(none).UTILISEZ DEFAULT(NONE)!
Il existe tellement de bugs stupides dans OpenMP que je pense qu'il serait bon que dans ta version des constructions parallèles, ce soit l'option par défaut (ce qui ne correspond pas au standard). Je fournis un exemple (bête) de pourquoi juste en dessous.
Ce code est buggé. Quand on connaît (raisonnablement) bien OpenMP, et qu'on pratique souvent, ça sautera assez vite aux yeux. Pour les autres, il y aura pas mal de grattage de tête avant de comprendre d'où vient l'erreur. Forcer default(none) permet de pallier à ce genre d'erreur. Ça permet aussi un meilleur diagnostic à la compilation.
# OpenMP et la fausse simplicité...
Posté par lasher . En réponse au journal Pyth(on|ran) + OpenMP ?. Évalué à 3.
Salut,
Tout d'abord je pense que Pythran et ton initiative pour faire un truc façon OpenMP est très bonne. Ensuite, tu dis que OpenMP est cool parce que c'est simple, etc. Mon expérience est que les gens font plein d'erreurs avec OpenMP parce que justement ils ne sont pas obligés d'utiliser
default(none). Lorsque j'enseigne ce framework à des étudiants ou des ingénieurs, je les martèle avec une phrase que je répète régulièrement: « Utilisezdefault(none). Utilisezdefault(none). UTILISEZDEFAULT(NONE)!Il existe tellement de bugs stupides dans OpenMP que je pense qu'il serait bon que dans ta version des constructions parallèles, ce soit l'option par défaut (ce qui ne correspond pas au standard). Je fournis un exemple (bête) de pourquoi juste en dessous.
Exemple 1:
Ici, tout va bien. Exemple 2:
Ce code est buggé. Quand on connaît (raisonnablement) bien OpenMP, et qu'on pratique souvent, ça sautera assez vite aux yeux. Pour les autres, il y aura pas mal de grattage de tête avant de comprendre d'où vient l'erreur. Forcer
default(none)permet de pallier à ce genre d'erreur. Ça permet aussi un meilleur diagnostic à la compilation.