• [^] # Re: Logiciels libres

    Posté par . En réponse à la dépêche Agrégation et logiciels libres. Évalué à 1.

    Les compilateurs ont déjà une vision globale, par exemple l'option -ipo de ifort.

    J'ait fait du Fortran orienté objet pendant 3 ans et sur un code de 15 000 lignes j'ai compris ma douleur avec -ipo. J'avais des classes avec des getter qu'il fallait absolument inliner pour la performance, d'où l'utilisation de -ipo. Malheureusement, avec ce code qui restait de taille raisonnable, la passe -ipo prenait parfois 20 minutes :-(. Donc, -ipo est à utiliser avec parcimonie.

    Quand je parlais de vision globale, j'imaginais un compilateur capable de transformer automatiquement des arrays of struct en struct of arrays ou des optimisations qui nécessitent un peu de recul. C'est la que les compilateurs n'ont quasiment aucune compétence.

    La FFTW est géniale mais va l'utiliser sur 10_000 coeurs ;-)

    Je fais du conseil en HPC et des gens qui utilisent 10 000 coeurs, je n'en vois pas tous les jours. On les voit bien sur dans les plaquettes publicitaires, au CEA ou dans certaines universités mais il la plupart des codes scientifiques tournent sur des bonnes workstation (genre bi-Xeon) voire souvent des portables ;-)

    Au passage, si vous voulez vraiment savoir ce que les gens utilisent en HPC, vous pouvez lire ceci : http://www.amazon.fr/High-Performance-Parallelism-Pearls-Programming-ebook/dp/B00PLOC4D6/ref=sr_1_cc_1?s=aps&ie=UTF8&qid=1428767960&sr=1-1-catcorr&keywords=parallel+pearls . On y voit du Fortran, C++ (qui ressemble surtout à du C, sans std::vector par exemple), OpenMP, MPI.