Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Performance Boucle For Parallèle

Résolu !
Accéder à la solution

Bonjour,

 

Je viens vous faire part de mon étonnement face aux performances de la boucle "For" avec configuration d'itération en parallèle.
Lors de la réalisation d'un programme très rapide sous LV2014, j'avais découvert cela, et après un test unitaire rapide, je m'étais dit que c'était magnifique pour améliorer les performances sur des ordinateurs multi-coeur.
La phase d'euphorie passée, et un retour de performance utilisateur désastreux sur les performances de mon programm, j'ai jeté un oeil à mon programme, et après un nouveau test un peu plus poussé, je me rend compte que des que l'on résonne dans des boucles FOR imbriqué, les performances des itérations parallèles ne sont plus là bien au contraire.


Je partage avec vous mon VI de test afin de voir si le problème est uniquement du à mon poste, à une mauvaise interprétation du principe de boucle FOR.... ou autre.

Forcément ma pièce jointe est sous LV2014.


Bonne journée à tous.

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 1 sur 5
4 000 Visites

En règle générale, lorsque l'on fait des optimisations, il faut faire un benchmark pour évaluer l'impact des modifications. Les optimisations préconisées par NI comme les boucles parallèles doivent être évaluées au cas par cas, en effet, les comportements varient en fonction d'une multitude de paramètres. Seul la mesure des temsp d'exécution peut aider

Rodéric_L
Certified LabVIEW Architect
0 Compliments
Message 2 sur 5
3 996 Visites

Je suis entièrement d'accord avec toi pour des systèmes complexes. Par contre mon VI de test est tout de même très basique, et ne fais pas appel à des opérations complexes, enfin à mon sens.

 

Je viens d'avoir une idée, l'écart de performance est peut être dû à une allocation de mémoire sur évaluée, dans le cas des boucles à itération en parallèle.

 

Après, en effet, je fonctionne par benchmark pour optimiser mon code, à part cette fois là, où j'ai codé en rapide pour faire plaisir au client, et je suis passsé à côté de certains trucs.....


Cdt,

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
0 Compliments
Message 3 sur 5
3 993 Visites
Solution
Accepté par l'auteur du sujet Michael.C

Ha le code rapide pour faire plaisir au client... C'est toujours lui qui pose problème...

 

Même des optimisations simples doivent être "benchmarkées" (on a pas la maitrise du compilateur, qui au passage gère ses allocations mémoires et copies de données à sa manière qui n'est pas toujours reproductible (les algos sont très complexes))

Rodéric_L
Certified LabVIEW Architect
0 Compliments
Message 4 sur 5
3 990 Visites

 

Ha le code rapide pour faire plaisir au client... C'est toujours lui qui pose problème...


 

Et oui ....

Mais sinon notre vie de programmeur serait tellement monotone XD...

Mon poste avait aussi pour objectif de sensibiliser les personnes passant par là à cet aspect.


Bonne journée à tous.

Michael

“En science, la phrase la plus excitante que l'on peut entendre, celle qui annonce des nouvelles découvertes, ce n'est pas "Eureka" mais c'est "drôle"
Isaac ASIMOV
Message 5 sur 5
3 981 Visites