Financial integration and market linkage

I dokument Timescale-dependent international stock market comovement in the post-financial crisis decade (sidor 11-14)

2 Theory

2.2 Financial integration and market linkage

– ph´enom`enes physiques : probl`eme `a N corps, m´ecanique des fluides, ´equation de la chaleur, etc.

6.2

La programmation des GPU

6.2.1 Sp´ecificit´es de l’architecture GPU

L’architecture d´edi´ee au graphisme des GPU impose des contraintes et des diff´erences dans la mani`ere de programmer. L’utilisation des outils disponibles au d´ebut de nos travaux de th`ese (OpenGL, Cg, cf. 6.2.2) imposent de consid´erer le calcul proprement dit comme une s´erie d’effets graphiques appliqu´es sur des textures (donn´ees d’entr´ee). Et la sortie, le rendu final, doit ˆetre aussi une image, projet´ee sur un ´ecran virtuel.

De plus, les contraintes impos´ees par l’architecture sont les suivantes :

– La m´emoire implant´ee sur la carte est certes tr`es rapide mais elle est limit´ee et n’est pas extensible pour le moment.

– Si la lecture al´eatoire en m´emoire (gathering) est possible (on peut utiliser plus d’un texel d’une texture d’entr´ee pour en calculer un en sortie), l’´ecriture al´eatoire (scattering ) est en revanche impossible : tous les texels (´el´ements) de la texture de sortie sont en effet calcul´es simultan´ement et ind´ependamment. Il est donc impossible, pour le shader responsable d’un texel donn´e, d’aller ´ecrire sur un autre.

6.2.2 Biblioth`eques logicielles

Les d´eveloppements logiciels effectu´es lors de cette th`ese se basent sur la biblioth`eque OpenGL[8] et sur la suite logicielle Cg [66]. Mais la poursuite de ces travaux commanderait de travailler avec une autre suite logicielle, CUDA, destin´ee uniquement au calcul g´en´eraliste. Nous la pr´esenterons `a ce titre, `a la suite des deux premi`eres.

OpenGL est un ensemble de sp´ecifications pour API 7 d´edi´e au rendu graphique 2D et 3D. Son domaine d’application est potentiellement vaste : jeux vid´eos, C.A.O., r´ealit´e virtuelle, etc. `A l’origine en 1992, ces sp´ecifications ont ´et´e d´evelopp´ees par la soci´et´e Silicon Graphics Industry et sont depuis contrˆol´ees par Khronos Group, celui-ci succ´edant en 2006 `a l’ARB (OpenGL Architecture Review Board).

Aujourd’hui, des biblioth`eques OpenGL sont disponibles sur la plupart des plateformes mat´erielles (y compris r´ecemment sur les t´el´ephones mobiles) et les sp´ecifications sont soutenues par bon nombre d’acteurs importants de l’industrie informatique : Apple, Sun, NVIDIA, etc. Microsoft, qui a d´ecid´e de quitter l’ARB en 1993, d´eveloppe son propre syst`eme concurrent (Direct3D) pour le march´e du jeux vid´eo.

En pratique, OpenGL d´efinit un ensemble d’environ 250 fonctions pour le dessin et le rendu de sc`enes 2D et 3D : formes, lumi`eres, positionnement de cam´era, transformations g´eom´etriques, etc.

Il existe une impl´ementation libre (au sens de la GPL, General Public License) d’OpenGL, Mesa3D [5], mais nous avons choisi d’utiliser la version fournie par NVIDIA pour deux raisons :

– La premi`ere est la disponibilit´e de plus de fonctions OpenGL. NVIDIA communiquant peu sur les sp´ecificit´es de son mat´eriel, il est naturellement difficile aux contributeurs du logiciel libre d’impl´ementer de mani`ere optimale des fonctionnalit´es tr`es r´ecentes de la carte (d´ecrites par une version r´ecente d’OpenGL).

72 6. Processeurs graphiques et k plus proches voisins – La deuxi`eme raison a trait `a la stabilit´e de la biblioth`eque : NVIDIA est oblig´ee de fournir une biblioth`eque de grande qualit´e car celle ci, seul interm´ediaire entre le programmeur et la carte graphique, est garante de l’efficacit´e de la plateforme mat´erielle.

Dans nos travaux, nous utilisons OpenGL pour le rendu dans un ´ecran virtuel (off-screen buffer ) des r´esultats (y compris interm´ediaires) de notre algorithme de recherche de plus proches voisins (cf. section 6.3). La figure 6.3 traduit le fonctionnement du proc´ed´e :

– On d´efinit d’abord la projection : dans une sc`ene 3D, une texture peut ˆetre projet´ee par exemple sur une des faces d’un cube. Nous choisissons ici de la projeter sur un quadrilat`ere de l’espace allant de l’origine (0, 0) au point de coordonn´ee (S, S) (le quadrilat`ere a les mˆemes dimensions que la texture).

– On d´efinit ensuite l’angle de vue, c’est-`a-dire la position et l’ouverture de la cam´era. Celle-ci sera face au plan et cadrera exactement le quadrilat`ere projet´e.

– On d´eclenche enfin le rendu de la sc`ene. Il s’agit du plaquage de la texture (qui correspond, dans notre cas, au calcul) et de la prise de vue (production d’une texture sortie contenant les donn´ees).

La projection, l’angle de vue et le rendu sont `a chaque fois d´efinis ici de mani`ere `a traiter un quadrilat`ere de dimension (S, S). Cela permet de conserver pour chaque point (d’une texture en m´emoire, d’une texture plaqu´ee dans l’espace ou d’une texture film´ee) les mˆemes coordonn´ees allant de (0, 0) `a (S, S). En effet, si par exemple, une texture se voyait plaqu´ee sur un quadrilat`ere de l’espace de dimension moindre, alors les texels seraient combin´es de mani`ere `a r´eduire les dimensions de la texture. Or nous devons veiller `a l’int´egrit´e des donn´ees stock´ees ; une telle r´eduction (par des algorithmes d´edi´es au graphisme) est donc `a proscrire.

(0,0) (S,S) (S,S)

(0,0)

projection / point de vue

Plaquage d'une texture de taille SxS sur un quadrilatère de mêmes dimensions rendu sur un écran virtuel textures en mémoire

Fig. 6.3: Fonctionnement d’un calcul GPU en utilisant OpenGL

Cg. L’´etape de rendu de la sc`ene est en fait, dans notre cas, l’´etape de calcul. Lors de la production de la texture finale, un programme Cg pr´ealablement compil´e est transf´er´e au GPU puis ex´ecut´e.

I dokument Timescale-dependent international stock market comovement in the post-financial crisis decade (sidor 11-14)