-
-
-
-
-
-
-
HomeSite map
SoC/Jobs offers/Internships/2011-2012/CIAN/Mécanismes LL/SC scalable Print page

Mécanismes LL/SC scalable

Contexte et Description du Stage

 Dès lors que plusieurs processeurs participent à l’exécution d’une application en exécutant des threads et que ces threads communiquent, en se synchronisant ou en s’échangeant des données, il est nécessaire d’implémenter des mécaniques permettant de modifier de manière exclusive des cases de la mémoire. Ce problème peut être résolu par des instructions spéciales des processeurs -- LL/SC (Linked-Load / Store-Conditionnal) -- ou -- CAS (Compare-And-Swap) -- ou par des composants la encore spéciaux (mémoire de verrous). La difficulté, de toutes ces techniques est le passage à l’échelle. Lorsque des milliers de threads s’exécutent sur des milliers de processeurs, le temps d’une opération atomique peut-être prohibitif (plusieurs milliers de cycles) ou bien le matériel nécessaire pour gérer le service peut-être trop important (plusieurs mégaoctets). Dans sa version actuelle, TSAR offre un mécanisme de synchronisation qui n'est exploitable que sous certaines conditions. Le but du stage serait de mettre en évidence les défauts du système actuel et d’implémenter un/des mécanisme(s) d’accès atomique ou de synchronisation efficaces pour TSAR.

Compétences souhaitées

La connaissance du C++ est nécessaire. La connaissance de SystemC est bienvenue. La connaissance du VDHL est un avantage.

Encadrant

Pirouz Bazargan Sabet

Références

Michael et Scott, Implementation of Atomic Primitives on Distributed Shared Memory Multiprocessors, HPCA 1995

Jayanti et Petrovic, Efficient and Practical Constructions of LL/SC Variables, PODC 2003

Carter, Kuo et Kuramkote, A comparison of Software and Hardware Synchronization Mechanisms for Distributed Shared Memory Multiprocessors, TecReport, UUCS 1996

LIP6 LIP6-SoC LIP6 CNRS UPMC