José Luu, Head of scientific computing
Le calcul parallèle dans le domaine bancaire
22/03/2011
13e rencontre SMAI math-industrie
22/03/20112
Table of contents
1. Le domaine d’application: Enjeux / problématique
2. Une réalisation industrielle
3. Les directions d’amélioration
22/03/20113
1Le domaine d’application: Enjeux / problématique
22/03/20114
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/20115
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/20116
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 couvertureLes risques sont éliminésLes actifs sont livrés au client au prix convenu.
22/03/20117
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/20118
Actifs multiples et Volatilité locale
La volatilité locale
• Schéma d’Euler explicite
T
ttT dWStS0
,
• Certains instruments nécessitent 1010 dW
22/03/20119
2Une réalisation industrielle
22/03/201110
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/201111
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/201112
Pilotage, équilibrage de charge dynamique
Système de calculSupervision
Client
Cache
Kernel Kernel Kernel Kernel Kernel
RM
1: client demande un Cache
2: Le client envoie le pricing au cache attend le résultat retourné par le cache.
3: Le cache demande N kernels
4:Le cache envoie le pricingaux N kernels
RG
Base de données
ServeurWeb
+Pages PHP
5:Chaque kernel renvoie ses résultats au cache
Résultat agrégé
22/03/201113
Partitionnement
Utilisations• 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/201114
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/201115
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
e3e1 e2 e4
B
C
D
22/03/201116
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/201117
3Les directions d’amélioration
22/03/201118
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/201119
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/201120
GPU suite
Attention à:• 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/201121
Améliorations mathématiquesModè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