Café In: A quoi ca sert la recherche sur la programmation? Comment peut on faire travailler des ordinateurs ensemble? Ludovic Henrio SCALE TeamSCALE Team.

Slides:



Advertisements
Présentations similaires
Yassine Lakhnech Prof. UJF Verimag
Advertisements

Introduction. Les pointeurs Bête noir des programmeurs Pas daide de Visual Studio Sauf en utilisant les « break point » Pas toujours intuitif Facile de.
Les Robots dans le monde
Systèmes, algorithmes et applications: Efficacité du parallélisme. Gaétan Hains LIFO, Université d'Orléans Janvier 2001.
2002 Exploratoire ASTRÉE : Analyse Statique de logiciels Temps-RÉel Embarqués 1)Le problème considéré est de démontrer statiquement (à la compilation)
Première expérience d’utilisation des Web Services dans SmartTools Didier Parigot Projet OASIS INRIA Sophia www-sop.inria.fr/oasis/SmartTools Journée.
La machine virtuelle virtuelle utopie et/ou réalité ?
Projet FIACRE 1 ACI Sécurité InformatiqueToulouse, novembre 2004 FIACRE Fiabilité des Assemblages de Composants Répartis Modèles et outils pour lanalyse.
Yann Chevaleyre et Jean-Daniel Zucker
L'ORDRE ? ... !!!.
J’apprends à m’exprimer en maths ...
UML (Unified Modeling Langage)
J ’ai appris qu’on peut en apprendre beaucoup sur une personne, juste de la façon dont elle réagit devant trois situations : un jour de pluie, un sac.
J’ai appris qu’on peut en apprendre beaucoup sur une personne, juste de la façon dont elle réagit devant trois situations : un jour de pluie, un sac de.
AIMER Ce n’est pas de grandes déclarations, ce sont des petites choses simples et sans raison…
Musique: Je pense à toi Interprété par Richard Abel Cliquer pour avancer.
IGC Informatique de gestion et de communication
Initiation à la programmation et algorithmique
Prier.
Aimer Ce n’est pas de grandes déclarations, ce sont des petites choses simples et sans raison…
Poussez pour la vie !.
La gestion d’une équipe vie scolaire
Architecture de grille générique, multi-
Concepts de base : la Classe Pour faire une comparaison simple, une classe serait a priori, une structure C avec des variables et des fonctions.
Initiation à la conception de systèmes d'information
Tests unitaires et fonctionnels
AIMER Ce ne sont pas de grandes déclarations,
AIMER Ce n’est pas de grandes déclarations, ce sont des petites choses simples et sans raison… Vue sur pps-humour.com.
Paradigmes de Programmation
Techniques de test Boulanger Jean-Louis.
La loi des signes.
QUE TU NE VEUX PAS PERDRE EN 2011,
CSI3525: Concepts des Languages de Programmation
AIMER Ce n’est pas de grandes déclarations, ce sont des petites choses simples et sans raison…
À une personne exceptionnelle…
À une personne exceptionnelle…
COEUR   DONNE CE COEUR À TOUT CEUX QUE TU NE VEUX  PAS PERDRE EN 2008, INCLUANT MOI SI TU TIENS À MOI, ESSAIE D'en RECEVOIR 12, C’EST PAS FACILE.
Interprété par Richard Abel
Écrit et illustré par Éliane Gagné
Programmation non procédurale Le projet ECOLE 2000
Sensibilisation a la modelisation
LA VOIE.
Paradigmes des Langages de Programmation
8INF856 Programmation sur architectures parallèles
Algorithmes et Programmation
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Des stratégies de lecture aidantes en mathématique 15 octobre 2009 Francine Carle, conseillère pédagogique de français Jean-Luc Lemieux, conseiller pédagogique.
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Master HTTP Créator LARNS Corporation Membres : ALFOSEAJean-FabienChef de Projet LEROGNONRenaudDesigner N'DOYEAssaneWebmestre RONCAGLIAThomasRelation Publique.
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Intro en dessin.
J. Cardoso — C. Sibertin-Blanc — C
Initiation à la conception des systèmes d'informations
1 Vers la gestion de la cohérence dans les processus multi-modèles métier Wolfgang THEURER Ecole Nationale Supérieure d’Ingénieurs des Etudes et Techniques.
Mettre le son Arrête toi deux secondes. Nounours, comment s ’appelle ce joli pays en bas ? Il s ’appelle la France.
Aimer... Ce n’est pas de grandes déclarations;
AIMER Ce n’est pas de grandes déclarations, ce sont des petites choses simples et sans raison…
À une femme exceptionnelle…
La Méthode de Résolution de Problème
développeur informatique
Cours de portfolio H-EM A2015
« déconnade » 2009 COEUR DONNE CE CŒUR À TOUT CEUX QUE TU NE VEUX PAS PERDRE EN 2009, INCLUANT MOI SI TU TIENS À MOI, ESSAIE DANS RECEVOIR 10, C’EST.
Dániel Darvas (CERN BE-ICS-PCS) Spécification formelle pour les API CERN-ESTEREL séminaire 21/01/2016, CERN Travail conjoint avec B. Fernández, E. Blanco,
De quoi parle t’on. Pour aller plus loin
PRÉSENTATION AGL LES TESTS LOGICIELS LES TEST LOGICIELS 1 Mickael BETTINELLI Brandon OZIOL Gaétan PHILIPPE Simon LUAIRE.
UNITÉ 13 |ÇA SERT A TOUT! Quiz/composition: Lundi 21 Avril.
Méthodes Agiles Synthèse. TP 1 : Packaging Réfléchir avec le client aux caractéristiques du produit Permet de rêver et donc de motiver Permet d’avoir.
Élaboration d’un référentiel de compétences
Transcription de la présentation:

Café In: A quoi ca sert la recherche sur la programmation? Comment peut on faire travailler des ordinateurs ensemble? Ludovic Henrio SCALE TeamSCALE Team (INRIA) - UNS – I3S – CNRS(INRIA) - UNS – I3S – CNRS Sophia AntipolisSophia Antipolis

2 Pourquoi faire travailler des ordinateurs ensemble?

« travailler » = effectuer une tache, i.e. un programme/une application (pas seulement accéder à des données) 3

Aller plus vite / faire plus de calculs Par exemple: Math (e.g. math financières), images … Plusieurs types de problèmes:  « massivement parallèle » = un problème très facile à paralléliser, par exemple « compter le nombre de … »  Problèmes de synchronisation (communiquer plus ou moins fréquemment) Par exemple « trouver le … le moins cher » 4

Aller plus vite / faire plus de calculs Math (e.g. math financières), images … Plusieurs types de problèmes:  « massivement parallèle » = un problème très facile à paralléliser, par exemple « compter le nombre de … »  Problèmes de synchronisation (communiquer plus ou moins fréquemment) Par exemple « trouver le … le moins cher » 5

Traiter des problèmes volumineux Parfois le problème à résoudre est juste trop gros:  Une recherche internet (google)  L’exploration d’un grand graphe (problème de parcours/model-checking) Les problèmes modernes du « big data » mélangent gros problème et calcul 6

Le problème est par nature distribué Personnes ou données à plusieurs endroits Le problème est la synchronisation et la cohérence plutôt que la rapidité … et il y a d’autres raisons … e.g. redondance (tolérance aux pannes) 7

8 Comment faire travailler des ordinateurs ensemble? La programmation distribuée

9

10

Programmer des systèmes distribués Programmer c’est définir des procédures à suivre Programmer c’est prévoir Programmer c’est être précis et complet Donc c’est difficile … surtout quand Les tâches sont faites en parallèle en prenant plus ou moins de temps Certaines tâches peuvent échouer 11 1.Prévoir budget 2.Réserver un billet 3.Faire demande INRIA 4.Faire demande I3S … 5. Faire retour mission Les choses ne devaient pas arriver dans cet ordre là! Tiens! Ca répond pas …

Les langages de programmation Permettre aux gens de programmer des systèmes et des algorithmes (distribués). Etre facile d’utilisation mais contraindre le programmeur à écrire des programmes justes. Permettre au programmeur et/ou au programmes d’être efficace … un subtil équilibre à trouver. 12

Acteurs ou Objets actifs: les principes 13 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.…….. Akka Erlang Orleans ABS Creol JcoboxRebecca Salsa ProActive Encore Scala actors

Acteurs ou Objets actifs: les principes 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.……..

C’est quoi un futur? 15 1.Prévoir budget 2.Réserver un billet 3.Faire demande INRIA 4.Faire demande I3S … 5. Faire retour mission 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.…….. I3S

C’est quoi un futur? 16 1.Prévoir budget 2.Réserver un billet 3.Faire demande INRIA 4.Faire demande I3S … 5. Faire retour mission 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.……..

1.………. 2.…… 3.…… 4.……. 5.…….. Synchronisation? 17 1.Prévoir budget 2.Réserver un billet 3.Faire demande INRIA 4.Faire demande I3S … 5. Faire retour mission 1.………. 2.…… 3.…… 4.……. 5.……..

1.………. 2.…… 3.…… 4.……. 5.…….. Synchronisation? 18 1.Prévoir budget 2.Réserver un billet 3.Faire demande INRIA 4.Faire demande I3S … 5. Faire retour mission 1.………. 2.…… 3.…… 4.……. 5.…….. 1.………. 2.…… 3.…… 4.……. 5.…….. Tu as oublié de me donner les dates de ta mission

Les particularités de ProActive Librairie Java Communication transparente Synchronisation transparente Futurs transmis de façon transparente Du parallélisme local, mais à l’échelle de la tâche (message), et de façon controllée Je peux répondre à mes s en même temps que je remplis mon retour de mission 19 1.… … …. 2.… … 3.… … 4.… …. 5.… ….. 1.… … …. 2.… … 3.… … 4.… …. 5.… …..

20 Comment éviter les bugs? La recherche sur les langages de programmation L’apport des méthodes formelles

Pourquoi y a-t-il des bugs? Qui n’a jamais fait d’erreur? Programmer c’est difficile Les langages utilisés sont très permissifs La recherche en langage de programmation c’est: Fournir des langages plus expressifs, plus abstraits, plus puissants, plus sûrs (oui c’est contradictoire) Fournir des outils pour mieux programmer (compilateurs, prouveurs, testeurs, etc.) 21

La solution: les outils de vérification de programmes Le compromis est dur a trouver entre:  Précision  Facilité d’utilisation  Restrictions sur les programmes vérifiables 22 Assistants de preuves Analyse statique Model- checking Test

Quelques points positifs SDL-Fredhopper et ABS (e-commerce) 23 industriel Langage académique

Quelques points positifs Un bug découvert avec KeY 24

L’approche Scale Notre but: rendre la vie des programmeurs plus facile Ce qu’on fait: ProActive: une librairie Java pour faire des objets actifs  Facile d’utilisation  Bien intégré avec Java  Efficace mais sûr Des outils de vérification faciles à utiliser  Plugin Eclipse  Notation « à la UML »  Model-checking et génération de code Des preuves sur le modèle de programmation (ASP) Des applications efficaces Du Cloud, du big-data et de la simulation 25

Perspectives (utopiques?) Présenter une vue unifiée des modèles à Acteurs  Meilleure visibilité (industrielle)  Meilleur langage de programmation (efficace en concurrent et distribué, expressif et facile à programmer de façon sûre) Donner les moyens à la recherche de fournir des outils de vérification complets et conviviaux Augmenter le nombre de programmes vérifiés/prouvés Fournir des solutions sûres aux problématiques modernes (Cloud, Big data) 26