Publication du programme des rencontres francophones de la compilation

Le programme des rencontres francophones de la compilation est finalisé. Inscription sur le site suivant : Inscription : http://gipco-adns.com/site/5956/inscription+aux+journees+compilation

Toutes les informations sur le site du workshop http://compilfr.ens-lyon.fr/douzieme-rencontre-compilation/

Mercredi 21 Juin:

  • Session 1: 14h-16h: Architectures en rupture
    • Denis Dutoit & Eric Gutmuller (CEA – 1h): 3D Stacking et Caches in NOC
    • David Furoret (Upmem – 1h): Architecture PIM et problématiques
  • Pause
  • Session 2: 16h45 – 18h15: Architectures en rupture (suite)
    • Benoit dupont-de-Dinechin (Kalray – 1h): Titre à définir
    • Rabah Bouziane (PhD – 30 min): Silent stores optimization to reduce write activities to non-volatile memory
  • Diner: 19h

Jeudi 22 Juin :

  • Session 3: 8h30-10h: Instrumentation
    • Antoine Moynault & Pierrick Bouvier (Tutorial – 1h30): QEMU plugin
  • Session 4: 10h40-12h: Obfuscation/debugging
    • Serge Guelton (QuarksLab – 40 min): Obfuscations avancées
    • Emmanuelle Saillard (Post-doc – 40 min): Titre à préciser
  • Déjeuner
  • Session 5: 13h30-15h20: GPU
    • Florian Gouin (PhD – 40 min): Méthodologie de placement d’algorithmes de traitement d’images sur architectures massivement parallèles de type GPU
    • Victor Lomuller (CodePlay – 1h): C++ sur accélérateurs: Utilisation de Clang pour le support de SYCL
  • Social event (bus à 15h30)
  • Diner: 19h30

Vendredi 23 Juin:

  • Session 6: 8h30-10h: Compilation polyédrique
    • Christophe Alias & Alexandru Plesco (Conf – 30 min): Compacting Affine Control with Semantic Factorizations (HLS, polyhedral model, FPGA)
    • Manuel Selva & Julien Pages (Post-doc – 1h): Optimisation polyédrique à l’exécution dans le contexte de langages dynamiques
  • Session 7: 10h40-12h30: Etudiants en recherche d’emploi
    • Yon Fernandez de Retana (PhD – 40 min): Sea-of-Nodes : Sémantique et preuve d’optimisations
    • Vaddina Kameswar Rao (PhD – 30): Energy profiling of embedded systems – experiences learnt so far
    • Nasrine Damouche (Post-doc — 40 min): Titre à définir

Appel a participer : journées de la communauté française de compilation

Les 12ème rencontres de la communauté française de compilation sont en préparation. Les infos: ermitage

Inscrivez vous !

 

 

Appel à participation au Workshop « Raised Challenges by NVRAM »

Vous êtes invités à assister au workshop « Raised Challenges by NVRAM »

Lundi 29 mai après midi et Mardi 30 Mai 2017

Inria, 2 Rue Simone IFF, 75012 Paris https://goo.gl/maps/JtnFhA1qaSS2  Room JL Lions 2 (C014)

Formulaire d’inscription http://goo.gl/WBZnLj

Date limite d’inscription : 22 Mai

Inscription gratuite.

Programme détaillé à télécharger : Worshop-NVRAM-Program-Final-V3

Programme résumé :

  • Kevin Marquet Inria :Impact of emerging memories on various fields of
    computer science ; introduction to the workshop
  • Lionel Torres LIRRM : From Embedded World to High Performance
    Computing using STT-MRAM
  • Stéphane Gros and Yeter Akgul Evaderis : Maximize energy efficiency in
    normally-off system using NVRAM
  • Erven Rohou Inria : NVRAM: New Opportunities for Compilers
  • Patrick Demichel HPE : The role of NVM in the future of HPC workloads
  • Ivan Miro-Panades CEA : L-IOT : A flexible Platform for ultra-low
    power IoT
  • Ismail Oukid SAP : Towards a single-level database architecture on
    byte-addressable non-volatile memory
  • Michel Harrand CEA :Breaking the Memory Bottleneck in Computing
    Applications with Emerging Memory Technologies: a System, Design, and
    Technology Perspective
  • Guillaume Salagnac Inria : Peripheral State Persistence For
    Transiently Powered Systems

Program Committee : Henri-Pierre Charles, Kevin Marquet, Fabrice Rastello

Soutenance de thèse de Nelson LOSSING

Nelson Lossing a soutenu sa thèse intitulée « Compilation pour machines à mémoire répartie : une approche multipasse » le 3 Avril 2017.

Le jury était composé par :

  • M Henri-Pierre Charles CEA-LIST, Rapporteur
  • M Frederic Desprez Inria, Rapporteur
  • Mme Elisabeth Brunet Telecom SudParis, Examinatrice
  • Mme Christine Eisenbeis Inria, Examinatrice
  • M Antoniu Pop University of Manchester, Examinateur
  • Mme Corinne Ancourt MINES ParisTech, Maître de thèse
  • M François Irigoin MINES ParisTech, Directeur de thèse

La photo pendant la lecture du rapport de soutenance pour lui remettre le titre de docteur de l’Université de recherche Paris Sciences et Lettres :

2017-04-13-Lossing-Nelson-Soutenance

Le résumé de la thèse est le suivant :

Les grilles de calculs sont des architectures distribuées couramment utilisées pour l’exécution de programmes scientifiques ou de simulation. Les programmeurs doivent ainsi acquérir de nouvelles compétences pour pouvoir tirer partie au mieux de toutes les ressources offertes. Ils doivent apprendre à écrire un code parallèle, et, éventuellement, à gérer pour une mémoire distribuée. L’ambition de cette thèse est de proposer une chaîne de compilation permettant de générer automatiquement un code parallèle distribué en tâches à partir d’un code séquentiel. Pour cela, le compilateur source-à-source PIPS est utilisé. Notre approche a deux atouts majeurs : 1) une succession de transformations simples et modulaires est appliquée, permettant à l’utilisateur de comprendre les différentes transformations appliquées, de les modifier,  de les réutiliser dans d’autres contextes, et d’en ajouter de nouvelles; 2) une preuve de correction de chacune des transformations est donnée, permettant de garantir que le code généré est équivalent au code initial. Cette génération automatique de code parallèle distribué de tâches offre également une interface de programmation simple pour les utilisateurs. Une version parallèle du code est automatiquement généré à partir d’un code séquentiel annoté. Les expériences avec deux machines parallèle, effectuées sur des noyaux de Polybench, montrent des
accélération moyenne égal à la moitié du nombre de processus lancés.

DCAHPO workshop program

We have published the program of the first DCAHPO workshop. https://dcahpo.wordpress.com/

This will take place before the CGO conference in Austin http://cgo.org/cgo2017/

Attend to the first session to hear about dynamic compilation and come to the second session to discuss about dynamic compilation and hardware support for heterogeneity, dynamic compilation and optimization.

 

New deadlines for DCAHPO workshop

Due to organization constraint we have delayed the deadline of the DCAHPO workshop. The workshop is still  in February 4, 201, the web site for more information is here : https://dcahpo.wordpress.com/

The workshop still focus on hardware and software aspects of dynamic compilation (JIT and other kind of code generation)

  • Paper : submission December 23,
  • Author notification January 6
  • Final manuscript January 15

 

Post-doc position available

Topic: Micro-programming optimization of “in-memory computing” circuits

Download full proposal

The concept of “in-memory computing”, which consists in bringing computation tasks inside the memory macro, is a novel and promising approach where we need to explore new computing algorithms and methodologies. This approach differs in particular from those known as « processing-in-memory » (PIM) that aim at moving computation elements near the memories (especially DRAM) without changing their internal architecture. Our approach called DRC² (Dynamically Reconfigurable Computing Circuit) consists in adapting conventional memory peripheral circuits (I/O, address decoder, …) to perform logic (AND, OR, XOR, …) and arithmetic (addition/subtraction, …) operations inside the memory macro (SRAM or NVM).  

We are looking to recruit a highly motivated post-doctoral researcher to develop an optimized micro programming environment for an “in-memory computing” circuit based on DRC² concept. He/she will interact with both circuit design and software teams to propose an efficient architecture and software tools. More precisely, he/she will:

  • Perform a bibliography on potential applications and dedicated programming languages.

  • Select key applications and propose an architecture based on DRC² to take advantage of the DRC² capabilities.

  • Develop system-level testbenches to evaluate speed and power enhancements compared to existing solutions.

  • Interact with circuit design team in order to finely understand the DRC² concept.

  • Help to develop a testchip based on DRC² concept driven by a specific set of instructions. The final output will be the electrical validation of a testchip.

Such a co-optimization, i.e. a continuous feedback between design and software teams, is crucial and required for project success.

Required skills:

  • Compilers: memory models, tools for parallelism extraction, low-level parallelism, low level code generation, …

  • Knowledge on algorithm

  • Computing architecture: instruction set architecture, memory hierarchy, vector architecture, …

  • Collaboration between design team and compiler team

Appreciated skills:

  • Knowledge in circuit design (digital and/or full custom)

  • Writing skills for academic publications

Supervisors :

  • GIRAUD Bastien (memory design) Phone: +33 (0)4 38 78 17 58, E-mail: bastien.giraud@cea.fr
  • FOURNIER Jacques (security)
  • CHARLES Henri-Pierre (vision)

DCAHPO: a new international workshop

I’m happy to launch a new workshop DCAHPO (Int. Workshop on Dynamic Compilation for Architectural Heterogeneity and Program Optimization). Held in conjunction with the International Symposium on Code Generation and Optimization (CGO) 2017 in Austin TX.

It’s a merge of 2 previous workshop on dynamic compilation. DCE was on software aspects and ASMAS-DO on hardware support.

More informations on the new web site : https://dcahpo.wordpress.com/

 

Recherche candidat thèse : Construction de librairie auto-optimisantes pour le Calcul Haute Performance

Je recherche un candidat pour une thèse qui commencera en Septembre 2017. Le sujet est le suivant :

Les librairies de calcul scientifique sont intensivement utilisées pour le calcul scientifiques haute performance. Beaucoup de noyaux de calculs sont clairement identifiés (algèbre linéaire, transformée de Fourier, convolutions, etc). Linpack, FFTW, Spiral, MAGMA font partie des librairies connues dans ce domaine.

La performance de ces librairies dépend des données qu’elle manipule, et l’impact des données manipulées est plus grand que l’efficacité des optimisations statique de code, dont l’optimisation n’est valable que pour un seul type de données.

Le sujet de cette thèse sera de trouver une façon d’exprimer un algorithme de calcul, et un moyen de générer le code dynamiquement en fonction des données qu’il manipule afin de générer un code qui utilisera toutes les ressources d’un processeur dans le plus grand nombre de cas possible.

Les architectures visées seront des architectures avec plusieurs niveau de parallélisme : ILP, pipeline long, multithread, multi-coeur.

Cette thèse aura lieu à Grenoble, au CEA, l’endroit idéal pour les activités calcul haute performance et compilation. Avoir une expérience dans le domaine du calcul intensif serait un plus.

Le candidat devra avoir un niveau master ou école d’ingénieur en informatique, connaître l’architecture des ordinateurs et la compilation.

Elle peut commencer par un stage de master ou d’ingénieur début 2017.

Me contacter par mail pour candidater : mailto:Henri-Pierre.Charles@cea.fr

 

Soutenance de thèse de HALLI Nassim – Mardi 25 Octobre 14h – campus Minatec

Nassim Halli soutiendra sa thèse  intitulée « Optimisation de code pour application Java haute-performance« .

Mardi 25 Octobre à 14h sur le campus Minatec (17 rue des Martyrs 38054 Grenoble) – Bâtiment 50C – salle 203/206 au 1ère étage (l’accès se fait par la zone ouverte et ne nécessite pas de badge d’entrée).

Elle sera présentée en français devant le jury composé de :

  • M. William JALBY : Professeur à l’Université de Versailles St-Quentin-en-Yvelines, Président,
  • M. Gaël THOMAS : Professeur à Télécom SudParis, Rapporteur;
  • M. Denis BARTHOU : Professeur à l’Université de Bordeaux, Rapporteur;
  • M. Sébastien BAYLE : Responsable de l’équipe de développement à Aselta Nanographics, Examinateur;
  • M. Jean-François MÉHAUT : Professeur a l’Université Grenoble Alpes, Directeur de thèse;
  • M. Henri-Pierre CHARLES : Directeur de recherche au CEA LIST, Co-Directeur de thèse.

Résumé en français :

Java est à ce jour l’un des langages, si ce n’est le langage, le plus utilisé toutes catégories de programmation confondues et sa popularité concernant le développement d’applications scientifiques n’est plus à démontrer. Néanmoins son utilisation dans le domaine du Calcul Haute Performance (HPC) reste marginale même si elle s’inscrit au cœur de la stratégie de certaine entreprise comme Aselta Nanographics, éditeur de l’application Inscale pour la modélisation des processus de lithographie par faisceaux d’électron, instigateur et partenaire industriel de cette thèse.
Et pour cause, sa définition haut-niveau et machine-indépendante, reposant sur un environnement d’exécution, parait peu compatible avec le besoin de contrôle bas-niveau nécessaire pour exploiter de manière optimale des architectures de microprocesseurs de plus en plus complexes comme les architectures Intel64 (implémentation Intel de l’architecture x86-64). Cette responsabilité est entièrement déléguée à l’environnement d’exécution, notamment par le biais de la compilation dynamique, chargée de générer du code binaire applicatif à la volée. C’est le cas de la JVM HotSpot, au centre de cette étude, qui s’est imposée comme l’environnement de référence pour l’exécution d’applications Java en production. Cette thèse propose, dans ce contexte, de répondre à la problématique suivante : comment optimiser les performances de code séquentiel Java plus particulièrement dans un environnement HotSpot/Intel64 ? Pour tenter d’y répondre, trois axes principaux ont été explorés. Le premier axe est l’analyse des performances du polymorphisme, mécanisme Java haut-niveau omniprésent dans les applications, dans le lequel on tente de mesurer l’impact du polymorphisme sur les performances du code et d’évaluer des alternatives possibles. Le second axe est l’intégration de code natif au sein des applications – afin de bénéficier d’optimisations natives – avec prise en compte du compromis coût d’intégration/qualité du code. Enfin le troisième axe est l’extension du compilateur dynamique pour des méthodes applicatives afin, là encore, de bénéficier d’optimisations natives tout en s’affranchissant du surcout inhérent à l’intégration de code natif.

Ces trois axes couvrent différentes pistes exploitables dans un contexte de production qui doit intégrer certaines contraintes comme le temps de développement ou encore la maintenance du code. Ces pistes ont permis d’obtenir des gains de performances significatifs sur des sections de code applicatif qui demeuraient jusqu’alors très critiques.