BNP Paribas investit dans le calcul sur GPU
Afin d'optimiser une partie de ses calculs financiers, le groupe bancaire vient d'expérimenter avec succès les nouvelles cartes graphiques Tesla de Nvidia, sans sortie vidéo et dédiées aux calculs.
01net.
le 13/11/08 à 00h00
BNP Paribas est un des leaders mondiaux du calcul financier dérivé, qui nécessite une optimisation permanente. ' Nos équipes de recherche, à l'affût de solutions matérielles et logicielles innovantes, assurent en permanence une veille technologique, testant différentes solutions sur des cibles variées, souligne Stéphane Tyc, responsable de la recherche dérivés actions et commodités chez BNP Paribas. Nous avons ainsi expertisé les grilles de PC de bureau pour le calcul et les circuits logiques programmables (FPGA), mais sans résultats probants. ' La banque, qui vient de tester Blue Gene et va expérimenter Cell, tous deux d'IBM, attend les premières puces GPU (processeurs graphiques) Larrabee d'Intel.
L'enjeu : une optimisation continue du code
La recherche de gains d'optimisation concerne surtout l'analyse des portefeuilles complexes, calcul lourd et à grande latence. ' Ce calcul tourne en batch de nuit sur de gros clusters et pourrait bénéficier des nouvelles offres en architecture parallèle ', confie Stéphane Tyc. Une des contraintes de l'équipe de R&D : fournir une nouvelle version de son logiciel (qui contient plus d'un million de lignes de code !) tous les dix jours. Cette migration récurrente doit être soigneusement contrôlée, et l'arrivée d'une nouvelle architecture nécessite d'être validée par des tests préalables.
Le choix : une architecture parallèle
Une grande nouveauté a été l'arrivée, début 2007, de GPU pouvant être utilisés sans graphique, avec une programmation plus simple. La course à la fréquence est distancée par les performances atteintes avec la course au nombre de c?"urs ?" jusqu'à 320 pour les cartes ATI/AMD et 240 pour celles de Nvidia. ' Le saut technologique s'est produit lorsque Nvdia a sorti un langage C pour ses cartes, Cuda, permettant de porter des calculs plus rapidement ', explique Florent Duguet, consultant et responsable HPC et R&D chez Aneo. Fonctionnant en double précision, Cuda ne fait pas du tout appel au graphisme, mais convient aux codes massivement parallélisables. L'ancienne génération de processeurs Cell, d'IBM, a ainsi seulement huit unités d'exécution contre 128 pour la G80 de Nvidia et 240 pour la nouvelle génération GT100. Dans le cas de BNP Paribas, pour tester l'apport de ces GPU à leurs calculs financiers, il était impensable de porter d'emblée un million de lignes de code. L'approche retenue a été de découper en sous-parties chronophages, et de recoder sur Cuda moins de 1 % du code en s'appuyant sur l'expertise d'Aneo.
Mise en ?"uvre : gérer la bande passante
Quel que soit le domaine, le code doit être parallélisé pour obtenir des performances intéressantes. ' Celles-ci dépendent de l'implémentation. Avec un portage rapide, on peut aller cinq fois plus vite qu'avec des CPU multic?"urs mais la consommation demeure celle d'un processeur basse consommation, souligne Florent Duguet. En optimisant les calculs, on arrivera à un gain d'un facteur 20, 30, parfois 50. ' Et même, lors des tests de BNP Paribas, de 300 sur certaines portions du code de la simulation de Monte-Carlo.
La banque a donc décidé de passer en production pour le batch de nuit avant la fin de l'année 2008. Cinq cents c?"urs Intel à 3 GHz doivent être remplacés par un unique serveur Tesla S870 équipé de quatre cartes GPU. Les tests ont aussi montré que la question de la bande passante pour le transfert de données est primordiale, et que l'écriture en mémoire constitue un goulot d'étranglement. Heureusement, leur algorithme n'en consomme pas trop. ' Néanmoins, la technologie n'est pas complètement mature, explique Geoffrey Scoutheeten, ingénieur financier chez BNP Paribas, en particulier sur la facilité de l'environnement par rapport au C, l'absence de pile d'appels ou de pointeurs sur fonctions... et il n'y a pas de programmation objet. ' La synchronisation et l'accès à la mémoire sont également réglementés et demandent du doigté dans la programmation.
Le bilan : encore du travail pour gagner en précision
Suite aux tests, le gain en consommation électrique espéré par la banque lors de la migration est d'un facteur 125, ce qui justifie le passage en production. Il est pourtant difficile de comparer de manière équitable entre GPU et CPU sans avoir optimisé le code du second. Dernier problème à résoudre, les GPU présentent des biais non négligeables dans les calculs lorsqu'ils travaillent en simple précision, et des performances réduites en double précision. Cette situation de blocage pourra être levée soit en explorant un calcul hybride simple/double, soit en faisant appel à des accélérateurs concurrents (Larrabee, Cell, Firestream...).
Avec moins de 1 % du code qui a été porté, la maintenance est pour l'instant assez aisée. L'équipe de R&D de la banque, formée par Aneo sur Cuda, a progressivement maîtrisé cette technologie en interne. La veille technologique est toujours confiée à Aneo, d'autant que l'évolution continue. ' Cuda est un langage propriétaire dont nous ne voulons pas être complètement dépendants sans connaître son avenir ', confie Stéphane Tyc. Autre question pour l'équipe : celle du portage de l'ensemble du code. Il pourrait être compilé de manière semi-automatique avec Cuda. Une autre incertitude concerne la réécriture à terme de l'ensemble du code, due à l'arrivée du GPU Larrabee. L'équipe a le sentiment qu'il serait trop complexe pour l'instant de tout basculer. Mais avec les évolutions technologiques attendues, la stratégie de tests et de validation est loin d'être arrêtée.
L'entreprise étudiée
Activité : banque, finance.
Siège : Paris (75).
Effectif : environ 170 000 personnes.
CA 2007 : 31 M d'euros.
Gain sur la consommation des calculs complexes concernant les produits dérivés financiers.
Serveur Tesla S870 de Nvidia avec quatre GPU, en remplacement de 500 c?"urs Intel à 3 GHz.
Manque de maturité de la technologie choisie : absence de programmation objet, de pile d'appels ou de pointeurs sur fonctions, manque de facilité de l'environnement par rapport au C.
Le coût de développement de cette migration est équivalent à environ six mois de travail plein temps. Le retour sur investissement est prévu en beaucoup moins d'un an. Le prix de base d'un serveur Tesla est d'environ 9 300 euros.
Le calendrier du projet
Janvier 2008 : premières expérimentations de calculs financiers sur GPU. La technologie fait ses preuves.
Mars 2008 : décision pour une utilisation des GPU en production.
Juillet 2008 : phase de validation. La version GPU nécessite des ajustements spécifiques car elle ne permet pas pour l'instant de passer en production.
À venir : Q4 2008 : mise en production si les problèmes rencontrés avec la carte GPU sont résolus.
Stéphane Tyc (BNP Paribas) : ' ces nouveaux GPU consomment beaucoup moins d'électricité '
' Pour nos calculs financiers, nous sommes sans cesse à la recherche des meilleures solutions. Nous avons deux grands types de calculs. Le premier doit être en temps réel pour le marché, qui demande du calcul massif. La latence est de quelques millisecondes ou microsecondes, et les FPGA conviennent bien. En revanche pour le second, le calcul de dérivés d'action complexes pour lequel la latence est de quelques secondes, la priorité est plutôt de gagner en calcul par watt consommé ou en euros dépensés. Pour cette problématique nous venons de finir six mois de tests concluants sur GPU. Il a été décisif pour nous d'avoir eu accès, grâce à notre partenariat avec la société de conseils Aneo, à la nouvelle technologie de cartes Nvidia Tesla. '