Nowadays, the power and the complexity of computing systems are evolving and increasing at an unprecedented rate. The advantages of highly-parallel systems could benefit an enormous variety of fields. However, the growing complexity is making it unfeasible for the average programmer to weight all the constraints and optimize the system for a wide range of machines and scenarios. The burden on programmers is noticeable and many research efforts were spent in addressing this issue. Clearly, it is not feasible to rely on human intervention to tune a system: conditions change constantly, rapidly, and unpredictably. It would be desirable to have the system automatically adapt to the mutating environment. A new paradigm is to be explored for these systems to be developed. Self-adaptive systems seem to be the answer to most of the problems previously described. They adapt their behavior and resources to automatically find the best way to accomplish a given goal despite changing environmental conditions and demands. Therefore, this kind of systems needs to monitor itself and its context, discern significant changes, determine how to react, and execute decisions: the Observe Decide and Act control loop. The research work presented in this document aims at augmenting the GNU/Linux operating system with autonomic features. The idea is to make the system aware of the level of data contention among different tasks and to allow it to take smart decisions about how to actually map them on the cores. Theoretical concepts about synchronization methods, memory hierarchy, and thread scheduling help in sustaining that moving threads with high contention on the same core can lead to a reduction of the tasks execution time. To put this design in practice, the following contributions were made: - a monitoring infrastructure able to quantify the lock contention among threads was implemented; - an adaptation policy to smartly move tasks onto cores was designed; - this policy was actually implemented in kernel-space.

Contention aware thread mapping driven by self aware synchronization mechanisms

CARMINATI, MATTEO
2010/2011

Abstract

Nowadays, the power and the complexity of computing systems are evolving and increasing at an unprecedented rate. The advantages of highly-parallel systems could benefit an enormous variety of fields. However, the growing complexity is making it unfeasible for the average programmer to weight all the constraints and optimize the system for a wide range of machines and scenarios. The burden on programmers is noticeable and many research efforts were spent in addressing this issue. Clearly, it is not feasible to rely on human intervention to tune a system: conditions change constantly, rapidly, and unpredictably. It would be desirable to have the system automatically adapt to the mutating environment. A new paradigm is to be explored for these systems to be developed. Self-adaptive systems seem to be the answer to most of the problems previously described. They adapt their behavior and resources to automatically find the best way to accomplish a given goal despite changing environmental conditions and demands. Therefore, this kind of systems needs to monitor itself and its context, discern significant changes, determine how to react, and execute decisions: the Observe Decide and Act control loop. The research work presented in this document aims at augmenting the GNU/Linux operating system with autonomic features. The idea is to make the system aware of the level of data contention among different tasks and to allow it to take smart decisions about how to actually map them on the cores. Theoretical concepts about synchronization methods, memory hierarchy, and thread scheduling help in sustaining that moving threads with high contention on the same core can lead to a reduction of the tasks execution time. To put this design in practice, the following contributions were made: - a monitoring infrastructure able to quantify the lock contention among threads was implemented; - an adaptation policy to smartly move tasks onto cores was designed; - this policy was actually implemented in kernel-space.
SQUILLERO, GIOVANNI
SIRONI, FILIPPO
ING V - Scuola di Ingegneria dell'Informazione
20-dic-2011
2010/2011
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2011_12_Carminati.pdf

accessibile in internet per tutti

Descrizione: Testo della tesi
Dimensione 1.36 MB
Formato Adobe PDF
1.36 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/33721