Reseach Intership : proposals for Master students

Stage de recherche : RtN BLAS

Vers la reproductibilité numérique des BLAS

Des cas de non-reproductibilité numérique en calcul haute-performance (HPC) ont été récemment identifiés dans des simulations numériques de domaines variés. La cause principale en est la non-associativité de l'addition en virgule flottante, en particulier au sein des longues chaînes de produits scalaires des BLAS.     

Ces BLAS (Basic Linear Algebra Subroutines) constituent la couche logicielle de base dont dépendent la très grande majorité des bibliothèques et des applications de calcul scientifique. Elles font l'objet de nombreux développements optimisées selon les architectures matérielles visées : ATLAS, Goto BLAS, MKL, MAGMA BLAS, CuBLAS...

Des algorithmes récents permettent la meilleure précision possible de la somme de n flottants, et donc du produit scalaire, avec des performances intrinsèques extrêmement prometteuses. Ces algorithmes permettent-ils, en pratique, de concilier reproductibilité numérique et performance pour les architectures de l'HPC : multicore x86 ou hybride multicore-GPU ? 

Tel est l'un des objectifs des projets QUARENUM (PEPS INS2I, 2013) et Initiative Reproductibilité Numérique (BQR UPVD, 2013).

Objectif du stage :

Le stage consistera à développer les versions RtN de quelques opérateurs de ces BLAS et étudier comment profiter au mieux des architectures visées selon les différents algorithmes précis. On sera soucieux de la reproductibilité des évaluations de performance. On s'intéressera aussi à l'automatisation de ces versions optimisées selon les architectures (auto-tuning).

On se concentrera sur une brique de base de type "micro-kernel" à la BLIS et une architecture : x86, GPU, selon les connaissances et les préférences du stagiaire. Les développements seront réalisés en C. Les expérimentations sur architecture hybride profiteront des moyens de calcul HPC@LR

Prérequis : 

Des connaissances sur les sujets suivants peuvent aider mais ne sont pas indispensables : arithmétique des ordinateurs, parallélisme, algorithmique numérique, algèbre linéaire numérique, compilation, architecture des ordinateurs

Lieu et dates :

Equipe DALI, Université de Perpignan. Laboratoire LIRMM, UMR 5506 - CNRS - U. Montpellier 2.

2 mois à partir de juin 2013  avec rémunération de stage (nous contacter si besoin hébergement sur Perpignan).

Encadrant :

Philippe LANGLOIS, David PARELLO

Thématique, domaines scientifiques, mots-clés :

calcul scientifique, HPC, reproductibilité numérique, BLAS, arithmétique des ordinateurs, parallélisme, unités matérielles pour le calcul haute-performance

Bibliographie du stage :

K. Goto, R. van de Geijn. Anatomy of a high-performance matrix multiplication. ACM TOMS, 34 (3), May 2008. Disponible ici.

F. vand Zee, R. van de Geijn. BLIS: a modern alternative to BLAS. Disponible ici.

P. Gepner, V. Gamayunov, D. Fraser. Effective implementation of DGEMM on modern multicore CPU. ICCS 2012. Procedia Compt. Sc. 9, pp.126--135, 2012.

Ph. Langlois, B. Goossens, D. Parello, K. Porada. [1]  [2]  [3

Premiers éléments de bibliographie générale :

http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms

http://www.stodden.net/AMP2011/

http://www.netlib.org/xblas/

http://mplapack.sourceforge.net/

http://icl.eecs.utk.edu/magma/

https://www.hpc-lr.univ-montp2.fr/presentation-des-services/un-superculateur-hybride-de-technologie-recentes-et-innovante-12

D. Bailey, R. Lucas, S. Williams. Performance Tuning of Scientific Applications. CRC Press. 2011.

N. Higham. Accuracy and Stability of Numerical Algorithms. 2nd. ed. SIAM. 2002.