Le calcul parallèle dans le domaine bancaire 13e rencontre SMAI math-industrie Le calcul parallèle dans le domaine bancaire 22/03/2011 José Luu, Head of scientific computing
Table of contents Le domaine d’application: Enjeux / problématique Une réalisation industrielle Les directions d’amélioration 22/03/2011
1 Le domaine d’application: Enjeux / problématique 22/03/2011
Qu’est-ce qu’un produit dérivé ? L’option le client de l’option achète le droit de décider plus tard. Exemple : option d’achat (=CALL) d’un million de tonnes de fer à 2 ans Le client paie l’option (il paie une prime) Le client a 2 ans pour décider Abandon de l’option Achat du fer au prix convenu initialement (quelque soit le prix à l’instant de la décision) Exemple : l’option cachée dans les titres de transport Utilisations Sécurisation du futur (industriels, placements garantis) Pari sur le futur (fonds a stratégie – hedge funds) 22/03/2011
Comment calculer le prix du produit dérivé ? Références: //demonstrations.wolfram.com/ExploringTheBlackScholesFormula/ Inventing Money, Nicholas Dunbar, John Wiley and Sons The Greatest Trade Ever Gregory Zuckerman 22/03/2011
Comment gérer le produit dérivé ? La Gestion Couverture delta: Toujours posséder une quantité d’actifs proportionnelle à la dérivée. On démontre que: La prime est dépensée pour la couverture Les risques sont éliminés Les actifs sont livrés au client au prix convenu. 22/03/2011
La méthode de Monte-Carlo Réalise l’intégrale Peu sensible à la dimension du problème Multi sous-jacents Très robuste pour le pricing Moins pour les dérivées Nécessite beaucoup de calculs Volatilité locale 22/03/2011
Actifs multiples et Volatilité locale La volatilité locale Schéma d’Euler explicite Certains instruments nécessitent 1010 dW 22/03/2011
2 Une réalisation industrielle 22/03/2011
Un savoir faire du service Equity Derivatives Premier calculateur MC parallèle en 1998 Puissance totale agrégée 1015 dW par jour Disponibilité 8 heures d’interruption sur 2 ans soit 99,95% Taux d’utilisation des machines 90% des machines 12H par jour Programmation Infrastructure Linux Peu couteuse Open-Source: Maitrise complète Algorithmique de pricing Programmes développés en mode local (non parallèle) Même programmes en parallèle et même résultats (10-15) Nouveaux deals (payoff a développer) Mise en production en 48 heures (routine) 22/03/2011
Caractéristiques Capacité de recalcul complet en 10 minutes Nécessaire en cas de gros décalage du marché Augmentation de la puissance par ajout de machines Instruments financiers de grande dimension Augmentation du nombre de deals traités Exemple: ajout de 1000 cores=5 chassis 22/03/2011
Pilotage, équilibrage de charge dynamique Client Supervision 1: client demande un Cache 2: Le client envoie le pricing au cache attend le résultat retourné par le cache. RG Système de calcul Résultat agrégé RM Cache Base de données 3: Le cache demande N kernels 5:Chaque kernel renvoie ses résultats au cache 4:Le cache envoie le pricing aux N kernels Serveur Web + Pages PHP Kernel Kernel Kernel Kernel Kernel 22/03/2011
Partitionnement Utilisations Clients sur différents continents Batch de nuit Calculs interactifs Recette Clients sur différents continents Règles de débordement Débordement vers les partitions non chargées Isolation lorsque 2 partitions sont en charge 22/03/2011
Tolérance aux pannes, fiabilité Effort 50% du code technique de parallèlisation Composants critiques triplés Pas de persistance d’état dans les composants critiques Pas d’interruption de service Perte de machine Perte de data center Montée de version programme ou OS Sans reconfiguration 22/03/2011
Développement des programmes Développement/Debug en mode local Production en parallèle Mêmes résultats (10-15) Même séquence aléatoire Même programme Même structures de données Sérialiseur binaire maison Déclaratif Capable de transporter des graphes avec cycles et héritage multiple A x e3 e1 e2 e4 B C D 22/03/2011
Enseignements Architecture Code unique Tolérance aux pannes Les détails qui comptent autant que l’architecture Observabilité (mise en place de sondes au cœur du système) Connaissance complète du système Analyse des (dis-)fonctionnement Remèdes sur les causes premières Stratégies de régulation de charge Tuning pour une plage de fonctionnement étendue Peu de dépendance sur des timeouts pour le fonctionnement normal ou exceptionnel 22/03/2011
3 Les directions d’amélioration 22/03/2011
Ce que les évolutions doivent préserver Robustesse de la méthode de Monte-Carlo pas de recalibration instrument par instrument Découpage des tirages de Monte-Carlo pour pouvoir traiter de grandes dimensions Facilité d’ajout de puissance par augmentation du nombre de machines Programmation/debug/optimisation avec outils évolués (par ex: MS Edit and Continue) Code identique en local et en parallèle 22/03/2011
Améliorations technologiques Multiphase =MPI faiblement couplé Instructions vectorielles sur processeurs standard Altivec, SSE2, AVX … 3 tests GPU dans 2 services EDP 2D ADI Fin 2008, sur premières cartes avec double précision Gain d’un facteur 2 (par rapport à 1 core standard) Monte-Carlo Volatilité locale 2 sous-jacents Gain d’un facteur 80 (par rapport à 1 core standard) EDP 3D ADI Fin 2010 Gain d’un facteur 2 à 3 (par rapport à 1 core standard) 22/03/2011
GPU suite Attention à: Références Programmation spéciale Mémoire limitée Transferts mémoire explicites et couteux Exceptions IEEE Double precision (puissance limitée ou non disponible) Observabilité, outils d’optimisation Références Fast Tridiagonal Solvers on the GPU http://code.google.com/p/cudpp/ http://www.arbitragis-research.com/cuda-in-computational-finance/monteCarlo.pdf 22/03/2011
Améliorations mathématiques Modèles Corrélation locale Local LSV Dividendes non linéaires Convergence SPM (stabilité des dérivées A. Reghai) Quasi MC, complété par Pseudo L'échantillonnage préférentiel Variable de contrôle Autres algorithmes EDP American MC LSM (frontière d’exercice) Quantification 22/03/2011