Calcul parallèle des options MC. Eric Bertrand ebertrand@ixis-cib.com 1
Plan Contexte du calcul parallèle Qualités requises Architecture Outillage Problèmes rencontrés perspectives 2
Contexte du calcul parallèle Excel Sophis Toolkit C++ Toolkit C++ Calcul Batch Sophis Oracle Toolkit C++ Ressources ce calcul parallèle 3
Qualité requises vues du trader Rapidité d exécution Réactivité Les «petites demandes» finissent avant la fin des «grosses demandes» Transparence Appels implicites automatiques Tolérance aux pannes transparente Mémoire «courte» Caching des calculs. 4
Qualité requises vue par l exploitation Simplicité des procédures de démarrage Indicateurs de fonctionnement temps réel Normal Dégradé - Panne Simplicité du diagnostic & procédure d intervention Ex : Suppression d un nœud de calcul en panne. Consommation «raisonnables» des ressources partagées Réseau et espace disque 5
Qualité requises vues des quants Activité pricing Même besoins que les traders Activité développement de pricer Simplicité de la phase de parallélisation des pricer Connectivité des pricers parallèles avec les différents environnement (Sophis/excel/batch) Traçabilité de l activité du système parallèle pour son amélioration Debug Tuning des algorithmes 6
Architecture de parallélisation La granularité des demandes de calcul est l option => Réactivité pour les traders Sophis Toolkit C++ Répartiteur & Cache Le calcul d un book demande autant de calculs élémentaire Que d options parallélisés. Noyaux de calcul Calcul MC 1 par processeur. 7
Aspects technologiques Les processus client PC Windows + Sophis + Orbix + Oracle Les processus Cache/Noyaux Unix (Sun & Linux) + Orbix Communication CORBA 2.3. Utilisation intensive du POA. (Orbix) TCP/IP Codage C++ pour les caches et noyaux Codage JAVA pour le gestionnaire de ressource. 8
Réactivité : processus cache & noyau multi-thread Client 1 Client 2 de files d attentes des demandes des postes clients. demandes sont prises en compte en parallèles. de gestion des priorités tion de pool d objet. Cache 1 2 Noyaux 1 2 1 2 1 2 9
Relation Cache/Noyaux : Algorithme des fourmis Client 1 : Découpage Cache Tirages MC 3 : attente du signal de fin 4: agrégation 2 :Création des fourmis N N N N Tant que tirage a faire Demander une plage Effectuer le calcul S autodétruire 10
Tolérance aux pannes En cas de panne du cache, les calculs s effectuent en local En cas de panne d un noyau, le paramétrage de l algorithme des fourmis permet de répartir sur les autres noyaux. Utilisation d une politique de timer de garde sur les calculs Lien avec le gestionnaire de ressource. 11
Gestion des ressources de calcul Mode simple Un cache accède à des noyaux qui lui sont affectés statiquement (fichiers de configuration). Mode RM (Resource Managment) Les ressources caches et noyaux sont supervisées. État/charge Le gestionnaire de ressource connaît l état des demande de calcul et leurs avancements. Les clients s adressent à lui pour choisir un cache Les caches s adressent à lui pour choisir N noyaux Les caches et les noyaux lui rendent compte de leurs avancements. 12
Architecture NON RM Client Sophis Serveur de nom msbiarritz serveurpa2 msbyzance-01 msbyzance-02 msbyzance-03 msbyzance-04 IFCKernel0 IFCKernel0 IFCKernel0 IFCKernel0 IFCKernel0 13
Gestion des ressources Supervision des ressources Accès depuis Internet explorer Connaître dynamiquement l état des serveurs Superviser la charge des fermes de calcul Gestion dynamique du parc Gestion centralisée des fermes de calcul Activer/désactiver des nœuds de calcul Allouer en temps réel la puissance de calcul en fonction de la demande. 14
Architecture RM (Resource Managment) Navigateur IE Applette de supervision (JAVA) Client Sophis Serveur web Pc de contrôle ResourceManager (JAVA) Serveur de nom Nouvelle machine msbiarritz IFCKernel0 serveurpa2 serveurpa2 msbyzance-02 msbyzance-03 msbyzance-01 msbyzance-04 IFCKernel0 IFCKernel0 IFCKernel0 IFCKernel0 IFCKernel0 15
Superviseur Un outils de supervision pour observer le gestionnaire de ressources. Les caches Les noyaux Les processus «auxiliaires» de l infrastructure 16
Visu des caches et des noyaux 17
Répartition de charge Poste sophis A Poste sophis B Cache PA2 Cache PA2 Cache PA2 N N N N N N N N N N N N N N N 18
Effort de parallélisation Les options calculés en MC très adéquate pour la parallélisation Gain quasi linéaire en fn du nombre de processeurs dans de bonnes condition Attention aux préparatifs Au codage À l éxécution 19
Difficultés au codage «Faible» culture du parallélisme Les réflexes du code MT ne sont pas acquis pour tous les quants. Les développements se situent sur plateforme windows et en C++ Pb de portage Code écrit à remanier pour être parallélisable. Les technologies CORBA/C++ demandent une habitude importante. Couplage avec l environnement Sophis 20
Difficultés à l exécution Les options demandant des efforts de préparation important Calibrage Les options demandant des volumes de données importantes Matrice de volatilité locale 21
Problèmes de transmission des données Le codage des pricers en C++ utilise des structures STL ou de bas niveau Leur transport sur un bus CORBA ne peut se faire sans une transformation en type CORBA/C++ 22
2 Approches opposées Le soft est vu d emblé comme distribué Les interfaces entre les objets options/actions/matvolloc sont décrites en IDL La parallélisation est naturelle. Le soft est vu comme une bibliothèque C++ Les encodeurs/décodeurs compatibles CORBA demande un effort de développement Le code soit être «adapté pour la parallélisation» 23
Conclusion La parallélisation des option MC ne pose pas de vrais problèmes hormis de génie logiciel Ce n est pas vrais pour celles demandant un effort de préparation (calibration) important et un volume de données important. La culture de développement ne permet pas d imposer une approche centrée sur CORBA 24
Perspectives Amélioration du caching Gestion des demandes plus fines Priorités des demandes Prédiction des temps de calcul Parallélisation des travaux de préparation (calibration) Elargissement des technologies d interfaces DCOM, WS, XML Amélioration du process de parallélisation. 25