• Aucun résultat trouvé

La reproductibilité du calcul

N/A
N/A
Protected

Academic year: 2022

Partager "La reproductibilité du calcul"

Copied!
34
0
0

Texte intégral

(1)La reproductibilité du calcul Konrad HINSEN Centre de Biophysique Moléculaire, Orléans, France et Synchrotron SOLEIL, Saint Aubin, France. 18 janvier 2021. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 1 / 34.

(2) Pourquoi tout le monde parle de reproductibilité ?. Royal Society of London for Improving Natural Knowledge (1663) Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 2 / 34.

(3) Pourquoi tout le monde parle de reproductibilité ?. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 3 / 34.

(4) Pourquoi tout le monde parle de reproductibilité ? Reproductibilité : preuve de rigueur qui inspire confiance. Un résultat non-reproductible suggère... ... une description incomplète ... une maîtrise insuffisante des techniques ... une erreur ... une fraude. Ou encore... ... une prise insuffisante sur les sujets d’étude (souris, étoiles, ...). Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 4 / 34.

(5) La trinité de la reproductibilité Reproductibilité expérimentale Refaire une expérience d’après la description publiée Obtenir des résultats suffisamment proches. Reproductibilité statistique Refaire une étude avec un autre échantillon ou une autre technique Inférer des conclusions suffisamment proches. Reproductibilité computationnelle Refaire un calcul à l’identique Obtenir des résultats identiques. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 5 / 34.

(6) D’où vient la crise ?. Les axes du progrès en science : nouveaux phénomènes moins d’incertitudes plus de rigueur Manque de rigueur, surtout en statistique et en calcul. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 6 / 34.

(7) Reproduire ou répliquer ? Réplicabilité. Reproductibilité Niveau technique. Niveau scientifique. Est-ce bien fait ?. Est-ce la bonne chose à faire ?. Évaluation simple. Évaluation laborieuse. Réponse simple : oui/non. Réponse complexe : si.... Vérification. Validation En calcul scientifique :. Même code. Nouveau code. Mêmes paramètres. Mêmes paramètres. Mêmes données. Mêmes données (ou pas). Résultat identique ?. Résultat équivalent ?. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 7 / 34.

(8) Reproduire ou répliquer ?. La méthode scientifique demande la réplicabilité. Pour examiner la réplicabilité il faut d’abord assurer la reproductibilité.. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 8 / 34.

(9) L’histoire de l’eau surrefroidie. A.G. Smart, Physics Today, 2018. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 9 / 34.

(10) Les enjeux de la reproductibilité en calcul scientifique. Être sûr de ce qui a été calculé. Pouvoir vérifier le calcul. Pouvoir adapter le calcul. Particularité du calcul : déterminisme (sauf calcul parallèle). Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 10 / 34.

(11) C’est quoi un calcul ?. Vue globale de la machine de Turing en Légo du projet Rubens. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 11 / 34.

(12) C’est quoi un calcul ?. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 12 / 34.

(13) C’est quoi un calcul ?. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Data. Data. Code. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 13 / 34.

(14) C’est quoi un calcul ?. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Data. Data. Program. Environment. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 14 / 34.

(15) Le point de vue du chercheur. Input 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. Data. Program. Environment. Konrad HINSEN (CBM/SOLEIL). my research my colleagues' code. stuff I don't care about. La reproductibilité du calcul. 18 janvier 2021. 15 / 34.

(16) Que fait ce programme ? data_analysis.py from datalib import Dataset points = [ ( 1 , 1) , ( −1, 1) , (2 , 4)] data = Dataset ( ) for x , y in points : i f x > 0: data . add_value ( y ) print ( data . average ( ) ). Réponse rapide : Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 16 / 34.

(17) Il faut bien connaître ses bibliothèques et langages datalib.py class Dataset ( object ) : def _ _ i n i t _ _ ( s e l f ) : s e l f . values = [ ] def add_value ( s e l f , value ) : s e l f . values = [ value ] def average ( s e l f ) : return sum( s e l f . values , 0 ) / len ( s e l f . values ) Quelle surprise ! add_value ne garde que la dernière valeur ! Le résultat de data_analysis.py est donc 4. Plus précisement : 4 en Python 2 mais 4.0 en Python 3. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 17 / 34.

(18) Donner un sens aux bits. Input 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. Data. Program. Environment. Konrad HINSEN (CBM/SOLEIL). zeros and ones interpretation of the data. interpretation of the program. La reproductibilité du calcul. 18 janvier 2021. 18 / 34.

(19) Parenthèse : la sécurité informatique. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 19 / 34.

(20) Provenance d’un calcul. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Data. Data. Program. Environment. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 20 / 34.

(21) D’où vient le programme ?. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Source code Compiler. Program. Environment. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 21 / 34.

(22) Et d’où vient l’environnement ?. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Package N+1. Environment N+1. Package manager. Environment N. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 22 / 34.

(23) Bon, alors, d’où viennent les paquets ?. Input. Output. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 111001001011110001100110000101 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 011001010100101011000001001100 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 100010110001100000111001100010 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 010110010001000101110111001010. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Package source for X. Package X. Build system Build environment for X. Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 23 / 34.

(24) En résumé.... Input. Output. Data Program. 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 Package Build environment 111001001011110001100110000101 source A for package A 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 Package Build environment 011001010100101011000001001100 source B for package B 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 Package Build environment 100010110001100000111001100010 000000111011100100100101010111 source C for package C 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 Package manager 010110010001000101110111001010 Build manager. .... Data. .... Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 24 / 34.

(25) Sans oublier.... Input Data Program. 100111100001001100110101101100 001010011101010111110001001101 010111101100011110111011110001 001100001110111000100100000111 110101100111001110100000100110 110111100111000011111101101111 Package Build environment 111001001011110001100110000101 source A for package A 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 Package Build environment 011001010100101011000001001100 source B for package B 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 Package Build environment 100010110001100000111001100010 000000111011100100100101010111 source C for package C 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 100000011100100111101101011011 Package manager 010110010001000101110111001010 Build manager. .... 110111100111000011111101101111 Package Build environment 111001001011110001100110000101 source A for package A 011100001000010001011110000010 110101110011101111001010100111 111000101110011001101101001001 Package Build environment 011001010100101011000001001100 source B for package B 110100111001011111100001011101 011110111110001111011110101101 000001110110011001010101011100 Package Build environment 100010110001100000111001100010 source C for package C 000000111011100100100101010111 000010000001100001000010110110 101111101111000111100101110101 100101010100001001110100010001 011110011010100101111011110101 100011000110110001011101100110 110100000100000011011000001101 Package manager 100000011100100111101101011011 010110010001000101110111001010 Build manager. .... .... Output 000000111011001010000100111011 110000110111011101111110101010 000110010101111100101110110100 001110110011010110000101011010 111101111100000100010111010111 111010001000010010111100111001 111001100101000111101000011100 101111110000011011011011110001 100100110111101111000101010100 111110011010111011010011011100 111011100011110101011111000100 010111011010100100011110100011 001111000001111110001011100111 101101100000100011100111110011 001101000010011000110011000011 101011110111101010000011010001 010111100101010010011100011011 001010101100101000001010000110 100000101001110011010000011100 001110011000111111111000001100 100100010100000110001011010000 010110010111101001000010100010 101011110001001001010010111000 011000100000010000000011100111. Data. .... Computer by Creative Stall from the Noun Project. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 25 / 34.

(26) Un autre point de vue. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 26 / 34.

(27) La reproductibilité, c’est possible !. 1. Point de départ : un environnement préservé, archivé, récupérable à l’identique à tout moment.. 2. Conserver une trace précise de chaque étape d’exécution : Programme exécuté. Données d’entrée.. 3. Conserver une trace précise de l’ordre des étapes.. Deux implémentations : Nix, Guix. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 27 / 34.

(28) Les erreurs de débutant Références imprécises aux composantes Python 3.8 or later https://github.com/python/cpython, commit b5711c940f70af89f2b4cf081a3fcd83924f3ae7 swh:1:rev:b5711c940f70af89f2b4cf081a3fcd83924f3ae7. Oublier l’environnement initial requires Python 3.8 and NumPy 1.17.3 packages python and python-numpy in Guix commit 88c2e72af023fae0325bfdaf7078a1cd263f9ffc. S’appuyer sur un environnement non pérenne docker pull python:3.8.7-alpine-3.11 guix time-machine -commit=88c2e72af023fae0325bfdaf7078a1cd263f9ffc environment -ad-hoc python python-numpy Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 28 / 34.

(29) Les trois défis de la reproductibilité numérique. L’arithmétique à virgule flottante Le calcul parallèle Comment réconcilier la manipulation interactive avec la reproductibilité ?. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 29 / 34.

(30) L’arithmétique à virgule flottante Standardisé en 1985 : norme IEEE 754 Universellement acceptée aujourd’hui Ses opérations sont précisément spécifiées... ...et parfaitement déterministes Donc : aucune particularité pour la reproductibilité ! Donc// /////// : aucune ///////////////////////////// particularité/////// pour//// la ////////////////////// reproductibilité//! Aucun langage de programmation donne un accès direct aux opérations IEEE 754. Les optimisations modifient les résultats. Le programmeur n’a pas le contrôle complet sur les résultats. Il faut intégrer la compilation dans le calcul reproductible : même compilateur, mêmes options. Guix s’en charge. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 30 / 34.

(31) Le calcul parallèle : l’adaptation à la machine. Parallélisation : découpe du calcul en morceaux adaptées à l’architecture de la machine nombre de processeurs type de processeurs taille de la mémoire de chaque noeud Ces paramètres font partie de la définition du calcul, il faut les préserver. Peu de support par les outils d’aujourd’hui. Inconvénient : il faut une machine presque identique pour reproduire le calcul.. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 31 / 34.

(32) Le calcul parallèle : non-déterminisme Pacte avec le Diable (espoir d’un) gain de temps perte de contrôle sur l’ordre des opération −→ perte de reproductibilité pour les flottants évitable, on peut faire du calcul parallèle déterministe. Que faire ? Sauver la réplicabilité : reduire l’impact des aléas sur les résultats. Exemple : ReproBLAS Travail en algorithmique numérique Effort plus important que pour la reproductibilité du calcul déterministe ! Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 32 / 34.

(33) Au-delà de la reproductibilité Que fait ce programme parfaitement reproductible ? #define _ F-->00 || F-OO--; long F=00,OO=00; main(){F_OO();printf("%1.3f\n", 4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_ }. International Obfuscated C Code Contest, 1988 Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 33 / 34.

(34) Résumé. La reproductibilité est une source de confiance dans un résultat. Il y en a d’autres, complémentaires. Pour le calcul, elle peut être assurée automatiquement... ... si nous faisons l’effort pour y arriver. Pour le calcul parallèle, le déterminisme reste possible... ...mais les outils d’aujourd’hui ne l’encouragent pas. Prochain défi : la compréhensibilité. Konrad HINSEN (CBM/SOLEIL). La reproductibilité du calcul. 18 janvier 2021. 34 / 34.

(35)

Références

Documents relatifs

Ont droit à l’allocation les personnes indépendantes et les personnes dont la position est assimilable à celle d’un em- ployeur qui doivent limiter significativement leur

Une prise en charge psychologique de plusieurs mois peut vous être proposée avant et après

Une bonne organi- sation du développement peut pourtant apporter des gains en temps, en énergie et en sérénité, que l’on soit développeur « isolé » (personne implémentant un

accomplir dans sa profession ou son domaine d’activité le travail qui peut raisonnablement être exigé de lui, si cette perte résulte d'une atteinte à sa santé physique, mentale

La clé de la performance d’un code parallèle R est la répartition équilibrée des tâches à réaliser entre les processus fils, de façon à minimiser les temps d’attente. →

1 Pour les ayants droit qui exercent une activité salariée au moment de la naissance du droit à l’allocation, l’employeur atteste le montant du salaire déterminant pour le

1 A l’exception de l’allocation pour frais de garde, la caisse de compensation déduit, des allocations versées par elle à une personne de condition indépendante ou à une

En même temps, les restructurations entraînées par la crise dans la sphère productive : le remplacement de l’exploitation de l’étain par celle des minerais complexes