Bonjour à tous,
Je ne savais pas trop ou poster mon message, j’espere que ce n’est pas trop hors de propos.
J’aimerais connaitre la formule pour calculer le nombre d’operations qu’effectue un processeur. Par exemple un processeur 2ghz effectue combien d’operation / seconde ?
Et quelle est l’influence de la mémoire sur le nombre d’operation effectué ?
J’ai essayé sur google mais je ne trouve rien, je dois pas chercher ou il faut :ane:
Bon vu comme ca, c’est sur que le forum “programmation” ne semble pas tres approprié, mais c’est pour connaitre le temps d’execution d’un algorithme, en fonction de sa complexité et de l’ordinateur ( processeur / mémoire ).
Merci d’avance :jap:
Le plus simple et le plus connu est le dhrystone.
A noter que tu ne peux pas poser la question comme tu le fait : 10 processeurs différents à 2 ghz peuvent donner des résultats différents car plus que la fréquence de fonctionnement, c’est l’architecture du processeur qui influe grandement.
Merci de cet element de réponse.
Pour tout dire c’est notre prof de fac, qui en “introduction” de son cours de complexité nous demande ca. En gros il ns pose un probleme simple, nous demande quel algorithme nous utiliserions pour le résoudre et nous demande combien de tps cela prendrai sur notre machine ( en précisant le processeur et la mémoire ).
Pour le processeur, on peut donner plus ou moins une “formule” du moins avec ce qu’il ns a montré, mais je ne vois pas l’influence de la “mémoire”. D’ailleurs de quelle mémoire veut il parler ? :ane:
Si si c’est bien de la prog.
faire un calcul de complexité en se basant sur le temps d’execution des instructions me semble assez difficile car il faut que ton algorithme soit directement écrit en instruction assembleur (ce qui ne dois pas être le cas quand on écrit un algorithme).
Bref pour la culture, mais sans forcément l’appliquer à un calcul de complexité, il faut savoir que:
- toutes les instructions ont un “temps de cycle” exprimée en nombre de cycle d’horloge (un CMP est plus long qu’un INC, par exemple 10 cycle pour l’un, un seul pour l’autre) associé à la fréquence processeur, on peut en déduie le temps exact d’exacution d’une instruction…
à cela près que les instruction sont mises en pipeline et peuvent donc être exécutée plus rapidement.
- les temps d’accès à la mémoire sont différents et dépendent de la fréquence FSB qui est inférieure, et ralenti donc le processeur en général. l’accès à la mémoire à lieu sur toutes les instructions MOV (pour charger une variable dans un registre)
- on exprimait la puissance des 1ers ordinateurs en MIPS, mais ça ne tient pas compte des opérations flottantes qui sont plus longues
- on calcule donc la puissance des supercalculateur en MFlops, ou en GFlops…
les 2 dernières mesure permettent d’avoir des ordres de grandeurs, sans chercher à être très précis.