Augmenter vitesse d'exécution - C++ - Programmation
Marsh Posté le 23-12-2004 à 13:20:57
Bonjour,
Je ne suis par sûr que ton topic soit dans la bonne catégorie (quel rapport avec le c++ ?)
Par contre je suis intéressé par tes optimisations de la librairie NTL. Tu peux donner des détails ?
Pour booster un programme de calcul numérique tu peux aussi utiliser plusieurs ordinateurs reliés à un serveur (je crois qu'on appelle ça un 'cluster') afin de répartir la charge du travail.
Marsh Posté le 23-12-2004 à 13:36:41
L'idée du cluster me déplait et, surtout, ça n'est pas facile à mettre en place : il faut centraliser le système à travers un serveur, donc créer des programmes-clients et le programme-serveur, puis trouver des gens pour télécharger et faire tourner le client, etc.
Je n'ai pas optimiser la librairie NTL elle-même mais l'algo qui l'utilise dans mon programme. Mais pour "booster" un peu NTL je crois qu'il faut l'utiliser avec GMP (une autre librairie : http://www.swox.com/gmp/).
J'ai posté ce topic ici parce que mon programme est écrit en C et parce que je crois que beaucoup de développeurs sont intéressés par l'idée d'accélérer l'exécution de leur programme...
Marsh Posté le 23-12-2004 à 13:09:47
Bonjour,
Je "m'amuse" avec des nombres premiers de très grande taille. Le temps d'exécution de mon programme est très long. Pour aboutir, il faut souvent de 2 à 4 semaines. J'ai optimisé l'algo à fond! (avec l'aide du concepteur de la librairie que j'utilise : NTL. voir www.shoup.net/ntl/)
Je cherche donc à "recenser" les différents moyens qui pourraient me permettre de grapiller un peu de temps. Hélas, je n'y connais presque rien en hardware...
Je fais appel à vous : quelles sont les solutions pratiques pour augmenter la vitesse d'exécution d'un programme ?
J'ai pensé à la mémoire RAM... est-ce utile?
J'ai aussi pensé au cache... est-ce que ça peut faire qqchose?
Je sais qu'il faut aussi combiner au mieux le couple Carte Mère (CM) - Processeur. Ainsi un gros processeur P4 équipé d'une CM à 133 MHz n'aura que de maigres performances... mais un proc à 1 GHz doublé d'une CM à 800 MHz pourra donner toute sa puissance.
(Corrigez-moi si je me trompe.)
Il existe aussi l'overclocking. (Mais bon, ça génère des erreurs et c'est pas souhaitable dans le cas de "calculs purs"...)
Merci pour vos idées!