1 |
Operating System Design and Implementation for Single-Chip cc-NUMA Many-Core / Conception et réalisation d’un système d’exploitation pour des processeurs many-coresAlmaless, Ghassan 27 February 2014 (has links)
De nos jours, des processeurs à mémoire partagée cohérente ayant jusqu’à 100 coresintégrés sur la même puce sont une réalité et des processeurs many-cores ayant plusieurs centaines, voire, un millier de cores sont à prévoir prochainement.Dans ces architectures, la question de la localité du trafic lié aux miss decaches L1 (data, instruction et TLB) est primordiale à la fois pour passer àl’échelle et pour réduire la consommation électrique (énergie consommée par bittransféré). Notre thèse est que : (i) la gestion de la localité des accès mémoiredoit être prise en compte au niveau du noyau du système d’exploitation et elle doitêtre effectuée d’une manière transparente aux applications utilisateur; et (ii) les noyaux monolithiques actuels sont incapables de renforcer la localité des accès mémoire des threads d’une même application parallèle, car la notion de threadsdans ces noyaux est intrinsèquement inadaptée pour les processeurs many-cores.Par conséquent, nous pensons que la démarche suivie jusqu’à présent pour faireévoluer les noyaux monolithiques n’est pas suffisante et qu’il est impératif demettre la question de la localité des accès mémoire au centre de cette évolution.Pour prouver notre thèse, nous avons conçu et réalisé ALMOS (Advanced Locality Management Operating System), un système d’exploitation expérimental à base de noyau monolithique distribué. ALMOS dispose d’un nouveau concept de thread, nommé Processus Hybrides. Il permet à son noyau de renforcer, d’une manière transparente, la localité des accès mémoire liés à l'exécution de chaque thread. La gestion des ressources (cores et mémoires physiques) dans le noyau d’ALMOS est distribuée renforçant la localité des accès mémoire lors de la réalisation des services systèmes. La prise de décision concernant l’allocation mémoire, le placement des tâches et l’équilibrage de charge dans le noyau d’ALMOS est décentralisée, multi-critères et sans prise de verrou. Elle repose sur une infrastructure distribuée coordonnant d’une manière scalable l’accès aux ressources.En utilisant le prototype virtuel précis au cycle et au bit près du processeur many-core TSAR, nous avons expérimentalement démontré que : (i) les performances(scalabilité et temps d’exécution) du schéma d'ordonnancement distribué du noyaud’ALMOS sur 256 cores dépassent celles des noyaux monolithiques existants; (ii) la réalisation répartie de l’appel système fork permet de passer à l’échellece service système sur 512 cores; (iii) le coût de la mise à jour de l’infrastructure distribué de prise de décisions du noyau d’ALMOS ne nécessiteque 0.05% de la puissance de calcul totale du processeur TSAR; (iv) les performances(scalabilité, temps d’exécution et trafic distant) de la stratégie d’affinitémémoire du noyau d’ALMOS, nommé Auto-Next-Touch, dépassent celles des deuxstratégies First-Touch et Interleave sur 64 cores; (v) le modèle de processushybrides d’ALMOS permet de passer à l’échelle deux applications hautementmulti-threads existantes sur 256 cores et une troisième sur 1024 cores; et enfin (vi) le couple ALMOS/TSAR (64 cores) offre systématiquement une bien meilleure scalabilité que le couple Linux/AMD (Interlagos 64 cores) pour 8 applications de classe HPC et traitement d’images. / Nowadays, single-chip cache-coherent many-core processors having up to 100 coresare a reality. Many-cores with hundreds or even a thousand of cores are planned in the near future. In theses architectures, the question of the locality of L1 cache-miss related traffic (data, instruction and TLB) is essential for both scalability and power consumption (energy by moved bit). Our thesis is that: (i) handling the locality of memory accesses should be done at kernel level of an operating system in a transparent manner to user applications; and (ii) the current monolithic kernels are not able to enforce the locality of memory accesses of multi-threaded applications, because the concept of thread in these kernels is inherently unsuitable for many-core processors. Therefore, we believe that the evolution approach of monolithic kernels undertaken until now is insufficient and it is imperative to put the question of the locality of memory accesses in the heart of this evolution.To prove our thesis, we designed and implemented ALMOS (Advanced Locality Management Operating System), an experimental operating system based on a distributed monolithic kernel. ALMOS has a new concept of thread, called Hybrid Process. It allows its kernel to enforce the locality of memory accesses of each thread. The resources (cores and physical memory) management in ALMOS's kernel is distributed enforcing the locality of memory accesses when performing system services. Decision making regarding memory allocation, tasks placement and load balancing in ALMOS's kernel is decentralized, multi-criteria and without locking. It is based on a distributed infrastructure coordinating, in a scalable manner, the accesses to resources.Using the cycle accurate and bit accurate virtual prototype of TSAR many-core processor, we experimentally demonstrated that: (i) performance (scalability and execution time) on 256 cores of the distributed scheduling scheme of ALMOS's kernel outperform those of the shared scheduling scheme found in existing monolithic kernels; (ii) distributed realization of the fork system call enables this system service to scale on 512 cores; (iii) updating the distrusted decision-making infrastructure of ALMOS's kernel costs just 0.05 % of the total computing power of TSAR processor; (iv) performance (scalability, execution time and remote traffic) of memory affinity strategy of ALMOS's kernel, called Auto-Next-Touch, outperform those of two existing strategies First-Touch and Interleave on 64 cores; (v) concept of Hybrid Process of ALMOS's kernel scales up two existing highly multi-threads applications on 256 cores and a third one on 1024 cores; and finally (vi) the couple ALMOS/TSAR (64 cores) gives systematically much better scalability than the couple Linux/AMD (Interlagos 64 cores) for 8 multi-threads applications belonging to HPC and image processing domains.
|
2 |
Iterative and Adaptive PDE Solvers for Shared Memory Architectures / Iterativa och adaptiva PDE-lösare för parallelldatorer med gemensam minnesorganisationLöf, Henrik January 2006 (has links)
Scientific computing is used frequently in an increasing number of disciplines to accelerate scientific discovery. Many such computing problems involve the numerical solution of partial differential equations (PDE). In this thesis we explore and develop methodology for high-performance implementations of PDE solvers for shared-memory multiprocessor architectures. We consider three realistic PDE settings: solution of the Maxwell equations in 3D using an unstructured grid and the method of conjugate gradients, solution of the Poisson equation in 3D using a geometric multigrid method, and solution of an advection equation in 2D using structured adaptive mesh refinement. We apply software optimization techniques to increase both parallel efficiency and the degree of data locality. In our evaluation we use several different shared-memory architectures ranging from symmetric multiprocessors and distributed shared-memory architectures to chip-multiprocessors. For distributed shared-memory systems we explore methods of data distribution to increase the amount of geographical locality. We evaluate automatic and transparent page migration based on runtime sampling, user-initiated page migration using a directive with an affinity-on-next-touch semantic, and algorithmic optimizations for page-placement policies. Our results show that page migration increases the amount of geographical locality and that the parallel overhead related to page migration can be amortized over the iterations needed to reach convergence. This is especially true for the affinity-on-next-touch methodology whereby page migration can be initiated at an early stage in the algorithms. We also develop and explore methodology for other forms of data locality and conclude that the effect on performance is significant and that this effect will increase for future shared-memory architectures. Our overall conclusion is that, if the involved locality issues are addressed, the shared-memory programming model provides an efficient and productive environment for solving many important PDE problems.
|
Page generated in 0.0199 seconds