PDA

Voir la version complète : Précision sur les valarray


Mugy
27/07/2005, 23h06
Bonjour,

j'aimerais en savoir un peu plus sur la classe valarray fournie dans la stl.
Ma question principale est de savoir si son utilisation pour l'aplication d'une fonction par la méthode apply ( T function ( const T & ) ) à l'ensemble de ses membres à une incidence sur la rapidité du code. D'après le cours de Christian Casteyde, si j'ai bien compris, son but est d'optimiser le code pour que la fonction soit effectuée en parrallèle sur chaque membre du valarray. Cela peut-il s'apparenter à du multy-threading alors ? Si oui, y aurait-il moyen d'avoir une comparaison des performances entre ces deux méthodes (multy-threading et valarray ) ?

Merci :00000023:

Loulou
27/07/2005, 23h15
C'est assez "pointu" ce que tu demandes, surtout que les valarray sont très peu (voire jamais) utilisés. Intuitivement je ne pense pas qu'il y ait une quelconque optimisation de type multithread ou SSE ou que sais-je, mais en tout cas je te conseille de faire le test par toi-même pour en avoir le coeur net, à moins que quelqu'un ait de bonnes infos sur le sujet :)

Mugy
28/07/2005, 00h01
justement, j'étais à la recherche de la bonne info sur le sujet :p :D
Mais je suis en train d'essayer de réécrire mon code en utilisant les valarray pour vérifier si une optimisation a lieu :00000023:

ps : toute info est bonne à prendre ;)

Flamaros
28/07/2005, 00h15
D'apres une petite recherche rapide avec mon ami google, il semblerait effectivement que ca soit similaire au multithreading. Seulement la repartion des intructions est optimisee pour les systemes multi-core ou multi-processeur. Car d'apres ce que j'ai pus lire le multithreading est directement gere par ton OS, les ameliorations se situes surtout du au niveau de la gestion du cache des cores (pb de redondance ou autre).

Voila j'espere avoir bien compris les quelques articles que j'ai lu (en anglais).

Donc si tu travailles sur des machines multi-bidule y a des chances pour que ca soit plus rapide, mais fait tout de meme des testes. (dont on aimerait bien voir les resultats)

PS : il se peux que ca ne soit pas gere par tous les compilo.

Mugy
28/07/2005, 01h17
Merci, dès que j'ai des résultats ( si j'en ait ;) ) , je les poste ici.
Par contre si tu pouvais poster les liens de la documentation que tu as trouvé , je t'en serais reconnaissant. J'ai en effet trouvé très peu de documentation expliquant réellement les propriété de la classe. La plupart du temps il s'agit essentiellement d'une description des méthodes sans plus :00000025: .

Merci

Loulou
28/07/2005, 10h05
Si tu veux les avis les plus éclairés tu peux aussi aller poser ta question sur fclc++ (newsgroup fr.comp.lang.c++), c'est là que traînent tous les "gourous" du C++.

Flamaros
28/07/2005, 13h49
Merci, dès que j'ai des résultats ( si j'en ait ;) ) , je les poste ici.
Par contre si tu pouvais poster les liens de la documentation que tu as trouvé , je t'en serais reconnaissant.
Merci

Si j'ai pas mis les liens c'est que j'ai fait le boulet et que j'ai fait un kill de mon mozilla (du meme coup j'ai arrete les recherches), ca me semble interessant surtout que j'utilise aussi pas mal les tableaux traite par une fonction unique (pour les tries,...)

Mais j'ai du tapper un truc comme "multithreading valarray performance" sur google.