Les décimales de Pi : déterminer le temps de calcul

Intro

Les mathématiciens qui s'intéressent au calcul numérique semblent avoir deux préoccupations principales : Les quelques exemples présentés dans la page précédente montrent que l'exactitude peut varier : G.B. a intégré le calcul et l'affichage du temps passé dans son programme. Mais comment déterminer ce temps passé quand on utilise bc ?

Le programme time

Passé les difficultés premières, le monde Linux -héritier en cela de la tradition d'Unix- se montre généreux en outils spécialisés. Chacun d'eux doit faire, bien, une tâche unique et être capable, via le shell, de s'associer à d'autres.

Une recherche dans la liste des outils fournis avec la distribution Suse 9.1 permet de découvrir le programme time.

Sa syntaxe d'utilisation peut être comprise via cet exemple, appliqué à bc :

alain@linux:~/Desktop> time bc -l
bc 1.06
....
scale=500
4*a(1)
3.1415926535897932384626433832795028841971693993....

quit

real 0m18.138s
user 0m0.297s
sys 0m0.008s

Interprétation de ce résultat

Afin de vérifier ce que je comprenais du man time, j'ai effectué plusieurs calculs en variant les paramètres d'utilisation de bc.
J'en conclus les choses suivantes :
real désigne le temps passé dans le programme bc (même pendant que celui-ci ne fait rien)
user désigne le temps du calcul.

Pour la suite, c'est ce résultat que nous donnerons pour apprécier la rapidité d'un mode de calcul.

Déterminer le temps de calcul en utilisant un programme

Le "langage bc" peut être utilisé en mode interactif (et c'est ce qui a été montré précédemment), mais aussi par l'intermédiaire de programmes enregistrés au format texte.
Il est sensible aux caractères cachés introduits par certains éditeurs conviviaux tels que Kate. Compte-tenu que les programmes enregistrés seront courts, il vaut mieux utiliser Vi ou Emacs, ou paramétrer son éditeur en conséquence (sous réserve d'y parvenir...).

Un programmes avec bc

scale=500
4*a(1)
quit
Enregistrons-le dans le fichier pi1.bc
Nous pourrons l'éxécuter avec :
bc -l pi1.bc
Et cela marche...

Ajouter la mesure du temps

C'est facile... Exemple :
alain@linux:~> time bc -l pi1.bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
3.1415926535897932384626...

real 0m0.315s
user 0m0.295s
sys 0m0.007s

A suivre ...


Réagir :lerautal