[PDF] [PDF] Pour le calcul Scientifique - groupe Calcul - CNRS

PYTHON Pour le calcul Scientifique Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Science Institute) Structuration du programme en



Previous PDF Next PDF





[PDF] Programmation Scientifique avec Python

23 oct 2016 · Programmation Scientifique avec Python Vincent 1 Introduction 3 tableaux 6 2 Scipy (scientific python, http ://www scipy org) Ce module 



[PDF] PDF Python - Cours de Python - Université de Paris

22 mar 2018 · 1 4 Introduction au shell 76 Cours de Python / Université de Paris / UFR Sciences du Vivant 3 Ce cours est basé sur la version 3 de Python, version recommandée par la communauté scientifique Le langage de programmation Python a été créé en 1989 par Guido van Rossum, aux Pays-Bas



[PDF] Calcul Scientifique avec Python - Institut de Mathématiques de

http://docs python org/2/ 3 Introduction 3 1 Caractéristiques de Python Python est un langage récent (1989) très utilisé dans la programmation WEB (accès aux  



[PDF] Python pour Calcul Scientifique

spécifiques pour la "Science des Données" • Python pour connaissance des principes élémentaires de programmation dans un langage matriciel qui présentent une introduction à Python pour l'Économétrie et la Statistique et celui de 



[PDF] Programmation en Python pour les sciences de la vie - Dunod

Introduction au shell à un maximum de personnes, scientifiques ou non Le langage de programmation Python a été créé en 1989 par Guido van Rossum, 



[PDF] Pour le calcul Scientifique - groupe Calcul - CNRS

PYTHON Pour le calcul Scientifique Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) et Science Institute) Structuration du programme en



[PDF] Introduction à Python pour le calcul scientifique - Laboratoire de

3 fév 2017 · Introduction à Python pour le calcul scientifique : Python 2 x encore largement uilisé pour le calcul scientifique methode pour appeler le programme " Python Scripting for Computational Science" de Hans Petter



[PDF] Introduction à la programmation Python - imagecomputingnet

Python: le langage Création en 1990 (C ~ 1973) Scripts, manipulation texte, pas de scientifique Module Numpy en 2005 Developpement du calcul 



[PDF] Apprendre à programmer avec Python 3 - INFOREF

En tant que professeur ayant pratiqué l'enseignement de la programmation en parallèle durant notre préparation d'un curriculum pour la nouvelle option Sciences neuvième terme, Python passe automatiquement à la notation scientifique 

[PDF] INTRODUCTION A R - Anciens Et Réunions

[PDF] Introduction à R et à MYSTAT

[PDF] Introduction à SQL - Anciens Et Réunions

[PDF] Introduction à Struts 2 - Espèces En Voie De Disparition

[PDF] Introduction à u-boot

[PDF] Introduction à uClinux - Gestion De Projet

[PDF] Introduction à UML (Unified Modelling language) - France

[PDF] Introduction à un nouveau test rénal : la SDMA - Santé Et Remise En Forme

[PDF] introduction a une approche instrumentee de la synonymie - Traduction

[PDF] Introduction à une approche sémiologique de la coiffe en Algérie - France

[PDF] Introduction a Unity - lighting - Logiciels Graphiques

[PDF] Introduction à Windows 8 - CCHC – Site de la Communauté de

[PDF] introduction a wxPython

[PDF] Introduction à Zend Framework 2 ()

[PDF] Introduction and dispersal of an American termite in Paris

PYTHON

Pour le

calcul Scientifique Konrad HINSENCentre de Biophysique Moléculaire (Orléans)etSynchrotron Soleil (St Aubin)

Une brève historique

1991: Python est publié

1994: premières applications scientifiques

1996: Numerical Python

2006:
- un grand choix de bibliothèques - colloque annuel SciPy - premier livre épuisé au bout de deux mois - enseigné à plusieurs universités - des entreprises spécialisés - une formation du CNRS attire la foule

Quelques applications

Astronomie

ASTROLIB

et PyFITS (Space Telescope

Science Institute)

Bioinformatique

BioPython

(Collaboration internationale)

Systèmes dynamiques

SimPy (Collaboration internationale)

Mathématiques

SAGE (University of

Washington)

Statistique

Modular toolkit for

Data Processing

(Humboldt-

Neurologie

Vision Egg

(Collaboration internationale)

Eléments finis

FiPy (NIST)

Géographie

Thuban

(Intevation GmbH)

Visualisation

MayaVi

(Prabhu

Ramachandran)

Pourquoi Python ?

Travail interactif□

Développement rapide

Développement incrémentiel

Test, débogage

Analyse interactif de données

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

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

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é

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

Pourquoi Python ?

Travail interactif▹

Simplicité du langage▹

Orientation objet▹

Ouverture au monde▹

Disponibilité de bibliothèques▹

Ça fait plaisir !

Scénarios

d'usage

Langage de script

▹Lire/écrire des fichiers ▹Analyse de données, visualisation ▹Gestion de tâches de calcul ▹Administration système

Avantages de Python:

ʐ vrai langage de programmation

ʐ bibliothèques utiles de qualité

Calcul exploratoire

▹Analyse de données▹Visualisation →IPython →Emacs + Python mode →matplotlib →VPython →Module pickle

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

Langage d'intégration

Outils: swig, boost, f2py, PyFort, Pyrex

Bibliothèque

Fortran

Bibliothèque

C

Routines de

programmes existants

Interface

Python

Interface

Python

Interface

Python

Scripts PythonProgrammes

compilés

Interface

Python

Langage de script intégré

Module C

Fonction 1Fonction 2Fonction 3

Module C++

Classe 1Classe 2Classe 3

Python

Interface 1Interface 2Interface 3

Interface graphique

Langage principal

Module

Python

Module

Python

Module

Pyrex

Module

Python

Optimisation

Module

C

Programme principal

Pensez Bibliothèques !

Bibliothèque

Python

Module 1Module 2Module 3

Bibliothèque

Python

Module 1Module 2Module 3

Bibliothèque

Python

Module 1Module 2Module 3

Programme principal

Une bibliothèque est plus utile que des

routines cachées dans un programme !

Molecular Modelling Toolkit

Energy evaluationForce fieldsIntegrator loopIntegratorsMinimization loopEnergy minimizers I n t e r f a c e I n t e r f a c e

AtomMolecule

Complex

Group

PeptideChainProteinResidue

Molecular Object Library

Normal

Modes

LAPACK

VisualizationVMDPyMOL

Utiliser MMTK...

ScriptsInterfaces 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])

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.

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

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.

Ecrivez votre programme en Python d'abord.

4) Cherchez des bibliothèques adaptées à interfacer.5)

Tournez vers :

▹ Pyrex ▹ C / Swig ▹ C++ / Swigquotesdbs_dbs9.pdfusesText_15