Latence ADDQ

Atentes

1 cycle pour 1 ADDQ

Observations

Dépendant des machines sur le code originel: environ de 4 à 7 cycles
Lors de l’optimisation, le compilateur fait disparaitre l’instruction “jump” correspondant à la boucle for.

Le code assembleur généré optimise l’addiction constante “1” et retire le “ADDQ”.
Idée d’ajouter une variable aléatoire time pour le forcer à remettre des “ADDQ” et les “JMP”. Problème => l’appel système time correspond à 50 cycles avec une grande variance donc on ne peut pas utiliser cela pour forcer le compilateur à faire ce que l’on souhaite.

Solution => utiliser le mot clef “volatile” sur le variable constante “1” que l’on additionne à chaque passage de boucle pour dire au compilateur “attention cette variable peut changer de valeur à tout moment par n’importe qui” et le compilateur ne viendra pas essayer d’optimiser la boucle et son contenu.

Augmenter le rapport signal/bruit de la boucle for en faisant plus d’additions pour chaque passage dans la boucle et réduire la variable d’itération d’autant.

Raisonemment

Presentation

mail doit contenir: 1 pdf, le liens vers le dépot moule

dans la présentation doivent apparaître les résultats par machines càd pour chaque étudiant et avec le nom de chaque processeur (i5 5500…) 15min par groupe donc 3min par personnes, avec 5min de questions. Expliquer nos résultats, ce que l’on a mesuré et comment on l’a mesuré.