Bonjour à tous,
J’ai un problème à soumettre à la liste, désolé si ce problème est connu, je ne l’ai pas trouvé dans les FAQ…
Il semble doubler la durée de calcul des fonctions trigonométriques de base
dans la libc6…
La semaine dernière j’ai voulu mettre à jour ma Debian testing 64 bits
basée sur un noyau 3.2.0-amd64 (et la librairie libm-2.13.so) pour utiliser la version courante de la testing (jessie)
basée sur un noyau 3.9.8-1-amd64 (et la libm-2.17.so, cf. apt-file search ‘libm-’).
Et l’un de mes programmes a vu son temps d’exécution doubler !!!
J’ai testé différents scénarios. J’ai testé sur une autre machine avec un autre processeur & matériel
et j’ai systématiquement obtenu le même résultat !!!
J’ai vérifié qu’il n’y avait pas de mélange de code 32 et 64 bits (je passe les détails…)…
Et finalement j’ai récupéré l’ancienne version de la libm, car mon programme utilise la libm de manière
intensive (il ne fait quasiment que des calculs trigonométriques en boucle) et j’ai
obtenu le résultat suivant en switchant simplement les versions de libm
(je n’ai enlevé ou ajouté aucune commande dans la séquence reprise ci-dessous).
Le test est effectué sous Debian Testing/Jessie (amd64, noyau 3.9.8-1,
processeurs testés intels I5 et I7):
rm /lib/x86_64-linux-gnu/libm.so.6
ln -s /lib/x86_64-linux-gnu/libm-2.13.so /lib/x86_64-linux-gnu/libm.so.6
/usr/bin/time -v ./loopmodel1
Command being timed: "./loopmodel1"
User time (seconds): 297.27
System time (seconds): 0.00
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 4:58.12
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 496
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 173
Voluntary context switches: 1
Involuntary context switches: 25199
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
rm /lib/x86_64-linux-gnu/libm.so.6
ln -s /lib/x86_64-linux-gnu/libm-2.17.so /lib/x86_64-linux-gnu/libm.so.6
/usr/bin/time -v ./loopmodel1
Command being timed: "./loopmodel1"
User time (seconds): 633.36
System time (seconds): 0.00
Percent of CPU this job got: 99%
Elapsed (wall clock) time (h:mm:ss or m:ss): 10:35.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 540
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 0
Minor (reclaiming a frame) page faults: 183
Voluntary context switches: 1
Involuntary context switches: 53690
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
Savez-vous s’il y a un bug identifié dans la librairie libm-2.17.so ?
Mon problème est-t’il ailleurs ?
Quelqu’un a observé le même “problème” ?
Merci par avance,
BB