• [^] # Re: Agner Fog

    Posté par . En réponse au message Techniques d'optimisation C++. Évalué à 2.

    • paralléliser (seulement une fois que le code est bien optimisé pour un cœur, car c'est sur un cœur que les gains sont les plus importants : avec plusieurs cœurs la concurrence pour les cache est beaucoup plus rude, sans compter les besoins en communication entre les cœurs ! ). C'est une étape parfois difficile si le code n'est pas un peu pensé pour au début, qui peut donc nécessiter pas mal de refactoring.

    Oui, c'est parfois difficile parce que c'est très tard pour le faire, un bon algo séquentiel parallélisé ne donne pas nécessairement un bon algo parallèle... Je modifierais ta hiérarchie ainsi :

    Cela dit je rejoins les avis postés plus haut : dans l'ordre, pour optimiser un code de calcul, il faut
    0. déterminer les performances que l'on veut atteindre et les ressources qui pourront être utilisées
    1. prendre le bon algorithme (avec la bibliothèque standard C++, prendre le bon conteneur)
    2. mesurer ce qui prend vraiment du temps (sous Linux, perf est ton ami !)
    3. optimiser, dans l'ordre selon moi :
    [...]

    Please do not feed the trolls