Librairies pour le calcul numérique

Documents pareils
Optimisation de logiciels de modélisation sur centre de calcul

Rencontre sur la thématique du Calcul Haute Performance - 13 juin Better Match, Faster Innovation

Pourquoi R devient incontournable en recherche, enseignement et développement

Cours Informatique Master STEP

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

1. Développement embarqué. André KPOZEHOUE DOMAINES DE COMPETENCES CONNAISSANCES TECHNIQUES

Résolution de systèmes linéaires par des méthodes directes

Plan du cours Cours théoriques. 29 septembre 2014

1. Structure d'un programme FORTRAN 95

Évaluation et implémentation des langages

Gestion du projet pour qu'il soit pérenne et collaboratif

Examen Médian - 1 heure 30

Rapport de stage Master 2

La Forge INRIA : bilan et perspectives. Hervé MATHIEU - 11 mai 2010

Thomas Loubrieu (Ifremer) Small to Big Data Novembre 2013, Ifremer, Brest

NT2 : Une bibliothèque haute-performance pour la vision artificielle. NT2 : A High-performance library for computer vision.

Sage : un logiciel libre de mathématiques

Introduction à NetCDF

Tutoriel : Utilisation du serveur de calcul à distance de PSE

Optimisation et programmation mathématique. Professeur Michel de Mathelin. Cours intégré : 20 h

Cours 7 : Utilisation de modules sous python

La place de SAS dans l'informatique décisionnelle

Calcul Scientifique avec 3

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

Algorithmes pour la planification de mouvements en robotique non-holonome

les techniques d'extraction, les formulaires et intégration dans un site WEB

PostgreSQL, le cœur d un système critique

Calcul Formel et Numérique, Partie I

Calcul Scientifique et Symbolique, Logiciels Licence Mathématiques UE N1MA3003. Alain Yger

Nouveautés Ignition v7.7

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

4 Exemples de problèmes MapReduce incrémentaux

Composants génériques de calcul scientifique

RTDS G3. Emmanuel Gaudin

Processus d Informatisation

Éléments de programmation et introduction à Java

DUT. Informatique, orientation Imagerie Numérique. Domaine : Sciences, Technologies, Santé. Mention : Informatique

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Dossier Technique de. Renan HILBERT. Docteur de l Ecole Centrale Paris Simulation Numérique, Mécanique des Fluides COMPETENCES

Limitations of the Playstation 3 for High Performance Cluster Computing

Introduction à MATLAB R

Systèmes de gestion de code source

Les répertoires de formats

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

TABLE DES MATIÈRES CHAPITRE I. Les quanta s invitent

Pour les futurs développeurs Sommaire

Presentation d'ubuntu. Chistophe Sauthier Objectif Libre - Ubuntu-fr Nicolas Barcet - Ubuntu Server Product Manager

Introduction à CUDA.

TP 1 Introduction à Matlab Février 2009

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

Renforcement des trois compétences : compréhension orale, expression orale et expression écrite à partir de documents et vidéos.

FreeAnalysis. Schema Designer. Cubes

Spécifications, Développement et Promotion. Ricco RAKOTOMALALA Université Lumière Lyon 2 Laboratoire ERIC

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

Les fonctions de hachage, un domaine à la mode

Echantillonnage Non uniforme

COMMENT FAIRE DU E-COMMERCE?

Sonia Cafieri. Thémes de Recherche. Formation. Lieu et date de naissance: Naples, Italie, 4 juillet, 1979

ERESI : une plate-forme d'analyse binaire au niveau noyau. The ERESI team

LES ACCES ODBC AVEC LE SYSTEME SAS

GL BE FLYER. Chef de projet de l équipe : SCIONICO Pierre

BES WEBDEVELOPER ACTIVITÉ RÔLE

Cette option est aussi disponible sur les clients Windows 7 sous la forme d un cache réparti entre les différentes machines.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

1 Description générale de VISFIELD

Completed Projects / Projets terminés

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Université de Bangui. Modélisons en UML

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

COMMENT FAIRE DU COMMERCE ELECTRONIQUE?

Corrigé des TD 1 à 5

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

Mathcad Ces capacités font de Mathcad l outil de calcul technique le plus utilisé au monde.


Architecture des calculateurs

Simulation de systèmes. Logiciel de simulation

Calcul Formel et Numérique, Partie I

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Utilisation du Cloud StratusLab dans le cadre d application astroparticule à l APC

Stage Ingénieur en développement logiciel/modélisation 3D

Chef de projet H/F. Vous avez au minimum 3 ans d expérience en pilotage de projet de préférence dans le monde du PLM et de management d équipe.

Débogage de code* Mardi 13 décembre Romaric DAVID Université de Strasbourg - Direction Informatique Pôle HPC. hpc.unistra.

Le langage VHDL. Eduardo Sanchez EPFL

Machines Virtuelles. et bazard autour. Rémi Forax

EXTENSION D UN OUTIL DE VISUALISATION DE TRACES

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

Karim EL KHALIFA Web developer

Ingénierie Dirigée par les Modèles. Editeurs de modèles. (Eclipse Modeling Tools) Jean-Philippe Babau

Programmation C. Apprendre à développer des programmes simples dans le langage C

<Insert Picture Here> Best Practice : Réduction Coût de migration R12

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

Catalogue des stages Ercom 2013

Déploiement de SAS Foundation

Architecture des ordinateurs

Audit SEO. I / Les Tranquilles d Oléron

Transcription:

Librairies pour le calcul numérique 000

Contexte Matlab (/Octave, Scilab) Très bonnes fonctions calcul numérique Mais... Programmation non numérique laborieuse Pas de structures de données (hash, map, graph, etc) Lent Non interactif => Uniquement restreint à réaliser des prototypes 001

Contexte C++ Vrai language de programmation Structures données avancées Rapide Interactif (Qt, OpenGL,...) Standard en entreprise Mais... Pas de librairie numérique dans le standard (Matrices, vecteurs,...) => Beaucoup de temps passé pour refaire ce que fait un script Matlab + bugs 002

Librairies numériques Il est possible de réécrire vos propres structures Inversion matricielle, valeurs propres, matrices creuses,... Mais à éviter pour des vrais applications (sauf cas spécifique) Préférer des librairies existantes Testées, plus robustes et rapide qu'un code personnel Une bonne librairie de calcul numérique, plusieurs mois/années de developpement 003

Calcul numérique A l'origine un language est développé spécifiquement pour le calcul numérique Fortran (FORmula TRANslating system) 004

Fortan Fortran : un des plus ancien language (1954) (C 1970) A beaucoup évolué Fortan 66 Fortan 77 Fortan 90 Fortran 2008 Fortran 2015... Autrefois très limité Aujourd'hui language objet avancé Surchage d'opérateur Gestion mémoire dynamique Héritage polymorphisme structure données abstraites 005

Fortan Language très aggréable pour calcul numérique Calcul vectoriel en standard Array slicing Matrice en standard Parallélisme aisé INTEGER N =... REAL, DIMENSION(N,N) :: A INTEGER, DIMENSION(N) :: v, w DO i = 1, N w(i) = SUM ( A(i, : ) * v ) END DO Ressemble à Matlab, + simple que C, C++, Java,... 006

Avantage/limitation Fortran + Aggréable pour le calcul numérique + Portable + Standard le plus robuste et répendu + Très rapide (souvent + rapide que C ou C++) + Mise en place sur les supercalculateurs - Uniquement centré sur le calcul numérique - Gestion texte difficile - Pas de logiciel en Fortran avec GUI, interaction - Pas de graphique 007

Fortan et Lapack Librairie numérique de référence Structure de donnée matrice BLAS Basic Linear Algebra Subprograms (opérations somme, multiplication matricielles) Algorithmes d'algèbre linéaire Lapack Linear Algebra PACKage (inversion matrices, factorisation) 008

Lapack Lapack à été pendant longtemps le standard "de facto" du calcul numérique Matlab était une interface au dessus de Lapack Mais... Blas et Lapack sont bas niveau. Peu aggréable à utiliser ~1800 fichiers 009

Autres librairies Souvent une surcouche au dessus de Lapack Souvent spécialisé sur un domaine Conteneur matriciel Décomposition matrice pleine Décomposition matrice creuse Fitting non linéaire ODE / PDE 010

Les grands acteurs: Vue d'ensemble GPU + Le plus performant Pour la puissance de calcul Python + Numpy Remplace de plus en plus Fortran + Lapack - Codage long et difficile - Portabilité + Interfacage aisé avec graphique (Qt) et GPU - Par défaut plus lent que Fortran Librairies C Librairies C++ + Interfaçage direct sur un logiciel complet (Qt, drivers, OS, interaction, etc) Pour les protos Matlab / Octave / Scilab + Très simple d'utilisation - Apprentissage plus long - Pas de standard - Portabilité Pour développer des logiciels - Limitées aux prototypes - Lenteur du code Fortran + + Standard + Robuste et vérifié Lapack - Limité au calcul Pour le standard 011

Exemple de librairies GSL: GNU Scientific Library + Librairie open source complète - En C (utilisation fastidieuse) - Moins robuste, vérifiée que Lapack (lib issu de l'open source écrite par des informaticiens) Complex Numbers: Polynomials: Special Functions: Vectors and Matrices: Permutations: Linear Algebra: Eigensystems: Fast Fourier Transforms: Numerical Integration: Statistics: Monte Carlo Integration: Ordinary Differential Equations: Interpolation: Numerical Differentiation: Series Acceleration: Wavelet Transforms: Multidimensional Root-Finding: Least-Squares Fitting: Basis Splines: 012

Exemple de librairies Blitz++ Boost Vecteur/Matrice dense. Librairie très rapide (utilisation métaprogrammation/template) Conteneurs pour matrice Dlib IML++, SparseLib++ Optimisation non linéaire, fitting Simple d'utilisation Inversion matrices creuses... 013

Eigen Eigen librairie C++ d'algèbre linéaire récente Conteneur matrice, vecteur, matrice creuses Algorithme de résolution de systèmes et décomposition matricielles Repose sur les templates / métaprogrammation Peut être plus rapide qu'un code C/Fortran équivalent Utilisation instructions vectorielles, SSE 014

Eigen: Utilisation Support vecteur nd 015

Eigen: Utilisation Support matrices 2.4 9-8.4 4.4 016

Eigen: Utilisation Support inversion de matrices 017

Eigen: Utilisation Support résolution de système linéaire Ax=b Choix des approches 018

Eigen: Utilisation http://eigen.tuxfamily.org/ Support pour: Décompositions: LU, QR, valeurs singulières, Cholesky, Shur Matrices creuses Transformation géométriques 019