Programmer plus vite sans calculer trop lentement: le langage Python pour le calcul scientifique

Dimension: px
Commencer à balayer dès la page:

Download "Programmer plus vite sans calculer trop lentement: le langage Python pour le calcul scientifique"

Transcription

1 Programmer plus vite sans calculer trop lentement: le langage Python pour le calcul scientifique Konrad HINSEN Centre de Biophysique Moléculaire (Orléans)

2 Un bref historique 1991: Python est publié 1994: premières applications scientifiques 1996: Numerical Python (devient NumPy en 2006) : - un grand choix de bibliothèques - deux colloques annuels: SciPy, EuroSciPy - premier livre épuisé au bout de deux mois - enseigné à plusieurs universités - des entreprises spécialisées

3 Quelques applications Astronomie ASTROLIB et PyFITS (Space Telescope Science Institute) Eléments finis FiPy (NIST) Neurologie Visualisation Vision Egg (Collaboration internationale) MayaVi (Prabhu Ramachandran) Bioinformatique BioPython (Collaboration internationale) Statistique Modular toolkit for Data Processing (Humboldt- Universität) Systèmes dynamiques SimPy (Collaboration internationale) Géographie Thuban (Intevation GmbH) Mathématiques SAGE (University of Washington)

4 Pourquoi Python? Travail interactif Développement rapide Développement incrémentiel Test, débogage Analyse interactif de données

5 Pourquoi Python? Travail interactif Simplicité du langage Syntaxe claire et nette Gestion automatique de la mémoire Tout est dynamique, il n y a rien à déclarer

6 Pourquoi Python? Travail interactif Simplicité du langage Orientation objet Structuration du programme en unités qui représentent un aspect du problème à résoudre Facilite les modifications et les extensions Démonstration

7 Pourquoi Python? Travail interactif Simplicité du langage Orientation objet Ouverture au monde Facile à interfacer avec le C/C++ et le Fortran Facile à interfacer avec d autres programmes Excellente portabilité

8 Pourquoi Python? Travail interactif Simplicité du langage Orientation objet Ouverture au monde Disponibilité de bibliothèques Calcul scientifique Lecture/écriture de données Internet Interfaces graphiques...

9 Pourquoi Python? Travail interactif Simplicité du langage Orientation objet Ouverture au monde Disponibilité de bibliothèques Ça fait plaisir!

10 Scénarios d usage

11 Langage de script

12 Langage de script Lire/écrire des fichiers perl, awk, grep, vi, emacs,...

13 Langage de script Lire/écrire des fichiers perl, awk, grep, vi, emacs,... Analyse de données, visualisation Matlab/Scilab/Octave, IDL, R

14 Langage de script Lire/écrire des fichiers perl, awk, grep, vi, emacs,... Analyse de données, visualisation Matlab/Scilab/Octave, IDL, R Gestion de tâches de calcul sh/bash, csh

15 Langage de script Lire/écrire des fichiers perl, awk, grep, vi, emacs,... Analyse de données, visualisation Matlab/Scilab/Octave, IDL, R Gestion de tâches de calcul sh/bash, csh Administration système sh/bash, csh, grep, awk, perl,...

16 Langage de script Lire/écrire des fichiers perl, awk, grep, vi, emacs,... Analyse de données, visualisation Matlab/Scilab/Octave, IDL, R Gestion de tâches de calcul sh/bash, csh Administration système sh/bash, csh, grep, awk, perl,... Avantages de Python: vrai langage de programmation bibliothèques utiles de qualité

17 Calcul exploratoire Analyse de données Visualisation Scripts simples et travail interactif Outils pratiques: IPython Emacs + Python mode matplotlib VPython Module pickle

18 Calcul exploratoire parallèle L analyse de données contient souvent beaucoup de parallélisme évident mais pas facile à exploiter. Python vous aide: Echange d objets arbitraires entre processeurs Plusieurs bibliothèques pour gérer le parallélisme: Scientific.DistributedComputing Pypar/PyMPI Scientific.BSP

19 Langage d intégration Scripts Python Interface Python Interface Python Interface Python Interface Python Bibliothèque Fortran Bibliothèque C Routines de programmes existants Programmes compilés Outils: swig, boost, f2py, PyFort, Pyrex

20 Langage de script intégré Interface graphique Module C++ Module C Fonction 1 Fonction 2 Fonction 3 Classe 1 Classe 2 Classe 3 Python Interface 1 Interface 2 Interface 3

21 Langage principal Programme principal Module Python Module Python Module Pyrex Module Python Optimisation Module C

22 Pensez Bibliothèques! Programme principal Bibliothèque Python Module 1 Module 2 Module 3 Bibliothèque Python Module 1 Module 2 Module 3 Bibliothèque Python Module 1 Module 2 Module 3 Une bibliothèque est plus utile que des routines cachées dans un programme!

23 Molecular Modelling Toolkit Normal Modes LAPACK Molecular Object Library Atom Group Molecule Complex Residue PeptideChain Protein Visualization PyMOL VMD Integrators Integrator loop I n t e r f a c e Force fields Energy evaluation I n t e r f a c e Energy minimizers Minimization loop

24 Utiliser MMTK... Scripts Interfaces graphiques # Standard normal mode calculation. # from MMTK import * from MMTK.Proteins import Protein from MMTK.ForceFields import Amber99ForceField from MMTK.NormalModes import VibrationalModes from MMTK.Minimization import ConjugateGradientMinimizer from MMTK.Trajectory import StandardLogOutput from MMTK.Visualization import view # Construct system universe = InfiniteUniverse(Amber94ForceField()) universe.protein = Protein('bala1') # Minimize minimizer = ConjugateGradientMinimizer(universe, actions=[standardlogoutput(50)]) minimizer(convergence = 1.e-3, steps = 10000) # Calculate normal modes modes = VibrationalModes(universe) # Show animation of the first non-trivial mode view(modes[6])

25 Performance et optimisations

26 Performance Python n est pas rapide... mais :

27 Performance Python n est pas rapide... mais : Ce n est pas toujours vrai. Certains aspects de Python ont été optimisés à fond.

28 Performance Python n est pas rapide... mais : Ce n est pas toujours vrai. Certains aspects de Python ont été optimisés à fond. Il y a des modules performants en C/C++/Fortran. Numeric

29 Performance Python n est pas rapide... mais : Ce n est pas toujours vrai. Certains aspects de Python ont été optimisés à fond. Il y a des modules performants en C/C++/Fortran. Numeric C est le programmeur qui devient plus efficace. Ce qu il faut optimiser, c est le temps jusqu au bout du projet.

30 Performance Python n est pas rapide... mais : Ce n est pas toujours vrai. Certains aspects de Python ont été optimisés à fond. Il y a des modules performants en C/C++/Fortran. Numeric C est le programmeur qui devient plus efficace. Ce qu il faut optimiser, c est le temps jusqu au bout du projet. Conseils : Ecrivez votre programme en Python d abord.

31 Performance Python n est pas rapide... mais : Ce n est pas toujours vrai. Certains aspects de Python ont été optimisés à fond. Il y a des modules performants en C/C++/Fortran. Numeric C est le programmeur qui devient plus efficace. Ce qu il faut optimiser, c est le temps jusqu au bout du projet. Conseils : Ecrivez votre programme en Python d abord. Si c est assez rapide, soyez contents.

32 Performance Python n est pas rapide... mais : Ce n est pas toujours vrai. Certains aspects de Python ont été optimisés à fond. Il y a des modules performants en C/C++/Fortran. Numeric C est le programmeur qui devient plus efficace. Ce qu il faut optimiser, c est le temps jusqu au bout du projet. Conseils : Ecrivez votre programme en Python d abord. Si c est assez rapide, soyez contents. Sinon optimisez les parties critiques (et rien d autre) Premature optimization is the root of all evil C.A.R. Hoare/D. Knuth

33 Optimisation 1) Ne devinez pas quelles sont les parties critiques: profile (ou cprofile en Python 2.5) vous le dit. python -m profile -s time mon_script.py

34 Optimisation 1) Ne devinez pas quelles sont les parties critiques: profile (ou cprofile en Python 2.5) vous le dit. python -m profile -s time mon_script.py 2) Travaillez sur les algorithmes. Passer de O(N 3 ) à O(N) apporte plus que passer de Python à C.

35 Optimisation 1) Ne devinez pas quelles sont les parties critiques: profile (ou cprofile en Python 2.5) vous le dit. python -m profile -s time mon_script.py 2) Travaillez sur les algorithmes. Passer de O(N 3 ) à O(N) apporte plus que passer de Python à C. 3) Cherchez des modules optimisés adéquates.

36 Optimisation 1) Ne devinez pas quelles sont les parties critiques: profile (ou cprofile en Python 2.5) vous le dit. python -m profile -s time mon_script.py 2) Travaillez sur les algorithmes. Passer de O(N 3 ) à O(N) apporte plus que passer de Python à C. 3) Cherchez des modules optimisés adéquates. 4) Cherchez des bibliothèques adaptées à interfacer.

37 Optimisation 1) Ne devinez pas quelles sont les parties critiques: profile (ou cprofile en Python 2.5) vous le dit. python -m profile -s time mon_script.py 2) Travaillez sur les algorithmes. Passer de O(N 3 ) à O(N) apporte plus que passer de Python à C. 3) Cherchez des modules optimisés adéquates. 4) Cherchez des bibliothèques adaptées à interfacer. 5) Tournez vers : Pyrex C / Swig C++ / Swig C++ / Boost Fortran / f2py

38 Pyrex compilateur Python qui génère des modules d extension en C accélération de 5% au mieux!

39 Pyrex compilateur Python qui génère des modules d extension en C accélération de 5% au mieux! extensions au langage Python pour écrire du C en syntaxe Python programmation mixte Python/C

40 Pyrex compilateur Python qui génère des modules d extension en C accélération de 5% au mieux! extensions au langage Python pour écrire du C en syntaxe Python programmation mixte Python/C Applications : optimiser une fonction Python en la traduisant progressivement en C écrire des modules d extension écrire des interfaces à des bibliothèques C à la main

41 Exemple : Python def exp(x, termes = 50): somme = 0. puissance = 1. fact = 1. for i in range(termes): somme = somme + puissance/fact puissance = puissance*x fact = fact*(i+1) return somme

42 Exemple : Pyrex def exp(double x, int termes = 50): cdef double somme Conversion automatique Python->C cdef double puissance cdef double fact Déclarations de variables en C cdef int i somme = 0. puissance = 1. fact = 1. for i from 0 <= i < termes: somme = somme + puissance/fact puissance = puissance*x Boucle en C fact = fact*(i+1) return somme Conversion automatique C->Python

43 bibiliothèques scientifiques généralistes

44 NumPy Fonctionnalité de base pour le calcul numérique: Tableaux multidimensionnels Arithmétique et fonctions mathématiques sur les tableaux Algèbre linéaire (LAPACK) Transformée de Fourier (FFTPACK) Nombres aléatoires Implémentation efficace qui rend possible le calcul numérique en Python pur. Utilisé par la majorité des bibliothèques scientifiques.

45 Tableaux multidimensionnels tous les élements du même type (entier, réel,...) stockage compact des données, compatible C/Fortran opérations efficaces arithmétique indexation flexible Les tableaux NumPy servent autant pour écrire des algorithmes matriciels que pour interfacer avec des bibliothèques en C/C++/Fortran.

46 matplotlib Bibliothèque de traçage Plots 2D Plots 3D avec l extension mplot3d autres (camembert,...) affichage à l écran, EPS, PDF,... peut être intégré dans un interface graphique Le module pylab de matplotlib facilite la transition pour les habitués de Matlab.

47 ScientificPython Modules Python d intérêt général: Géométrie vecteurs, tenseurs, transformations linéaires Fonctions interpolation, dérivés automatiques, polynômes, fonctions rationnelles Statistique moments d une distribution, histogramme Fits moindres carrés linéaire et non-linéaire Unités conversion, arithmétique Visualisation VRML, VPython, VMD Parallélisme calcul distribué, BSP, interface MPI Entrées-Sorties formatage compatible Fortran, tableaux, netcdf, PDB

48 SciPy Interfaces à des nombreuses bibliothèques scientifiques: Statistique Optimisation Intégration numérique Algèbre linéaire Transformés de Fourier Traitement du signal Traitement d images Algorithmes génétiques Équations différentielles partielles Fonctions spéciales

49 SymPy Bibliothèque pour le calcul symbolique en Python Transformations algébriques Analyse: limite, dérivation, intégration, séries Equations différentielles et algébrique Algèbre linéaire

50 Pour continuer... Hans-Petter Langtangen Python Scripting for Computational Science Springer, 2005/2006 Matthieu Brucher Python, Les fondamentaux du langage, La programmation pour les scientifiques Editions ENI, 2008 Computing in Science and Engineering Special Issue Python: Batteries included May/June 2007

NumPy et al. Le calcul Scientifique en PYTHON. Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Synchrotron Soleil (St Aubin)

NumPy et al. Le calcul Scientifique en PYTHON. Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Synchrotron Soleil (St Aubin) NumPy et al. Le calcul Scientifique en PYTHON Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Synchrotron Soleil (St Aubin) Python et le logiciel libre Python est un logiciel libre. NumPy

Plus en détail

Python pour les scientifiques. Thierry Chappuis

Python pour les scientifiques. Thierry Chappuis Python pour les scientifiques Thierry Chappuis Les besoins du scientifique Les besoin du scientifique, dans son travail de tous les jours, se résument ainsi: Acquérir des données (simulation, expériences)

Plus en détail

Visualisation 2D avec Python

Visualisation 2D avec Python Visualisation 2D avec Python Matplotlib, PyQwt, guiqwt Pierre RAYBAUT CEA/DAM Île-de-France ANGD Python calcul scientifique 6-10 décembre 2010 1 Sommaire Visualiser des données 2D avec Python > Introduction

Plus en détail

Python pour le calcul scientifique

Python pour le calcul scientifique Petit tour d horizon Laboratoire de Mathématiques d Orsay Le langage Python 1 développé en 1989 par Guido van Rossum 2 open-source 3 portable 4 orienté objet 5 dynamique 6 extensible 7 support pour l intégration

Plus en détail

Le logiciel SAGE. François Ducrot. Journées Mathrice - Angers 2009

Le logiciel SAGE. François Ducrot. Journées Mathrice - Angers 2009 Journées Mathrice - Angers 2009 Différents besoins de logiciels mathématiques Calcul formel : On manipule des expressions formelles : Différents besoins de logiciels mathématiques Calcul scientifique :

Plus en détail

Exemple de migration réussie de MATLAB vers Python

Exemple de migration réussie de MATLAB vers Python Journée Plume du 4 février 2010 Exemple de migration réussie de MATLAB vers Python Logiciels d'acquisition, de visualisation et de traitement de données Calculs interactifs avec Spyder Pierre Raybaut 1

Plus en détail

Certificat Big Data Apprentissage TP1 Introduction à Python

Certificat Big Data Apprentissage TP1 Introduction à Python Certificat Big Data Apprentissage TP1 Introduction à Python Olivier Schwander 30 septembre 2015 1 / 31 Outline Environnement de travail Commentaires Installation Éditeur Expressions Structures de contrôle

Plus en détail

Python pour le calcul scientifique

Python pour le calcul scientifique Laboratoire de Mathématiques d Orsay 4 avril 2014 - Amiens Plan Petite introduction 1 Petite introduction 2 3 4 5 1 Petite introduction 2 3 4 5 Pourquoi utiliser? Python peut être appris en quelques jours.

Plus en détail

Informatique commune en CPGE PSI-PC-PT-MP-TSI-TPC

Informatique commune en CPGE PSI-PC-PT-MP-TSI-TPC Informatique commune en CPGE PSI-PC-PT-MP-TSI-TPC L ingénieur doit maîtriser les concepts fondamentaux de l informatique pour : communiquer avec les informaticiens comprendre les questions de complexité

Plus en détail

Calcul Scientifique avec 3

Calcul Scientifique avec 3 ENSAM Bordeaux 23, 24 juin 2014 Calcul Scientifique avec 3 Installation - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M "la programmation doit être un plaisir...", G. van

Plus en détail

Calcul Scientifique avec

Calcul Scientifique avec Python à l oral du concours ENSAM Paris 11-13 juin 2014 Calcul Scientifique avec Installation - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M "la programmation doit être un

Plus en détail

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab notre compétence d'éditeur à votre service créée en juin 2010, Scilab enterprises propose services et support autour

Plus en détail

NumPy. Python pour le calcul scientifique. Pierre Navaro. IRMA Strasbourg. IMFS le 28 juin 2011

NumPy. Python pour le calcul scientifique. Pierre Navaro. IRMA Strasbourg. IMFS le 28 juin 2011 NumPy Python pour le calcul scientifique Pierre Navaro IRMA Strasbourg IMFS le 28 juin 2011 Pierre Navaro (IRMA Strasbourg) NumPy IMFS le 28 juin 2011 1 / 18 NumPy Le module incontournable du calcul scientifique

Plus en détail

Faire des simulations au DMS

Faire des simulations au DMS (lorsque l on est statisticien) P. Lafaye de Micheaux 1 1 Département de Mathématiques et de Statistique Université de Montréal Séminaire midi, 2010 Plan de la présentation 1 Motivation/Objectif 2 3 C/C++

Plus en détail

Informatique en CPGE

Informatique en CPGE Informatique en CPGE L ingénieur doit maîtriser les concepts fondamentaux de l informatique pour : communiquer avec les informaticiens comprendre les questions de complexité algorithmique, de précision

Plus en détail

Introduction à MATLAB

Introduction à MATLAB Introduction à MATLAB Passez en mode.html MATLAB est un logiciel de calcul numérique matriciel à syntaxe simple. C est devenu un logiciel de programmation largement utilisé en finance et en ingénierie

Plus en détail

Analyse de performance et optimisation. David Geldreich (DREAM)

Analyse de performance et optimisation. David Geldreich (DREAM) Analyse de performance et optimisation David Geldreich (DREAM) Plan de l exposé Analyse de performance Outils Optimisation Démonstrations Analyse de performance Pas d optimisation sans analyse de performance

Plus en détail

Le calcul numérique : pourquoi et comment?

Le calcul numérique : pourquoi et comment? Le calcul numérique : pourquoi et comment? 16 juin 2009 Claude Gomez Directeur du consortium Scilab Plan Le calcul symbolique Le calcul numérique Le logiciel Scilab Scilab au lycée Le calcul symbolique

Plus en détail

Calculer avec SAGEMATH

Calculer avec SAGEMATH Calculer avec SAGEMATH Pierre Navaro (navaro@math.unistra.fr) Institut de Recherche Mathématique Avancée, Strasbourg IRMA, 25 janvier 2012 http://www-irma.u-strasbg.fr/~navaro/sagemath.pdf Pourquoi Sage?

Plus en détail

Introduction à Sage-Python

Introduction à Sage-Python Introduction à Sage-Python Aurélien Greuet Université de Versailles http://lmv.math.cnrs.fr/annuaire/aurelien-greuet/ 1 Python? Sage?! Calcul formel?!? 1.1 Python Python est un langage de programmation

Plus en détail

Parallélisation Automatique

Parallélisation Automatique Parallélisation Automatique Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr 8 septembre 2008 1 / 23 Pourquoi la parallélisation automatique? Les gains de performances dus à la technologie s amenuisent

Plus en détail

Utilisation de python pour le calcul numérique

Utilisation de python pour le calcul numérique Utilisation de python pour le calcul numérique Résumé L objectif de ce TP est de découvrir quelques possibilités de python pour le calcul numérique. Il pourra également vous servir de référence si vous

Plus en détail

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier

Compilateurs : Analyse lexicale. Vous êtes ici 2. Analyse lexicale 4. Matthieu Amiguet. En entrée d un compilateur, on a généralement un fichier Compilateurs : Matthieu Amiguet 2009 2010 Vous êtes ici 2 Partie Avant Analyse syntaxique Analyse sémantique Arbre syntaxique abstrait (AST) Partie Arrière Optimisation de l AST Génération de code Optimisation

Plus en détail

P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S

P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S P R O G R A M M E E T I N S T R U C T I O N S O F F I C I E L L E S POUR L ENSEIGNEMENT DE L INFORMATIQUE MPSI première année I. Objectifs de la formation II-1 Développement de compétences et d aptitudes

Plus en détail

Éléments de programmation et introduction à Java

Éléments de programmation et introduction à Java Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques

Plus en détail

Introduction. Python?

Introduction. Python? 1 Introduction Python - why settle for snake oil when you can have the whole snake? «Python - Pourquoi se contenter d huile de serpent quand on peut avoir le serpent tout entier?» Mark Jackson En guise

Plus en détail

L informatique en BCPST

L informatique en BCPST L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité

Plus en détail

Calcul Scientifique avec 3

Calcul Scientifique avec 3 ENSAM Bordeaux juin 2015 Calcul Scientifique avec 3 Installation - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M "la programmation doit être un plaisir...", G. van Rossum

Plus en détail

Composants logiciel: Feel++, formats de fichier et visualisation

Composants logiciel: Feel++, formats de fichier et visualisation Composants logiciel: Feel++, formats de fichier et visualisation Alexandre Ancel Cemosis / Université de Strasbourg 13 Janvier 2015 1 / 20 Plan 1 Environnement logiciel & matériel 2 Formats de fichier

Plus en détail

pythonocc: une plateforme de développement agile d applications CAO.

pythonocc: une plateforme de développement agile d applications CAO. pythonocc: une plateforme de développement agile d applications CAO. PyConFR 2009 Cité des Sciences et de l Industrie, Paris Thomas Paviot*, Jelle Feringa* *pythonocc project: tpaviot@gmail.com; jelleferinga@gmail.com

Plus en détail

Scilab Le logiciel libre pour le calcul numérique

Scilab Le logiciel libre pour le calcul numérique Scilab Le logiciel libre pour le calcul numérique 4 février 2010 Claude Gomez Consortium Scilab Directeur Plan Le logiciel libre Le logiciel Scilab Les forces de Scilab L organisation Scilab Le futur Le

Plus en détail

Présentation de la GSL

Présentation de la GSL Université de Limoges 1 Introduction 2 3 Déclaration Initialisation Exemple 4 Déclaration Allocation mémoire Libération de la mémoire Accéder aux données Vecteurs et fichiers 5 Définition Transformée de

Plus en détail

ParaView / VTK / HDF5 un cas d utilisation : SimSERT. RDataDev OSUG 10 Avril 2015 Yves Rogez

ParaView / VTK / HDF5 un cas d utilisation : SimSERT. RDataDev OSUG 10 Avril 2015 Yves Rogez ParaView / VTK / HDF5 un cas d utilisation : SimSERT RDataDev OSUG 10 Avril 2015 Yves Rogez ParaView / VTK / HDF5 un cas d utilisation : SimSERT 1. Contexte : CONSERT / ROSETTA 2. ParaView : Fonctionnalités,

Plus en détail

Un logiciel open source pour l enseignement et la recherche

Un logiciel open source pour l enseignement et la recherche Un logiciel open source pour l enseignement et la recherche Ricco RAKOTOMALALA Laboratoire ERIC Université Lumière Lyon 2 http://chirouble.univ-lyon2.fr/~ricco/tanagra/ 1 sur 23 PLAN 1. Objectifs du projet

Plus en détail

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles

Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Annexe 4 Programmes des classes préparatoires aux Grandes Ecoles Filière : scientifique Voie : Technologie et biologie (TB) Discipline : Informatique Première et seconde années Programme d informatique

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Wrapping de code avec SWIG et Python

Wrapping de code avec SWIG et Python Wrapping de code avec SWIG et Python Matthijs Douze Motivation Passerelle Python-C SWIG Niveaux de langage Haut: temps de développement > temps d'exécution objectifs : compact, shell interactif, backtrace

Plus en détail

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Cours 7 : Utilisation de modules sous python

Cours 7 : Utilisation de modules sous python Cours 7 : Utilisation de modules sous python 2013/2014 Utilisation d un module Importer un module Exemple : le module random Importer un module Exemple : le module random Importer un module Un module est

Plus en détail

Premiers pas en Fortran 95

Premiers pas en Fortran 95 1 Premiers pas en Fortran 95 Nicolas Depauw 26 septembre 2011 Dans ce petit exemple, nous écrivons un programme en Fortran 95 qui résoud les équations du second degré à coefficients réels. Nous détaillons

Plus en détail

Manipulation de champs avec SALOME Anthony GEAY (CEA/DEN), Guillaume Boulant (EDF/R&D) Journée des Utilisateurs de SALOME (Mardi 15 novembre 2011)

Manipulation de champs avec SALOME Anthony GEAY (CEA/DEN), Guillaume Boulant (EDF/R&D) Journée des Utilisateurs de SALOME (Mardi 15 novembre 2011) Manipulation de champs avec SALOME Anthony GEAY (CEA/DEN), Guillaume Boulant (EDF/R&D) Journée des Utilisateurs de SALOME (Mardi 15 novembre 2011) La manipulation de champs Une définition «Accéder aux

Plus en détail

Interfaçage de Python avec Fortran

Interfaçage de Python avec Fortran Interfaçage de Python avec Fortran Eric Sonnendrücker IRMA Université Louis Pasteur, Strasbourg projet CALVI INRIA Lorraine Journée Python et Calcul Scientifique, IHP, Paris, 14 décembre 2006 Pourquoi

Plus en détail

Introduction au langage C

Introduction au langage C Organisation du cours Introduction au langage C Premier cours Notions générales Aurélien Max aurelien.max@limsi.fr 12 séances de cours de 1h: mercredi 16-17h, salle A203 12 séances de TD de 1h: mercredi

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

IDL. Laissez parler vos données

IDL. Laissez parler vos données IDL Laissez parler vos données Le langage IDL Dans cet exemple, IDL est utilisé pour créer des courbes de niveau à partir des valeurs de précipitations observées dans les plaines du Texas. Pour transformer

Plus en détail

france.ni.com Journée technique Du contrôle d instruments au banc de test

france.ni.com Journée technique Du contrôle d instruments au banc de test Journée technique Du contrôle d instruments au banc de test Quelles approches pour analyser vos données, Excel, LabVIEW, fichiers scripts, NI DIAdem National Instruments France Industries et applications

Plus en détail

ALGORITHMIQUE & CALCUL NUMERIQUE Travaux pratiques résolus Programmation avec les logiciels Scilab et Python

ALGORITHMIQUE & CALCUL NUMERIQUE Travaux pratiques résolus Programmation avec les logiciels Scilab et Python ALGORITHMIQUE & CALCUL NUMERIQUE Travaux pratiques résolus Programmation avec les logiciels Scilab et Python Licence Préparation aux concours José OUIN Ingénieur INSA Toulouse Professeur agrégé de Génie

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

I00 Éléments d architecture

I00 Éléments d architecture I00 I Exemples d ordinateur Pour les informaticiens, différentes machines de la vie courante sont des ordinateurs : par exemple les ordinateurs portables, les ordinateurs fixes, mais aussi les supercalculateurs,

Plus en détail

Calcul mathématique avec Sage

Calcul mathématique avec Sage Calcul mathématique avec Sage Clément PERNET Grenoble Université Stage Liesse, 3 mai 2013 Plan 1 Présentation générale 2 Définition Sage est un logiciel libre de calcul mathématique Objectif Alternative

Plus en détail

Thales Research & Technology

Thales Research & Technology Thales Research & Technology Kick-off OpenGPU SP2 SPEAR Design Environment 25/03/10 Research & Technology SPEAR Design Environment 25/03/10 Approche semi-automatique complémentaire des compilateurs paralléliseurs

Plus en détail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

Introduction à Scilab. Deuxième édition

Introduction à Scilab. Deuxième édition Introduction à Scilab Deuxième édition Springer Paris Berlin Heidelberg New York Hong Kong Londres Milan Tokyo J.-P. Chancelier, F. Delebecque, C. Gomez, M. Goursat, R. Nikoukhah, S. Steer Introduction

Plus en détail

Image Processing On Line: Publication Scientifique et Logiciels

Image Processing On Line: Publication Scientifique et Logiciels Image Processing On Line: Publication Scientifique et Logiciels Nicolas Limare CMLA, ENS Cachan RRRR Orléans 2012-04-05 reproductibilité? que publie-t on? que veut-on reproduire? demonstration mathematique?

Plus en détail

CalculerAvecPython. September 18, 2015. 1.1 Qu est-ce que Python?... 1 1.2 Pourquoi Python?... 2

CalculerAvecPython. September 18, 2015. 1.1 Qu est-ce que Python?... 1 1.2 Pourquoi Python?... 2 CalculerAvecPython Sébastien Joannès September 18, 2015 Contents 1 Le calcul scientifique & Python 1 1.1 Qu est-ce que Python?.................................. 1 1.2 Pourquoi Python?.....................................

Plus en détail

Interfaçage entre C++ et Python. Patrick Hubert. Chef Technique @ Ubisoft 2014-03-20

Interfaçage entre C++ et Python. Patrick Hubert. Chef Technique @ Ubisoft 2014-03-20 Interfaçage entre C++ et Python Patrick Hubert Chef Technique @ Ubisoft 2014-03-20 Titre alternatif Accélérer la boucle de rétroaction par l'utilisation d'un langage interprété dans le contexte d'une application

Plus en détail

DEMARCHE ET MISE EN ŒUVRE

DEMARCHE ET MISE EN ŒUVRE Chapitre I : CONVENTIONS D ECRITURE 15 CHAPITRE I DEMARCHE ET MISE EN ŒUVRE Le développement de fonctions mathématiques peut répondre à plusieurs critères ou objectifs tels que la vitesse d exécution,

Plus en détail

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique

Algorithmique - Techniques fondamentales de programmation Exemples en Python (nombreux exercices corrigés) - BTS, DUT informatique Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

TD2 - Ecriture binaire/héxadécimale d une entier. PCSI - Lycée Thiers

TD2 - Ecriture binaire/héxadécimale d une entier. PCSI - Lycée Thiers TD2 - Ecriture binaire/héxadécimale d une entier Ecriture d un nombre dans une base Ecriture d un nombre en base m > 1 Ecriture d un nombre en base 2 Ecriture d un nombre en base 16 Corrigé Corrigé Ecriture

Plus en détail

Rapport de veille. Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science

Rapport de veille. Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science Utilisation du langage de programmation Python et de son écosystème dans le domaine de la science Une étude de cas pour la recherche dans le domaine de la reconnaissance de la parole Première version Frédéric

Plus en détail

Algorithmique au lycée

Algorithmique au lycée Stage PAF christian.brucker@ac-strasbourg.fr jean-paul.quelen@ac-strasbourg.fr 13 mars 2015 Lycée Jean Monnet STRASBOURG Sommaire du stage Les programmes Sommaire du stage Les programmes Sommaire du stage

Plus en détail

Mathématiques et Python

Mathématiques et Python Mathématiques et Python Le langage Python seul ne sait pas faire grand chose dans le domaine mathématique, comme tracer une fonction, calculer des valeurs de fonctions usuelles, réaliser des opérations

Plus en détail

Comment compiler un programme MATLAB

Comment compiler un programme MATLAB Comment compiler un programme MATLAB 1- Introduction Le compilateur MATLAB génère un code source C à partir d une fonction MATLAB. Le code C généré par le compilateur MATLAB peut être: soit un code source

Plus en détail

et au post-traitement avec NI DIAdem

et au post-traitement avec NI DIAdem Introduction à la gestion de données et au post-traitement avec NI DIAdem El Mehdi Affif Ingénieur d application Sommaire Introduction Architecture logicielle L environnement DIAdem Que puis-je faire avec

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1

Compilation séparée. Compilation séparée. ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Compilation séparée ENSIIE: Programmation avancée, Compilation séparée, Modularité, Spécifications algébriques 1 Compilation séparée Modularité GCC : 4 millions de lignes de code Noyau

Plus en détail

Système. Introduction aux systèmes informatiques

Système. Introduction aux systèmes informatiques Introduction aux systèmes informatiques Système Un système est une collection organisée d'objets qui interagissent pour former un tout Objets = composants du système Des interconnexions (liens) entre les

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html 1 Mode de fonctionnement sous R TRAVAILLER SOUS R 2 R est un interpréteur, il permet de programmer avec le langage S

Plus en détail

Introduction à NetCDF

Introduction à NetCDF Introduction à NetCDF École normale supérieure L3 géosciences 2014/2015 Lionel GUEZ guez@lmd.ens.fr Laboratoire de météorologie dynamique Explications préliminaires Deux distinctions générales sur les

Plus en détail

Informatique TP1 : Découverte de Python CPP 1A

Informatique TP1 : Découverte de Python CPP 1A Informatique TP1 : Découverte de Python CPP 1A Romain Casati, Wafa Johal, Frederic Devernay, Matthieu Moy Avril - juin 2014 1 Découverte de l IDE : IDLE IDLE est un environnement de développement (Integrated

Plus en détail

Révisions : numpy, matplotlib. PC/PC* - Lycée Thiers

Révisions : numpy, matplotlib. PC/PC* - Lycée Thiers Révisions : numpy, matplotlib Modules scientifiques de python Tableaux bi-dimensionnels avec array() Le sous-module linalg La classe matrix() Polynomes avec la classe poly1d() Syntaxe de plot() Exemples

Plus en détail

Tracé de courbes et de surfaces avec Python et matplotlib. Appel de Python depuis le C

Tracé de courbes et de surfaces avec Python et matplotlib. Appel de Python depuis le C L3 Mag1 Phys. fond. Notice matplotlib 215-9-29 9::34 page 1 Tracé de courbes et de surfaces avec Python et matplotlib Appel de Python depuis le C Ni le C ni le C++ ne possèdent d instructions graphiques

Plus en détail

Révisions : programmation en langage python

Révisions : programmation en langage python Révisions : programmation en langage python Retrouvez tout le cours de première année (et plus) sur le site : http://pcsi.kleber.free.fr/ipt/index.html 1. Modules Les modules sont des bibliothèques de

Plus en détail

IDL. Laissez parler vos données

IDL. Laissez parler vos données IDL Laissez parler vos données La puissance d analyse d IDL IDL inclut un moteur d analyse puissant et robuste, qui vous permet d extraire de vos données des informations statistiques et numériques spécifiques.

Plus en détail

Outils de visualisation de traces

Outils de visualisation de traces Outils de visualisation de traces Damien DOSIMONT 23 mars 2012 1/29 Sommaire 1 Introduction Complexité croissante des systèmes embarqués Visualisation de traces Thèse et travaux de Lucas Schnorr 2 Etat

Plus en détail

Outils de gestion de projet informatique

Outils de gestion de projet informatique Outils de gestion de projet informatique Plan Introduction Méthodes agiles (extreme Programing) Dépôt de source (Subversion) Gestionnaire de tâches (Trac) Environnement de Développement Intégré (Eclipse)

Plus en détail

Utiliser les propriétés Savoir réduire un radical savoir +,-,x,: Utiliser les propriétés des puissances Calculer avec des puissances

Utiliser les propriétés Savoir réduire un radical savoir +,-,x,: Utiliser les propriétés des puissances Calculer avec des puissances ARITHMETIQUE 1 C B A Numération Ecrire en lettres et en chiffres Poser des questions fermées autour d un document simple (message, consigne, planning ) Connaître le système décimal Déterminer la position

Plus en détail

Interopérabilité des composants logiciels.

Interopérabilité des composants logiciels. Interopérabilité des composants logiciels. Application à la modélisation des plantes C. Pradal EPI INRIA VirtualPlants Plan Contexte Interopérabilité Langage de programmation Composants logiciel Plateformes

Plus en détail

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 4 : Fonctions La construction de fonctions dans un langage de programmation permet aux

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Soutenance de mi-stage

Soutenance de mi-stage Supervisée par : Mireille RÉGNIER & Yann PONTY 30 juin 2015 1/29 1 Structure 3D de l ARN et objectifs Notions sur la structure 3D de l ARN Intérêts de la comparaison de structures 3D Qu est ce que la comparaison

Plus en détail

Python - introduction à la programmation et calcul scientifique

Python - introduction à la programmation et calcul scientifique Université de Strasbourg Environnements Informatique Python - introduction à la programmation et calcul scientifique Feuille de TP 1 Avant de commencer Le but de ce TP est de vous montrer les bases de

Plus en détail

Dynamique des protéines, simulation moléculaire et physique statistique

Dynamique des protéines, simulation moléculaire et physique statistique Dynamique des protéines, simulation moléculaire et physique statistique Gerald R. Kneller kneller@llb.saclay.cea.fr, kneller@cnrs-orleans.fr Université d Orléans Laboratoire Léon Brillouin, CEA Saclay

Plus en détail

Plate-forme Alliances de modélisation et simulation des stockages et entreposages des déchets nucléaires

Plate-forme Alliances de modélisation et simulation des stockages et entreposages des déchets nucléaires Plate-forme Alliances de modélisation et simulation des stockages et entreposages des déchets nucléaires Atelier LogicieL d Intégration, d ANalyse et de Conception pour l Entreposage et le Stockage Estelle

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Nicolas Kielbasiewicz C.D.C.S.P. / I.S.T.I.L./ U.C.B.L. Domaine Scientifique de la Doua 15, boulevard André Latarjet 69622 Villeurbanne cedex

Nicolas Kielbasiewicz C.D.C.S.P. / I.S.T.I.L./ U.C.B.L. Domaine Scientifique de la Doua 15, boulevard André Latarjet 69622 Villeurbanne cedex Nicolas Kielbasiewicz C.D.C.S.P. / I.S.T.I.L./ U.C.B.L. Domaine Scientifique de la Doua 15, boulevard André Latarjet 69622 Villeurbanne cedex 27 ans e-mail : nicolas.kielbasiewicz@cdcsp.univ-lyon1.fr Permis

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html R est un langage de programmation. L objet de base est un vecteur de données. C est un «vrai» langage c.-à-d. types

Plus en détail

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours

0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage. 3- Organisation du cours 0- Le langage C++ 1- Du langage C au langage C++ 2- Quelques éléments sur le langage 3- Organisation du cours Le présent cours constitue une introduction pour situer le langage C++, beaucoup des concepts

Plus en détail

Algorithmie ISI301 TP 1 : Python et premiers algorithmes

Algorithmie ISI301 TP 1 : Python et premiers algorithmes Algorithmie ISI301 TP 1 : Python et premiers algorithmes 1 Python : apprentissage Pour avoir une vision plus large des différentes possibilités du langage Python, nous ne pouvons que vous conseiller d

Plus en détail

Demande d attribution de ressources informatiques. Sur le Centre de Calculs Interactifs de l Université de Nice Sophia-Antipolis

Demande d attribution de ressources informatiques. Sur le Centre de Calculs Interactifs de l Université de Nice Sophia-Antipolis Demande d attribution de ressources informatiques Sur le Centre de Calculs Interactifs de l Université de Nice Sophia-Antipolis Titre du projet : Nom du laboratoire : Nom de l établissement hébergeur :

Plus en détail

1 : 1 er programmes & prise en main de l environnement

1 : 1 er programmes & prise en main de l environnement 1 : 1 er programmes & prise en main de l environnement 1 Introduction 1.1 Rappel : gestion d arborescence et de fichiers sous UNIX Pour la manipulation de répertoire et de fichier à partir d un terminal

Plus en détail

Projet Génie Logiciel Avancé, Version 1.0

Projet Génie Logiciel Avancé, Version 1.0 Projet Génie Logiciel Avancé, Version 1.0 14 février 2012 1 Introduction Un certain client aimerait un clone de Worms. Sa demande est fournie séparément. Remarquez que l on ne vous demande pas : De prévoir

Plus en détail

Exercices d'introduction à Unix (1)

Exercices d'introduction à Unix (1) Exercices d'introduction à Unix (1) 1) Première connexion 1. connectez vous à une session Unix en indiquant votre identifiant (login) et votre mot de passe (Password). 2. changer votre mot de passe avec

Plus en détail

Certificat Big Data Apprentissage TP2: Séparateurs linéaires et perceptron Correction détaillée

Certificat Big Data Apprentissage TP2: Séparateurs linéaires et perceptron Correction détaillée Certificat Big Data Apprentissage TP2: Séparateurs linéaires et perceptron Correction détaillée Olivier Schwander Ce document s accompagne d une archive contenant les codes sources, décomposé en plusieurs

Plus en détail

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch

Informatique III: Programmation en C++ Introduction. Examens. Chargé de cours François Fleuret francois.fleuret@epfl.ch Informatique III: Programmation en C++ Lundi 24 Octobre 2005 Chargé de cours François Fleuret francois.fleuret@epfl.ch Assistant Mathieu Salzmann mathieu.salzmann@epfl.ch Assistants étudiants Ali Al-Shabibi

Plus en détail

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2

Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html. R.R. Université Lyon 2 Ricco Rakotomalala http://eric.univ-lyon2.fr/~ricco/cours/cours_programmation_r.html 1 R est un langage de programmation. L objet de base est un vecteur de données. C est un «vrai» langage c.-à-d. types

Plus en détail

Ecole d Automne Informatique Scientifique 1er Octobre 2008

Ecole d Automne Informatique Scientifique 1er Octobre 2008 en en Ecole d Automne Informatique Scientifique 1er Octobre 2008 en Plan 1 2 3 4 5 en Quelques caractéristiques de I Langage interprété portabilité du code : il suffit d avoir un interpréteur ( dans notre

Plus en détail