• AgoraVox sur Twitter
  • RSS
  • Agoravox TV
  • Agoravox Mobile

Signaler un abus

mick_038 15 juillet 2011 00:21
mick_038

L’erreur est souvent humaine, effectivement, cependant, il ne faut pas faire une confiance aveugle à l’informatique, mais plutôt en contrôler fréquemment le bon fonctionnement, et les bugs éventuels.
Pourquoi ?
Un CPU (un processeur, constitué de plusieurs millions de transistors, qui constitue le coeur de votre PC, de votre phone, etc...), calcule hyper-vite, par exemple une carte graphique moderne calcule en teraflops, soit 1000 milliards d’opération en virgule flottante par jour.
MAIS ses calculs sont faux......
Et là je sais que vous me regardez tous bizarrement.....
Oui, un ordinateur fait des calculs qui sont faux. Pas tous ses calculs, mais une grande partie.
Prenez par exemple la simple équation x=10/3 . Les plus puissants des calculateurs au monde, même tous réunis, ne sont pour l’instant pas capables de vous donner la vraie valeur de x. Ils pourront aller très loin après la virgule, des millions de chiffres après la virgule, mais ils ne vous donneront jamais la valeure exacte de x, pour la simple raison que celle-ci n’est pas finie. Et ça, les CPU, les FPU, et tous les calculateurs ( dont le langage natif est le binaire ne l’oublions pas), les valeurs non finies, ils les digèrent très mal...
Ils existent plusieurs normes de codage en virgule flottante pour aider les CPU dans leur calculs et leur précision, notamment la norme IEEE 754, http://fr.wikipedia.org/wiki/IEEE_754
mais à vrai dire ce ne sont qu’un ensemble de patch et de rustines, destiner à obtenir la meilleure approximation possible : au plus près, au zéro, vers plus l’infini, vers moins l’infini...
Le résultat n’en reste pas moins une approximation. Charge ensuite au programme, au logiciel, et non au matériel (le hardware) d’interpréter au mieux ce résultat. Par exemple, quand un programme comme mathematica vous donne un résultat de la forme de 10/3, c’est parce qu’on a codé en dur dans le programme que ce résultat n’est pas fini, et donc pas présentable. Sinon le proc calcule 3,3333333333333333333333333333333333333........

Vous me direz : et alors ?
Et alors, ce genre de problème n’était pas vraiment pénalisant du temps où les calculs en MégaFlops n’étaient encore qu’un rêve fou. Mais aujourd’hui, avec des calculs en teraflops, il s’agit de milliards d’approximations par seconde. Et des approximations divisées par des approximations auxquelles on soustrait des approximations, bref ça fait beaucoup d’approximations à la seconde. Et les logiciels ont de plus en plus de mal à « compenser » ces erreurs. D’ailleurs une bonne partie du temps processeur est utilisé pour compenser ces erreurs. Mais des fois ça marche pas, et le système plante, vous avez tous connu l’écran bleu de Windows par exemple, ou le blocage, ce qu’on appelle freeze, le pc qui ne répond plus....
Bref, cette « problématique » devient de plus en plus gênante au fur et à mesure de l’évolution des procs. Les normes ont été remise à jour, repensées, les programmes modifiés, recodés, mais pour l’instant, toujours pas de solution finale et définitive.
Si on ajoute à cela que les OS et logiciels n’ont pas bien suivi l’évolution des processeurs, y compris dans le milieu industriel (OS embarqué, contrôleur embarqué etc...), les taux de défaillances et pannes informatiques ont évoluées de manière assez inquiétante. Dans certaines industries, les programmes et contrôleurs informatiques fonctionnent encore en vieux mode DOS, en 16 bits, la plupart des programmes sont en 32. Mais le matériel, le hardware, lui, a évolué en 32 puis en 64 bits. Et, contrairement à ce que le marketing informatique veut faire croire, un OS ou un logiciel 32 bits sur un matos 64, ça génère pas mal d’instabilité. Qui se souvient du temps de XP sur les premiers P4 64bits ? il a fallu des dizaines de patchs pour le stabiliser. Vista ? Idem... Et croyez moi, on rencontre exactement les mêmes problèmes dans le milieu industriel. On patche des programmes, on colle des rustines, des correctifs, des « Services pack ». Et parfois arrive le bug que personne n’avait prévu. Selon l’environnement, cela peut être très grave...
Tout ça pour dire que la légende qui veut qu’un ordinateur ne puisse jamais faire d’erreur est fausse, et ne résiste pas au fait.
L’erreur est humaine, et l’informatique est loin d’en être épargnée.



Palmarès