Portage d'une application sur GPU CreditCruncher.

Slides:



Advertisements
Présentations similaires
8INF856 Programmation sur architectures parallèles
Advertisements

Développement d'un service Web de transformation des données routières : application à un système géomatique mobile (M 2 G) Karl Guillotte Direction :
Le débogage Semaine 12 Version A15. Plan de leçon - Débogage  Commentaire javadoc  Définition  Fonctionnement  Point d’arrêt  Exécution  Contrôler.
Qu'est ce que le logiciel libre ?. Qu'est-ce qu'un logiciel ? ● C'est une application informatique qui répond à un besoin : traitement de texte, navigateur.
Visualisation dynamique d'arbres hiérarchiques de très grande taille Par Rémi Fusade TER encadré par Thomas Hurtut et Thierry Stein.
Marid 5 décembre 2006Présentation du code parallèle – PEGASE – INRIA Sophia-Antipolis 1 Code Parallèle pour la Simulation Numérique en Mécanique des Fluides.
1 Après 5 séances ● Utilisation du système Linux – Il faut maîtriser l'utilisation de la souris (« copy/paste » des textes donnés) – Utilisation de la.
Projet ISN: developper une calculatrice sous android.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
INFSO-RI Enabling Grids for E-sciencE L’activité EGEE au CINES Nicole Audiffren, Adeline Eynard et Gérard Gil Réunion de la fédération.
Mini Projet : Station Météo ➢ Etudiant E1 : ✔ Réception de la trame, analyse, transmission. ➢ Etudiant E2 : ✔ Réception des données, traitement, stockage.
Plugin Eclipse pour le langage LUA Responsable Fabrice Huet Chef de Projet Jérôme Poisson Développeurs Lu Deng Guillaume Ghibaudo Julien Raverdino Anthony.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Estimation temps réel du flot optique Julien MARZAT 3A – ISA CPDS Tuteur ENSEM:Didier WOLF Tuteur INRIA :André DUCROT.
Semaine 01 La programmation créative Introduction.
Commande de la machine a courant continu par raspberry Réalisé par : Zriouile Rachid & IBELLA Lahoucine Lagraoui Mouhssine Encadré Par: Mr. Bensaid Mounir.
Etude de prix et gestion de chantier avec le logiciel Multidevis
Interfaçage entre Maple et du code externe
Sujet 1 : Wrapper stats sur les jeux de données ARN non codants
e-Prelude.com Analyse globale du flux
Environnement de développement des BD
Pierre Joli Cours de Mathématique Pierre Joli
Meilleure localisation pour une décharge
Dessin technique 1. Généralité. 1.1 Principaux types de dessins industriels. 1.2 Échelles 1.3 Formats normalisés. 1.4 Cartouche. 1.5 Principaux traits.
Collecte de données avec les Smartphones
Résolution de grilles Slither Link
Loi Normale (Laplace-Gauss)
Javadoc et débogueur Semaine 03 Version A17.
TD1 Ecris un programme qui déclare deux variables entières. L’utilisateur doit saisir leurs valeurs. Le programme calcule ensuite leur.
Les Processeurs Graphiques Programmables
AO (Architecture des ordinateurs)
Principes de programmation (suite)
Algorithmique Langage C
MOUTON Marielle - DUMETZ François - LEVECQUE Alain
Master Réseaux et Systèmes Distribués (RSD)
Les objectifs du cours Savoir utiliser un Tableur
Les fonctions.
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
Chapitre 12 Surveillance des ressources et des performances
Comptes régionaux Perspectives
Échantillonnage non-aléatoire
Classification des archtecutres paralleles
P2P-Tube : amélioration de YouTube par P2P.
GRAPHISME PAR ORDINATEUR
Programmation en C++ C++ de base
Présentation initiale
Plus de 4000 langages....
À l’intérieur de l’ordinateur
Architecture de machines Le microprocesseur Cours
ACP Analyse en Composantes Principales
Outils et principes de base. Exemple d’application  Gestion de données d’enquête : Interface de saisie en ligne  insère directement les données dans.
Programme financé par l’Union européenne
Mise en place d’une gestion de type ERP
FENIX Aperçu GLOBAL DU Système
Langages de programmation TP11
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
Data Mining Fait par : Belhaj Nadia Derouich Maryem.
Introdution  Le test appartient à l'activité de Vérification et de Validation d'une application, qui consiste à déterminer si cette dernière a été développée.
Pour mieux identifier et satisfaire les vrais besoins des clients
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
RABAH M ed Ali 2018/2019
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
Conception cartographique
Tableau de bord d’un système de recommandation
YII Yes It Is !.
Contenu Systèmes de test parallèles Multithreading Synchronisation
Qu’est ce qu’une page web? Comment fonctionne un site web?
Business Intelligence en ACube OLAP et Reporting avec ACubeOLAP et GRaM.
L’apprentissage par la robotique Mr. Zouari Lazhar
Transcription de la présentation:

Portage d'une application sur GPU CreditCruncher

Pourquoi les GPU ? Conçus initialement pour l'affichage 3D sur ordinateur De nombreux avantages Capacités de calcul graphique Intérêt environnemental Rendement énergétique (Flops/Watt) et compacité Prix (Flops/€) et disponibilité Architecture parallèle « multi-core »

Pourquoi les GPU ? « Le GPU est un peu au CPU ce qu'un supertanker est au hors-bord. » Jen-Hsun Huang, PDG et co-fondateur de nVidia

Mon application sur GPU ? → CUDA Développé par nVidia Extension du langage C Disponible en téléchargement sur Fonctions « kernel » exécutées sur le GPU Notions de programmation parallèle

Credit Cruncher... en quelques mots Calcul de value at risk (VAR) d'un portefeuille financier Fichiers XML à l'entrée Méthode de Monte Carlo Logiciel de statistique R pour le tracé des graphiques

Credit Cruncher Exemple de rapport

Credit cruncher sur GPU Première étape Appel d'une fonction exécutée sur le GPU à partir de Credit Cruncher

Portage sur GPU Première étape 1.Compilation de Credit Cruncher sur Eclipse 2.Compilation d'une fonction exécutée sur le GPU sous forme de bibliothèque (.so) 3.Appel d'une fonction de cette bibliothèque à partir d'une exécution de Ccruncher

Ccruncher et Monte Carlo Génération de nombres aléatoires - Mersenne Twister Transformation en nombres Gaussiens Multiplication par la matrice de Cholesky → Nombres aléatoires corrélés Calcul des pertes Tracé du(des) graphique(s) 1 2

Les étapes du Monte Carlo sur GPU 1. Mersenne Twister + Box Muller de nombres générés en 0,013 sec 2. Code de multiplication difficilement parallélisable ● Boucles dont l'incrément dépend d'une valeur arbitraire calculée à chaque tour de boucle ● Valeur i dépend de i-1 ➔ Force brute du GPU

Porte-feuille utilisé Nombre d'emprunts croissant ➔ Idéalement Ratings de AAA → D : 8 au total Idéalement 16 ? Nombre de secteurs = 100 (25 secteurs sur 75 pays) ● Matrice de corrélation entre secteurs ● Symétrique ● 1 sur la diagonale ● Valeurs aléatoires entre 0,5 et 0,7 ● Définie positive ?

Porte-feuille utilisé Emprunts 1 % = % = % = % = simulations ➔ Idéalement

Résultats

Problèmes rencontrés Programmation avec CUDA non triviale Gestion de mémoire Différents types de mémoire (mémoire partagée, mémoire globale, mémoire de texture,...) Laisser les variables sur la mémoire GPU pour éviter les transferts Multiplication matricielle Utilisation de la force brute du GPU actuellement CUBLAS VS. Multiplication optimisée « à la main » Passage de paramètres double → float

Perspectives Exécution avec un porte-feuille type « DEXIA » Contacts avec le créateur de Credit Cruncher Déploiement sur son site Rédaction d'un papier Bonnes bases pour le portage d'une autre application Autre langage ?