Changes between Version 29 and Version 30 of WikiStart
- Timestamp:
- Aug 9, 2012, 1:32:57 PM (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
WikiStart
v29 v30 5 5 [[PageOutline]] 6 6 7 ALMOS (Advanced Locality Management Operating System) is a research operating system currently under development at the [http://www-soc.lip6.fr/ SoC] department of the [http://www.lip6.fr/ LIP6] Laboratory ([http://www.upmc.fr UPMC Sorbonne Universités]). This new research operating system has been started from scratch and it is targeting cc-NUMA multi/many-cores. It is intended to investigate the scalability of the different components of an operating system on a current and future many-cores. ALMOS has been originally developed as a part of the TSAR [http://www.catrene.org/web/downloads/profiles_medea/2A718-TSAR-profile-outMEDEA2%20%2823-6-10%29.pdf MEDEA+ European project] and its kernel allows a shared-memory parallel applications to scale up to +1024 cores on the [https://www-asim.lip6.fr/trac/tsar TSAR] (Tera-Scale ARchitecture) single-chip cc-NUMA many-core. Work is in progress to port ALMOS to AMD Opteron (Interlagos) 64-cores cc-NUMA machine. 7 ALMOS (Advanced Locality Management Operating System) is a research operating system currently under development at the [http://www-soc.lip6.fr/ SoC] department of the [http://www.lip6.fr/ LIP6] Laboratory ([http://www.upmc.fr UPMC Sorbonne Universités]). This new research operating system has been started from scratch and it is targeting cc-NUMA multi/many-cores. It is intended to investigate the scalability of the different components of an operating system on a current and future many-cores. 8 9 ALMOS is currently used in several research projects and Master degree courses at LIP6 and UPMC. Its development is currently a work-package in the SHARP (Scalable Heterogeneous ARchitecture for Processing) MEDEA+ European project ([http://www.catrene.org/web/projects/projects_call456.php #CA109]) an HPC oriented project leaded by Bull. ALMOS has been originally developed as a part of the TSAR MEDEA+ European project ([http://www.catrene.org/web/downloads/profiles_medea/2A718-TSAR-profile-outMEDEA2%20%2823-6-10%29.pdf #2A718]) and its kernel allows a shared-memory parallel applications to scale up to +1024 cores on the [https://www-asim.lip6.fr/trac/tsar TSAR] (Tera-Scale ARchitecture) single-chip cc-NUMA many-core. Work is in progress to port ALMOS to AMD Opteron (Interlagos) 64-cores cc-NUMA machine. 10 8 11 9 12 == Outline of ALMOS's Kernel Design == … … 13 16 The design of ALMOS kernel has a distributed approach articulated around objects named cluster-managers. The goal is to reduce the contention on the ressources and to increase the locality of the kernel's memory access when refering to its data-structres. A cluster-manager is a manager of hardware resources of a hardware NUMA node (mainly cores and physical memory). A cluster-manager can locally supply its homed threads with any type of memory-objects including physical pages and kernel-level data-objects. A cluster-manger contains a per-core mangers each of which has its own events manger and a multi-policies scheduler server. In this distributed scheme, the kernel has no global-state notion of resources. Instead it has a decentralized approach to discover from where to allocate the requested resources in respect to the locality of memory access. This decentralized mechanism and its related policies are implemented in the DQDT (Distributed Quaternary Decision Tree). The DQDT is a wait-free mechanism based on a set of resources-usage indicators and integrates the locality awareness in all kernel decisions regarding to the tasks/threads placement, memory allocation and cores load-balancing. It constitutes a common kernel-level framework to build strategies in order to manage the resources of other kernel sub-systems like files and I/O. 14 17 15 The kernel of ALMOS replicates its code in each cluster by creating a per-cluster kernel-process. The threads of a cluster-manager are attached to its local kernel-process. The kernel of ALMOS has a hybrid notion of threads which is based on a new organization of processes virtual address space. This new organization enables the kernel to replicate both the pages-tables and the application 's code and therefore enforcing the locality of the per-core TLBs and I-cache misses.18 The kernel of ALMOS replicates its code in each cluster by creating a per-cluster kernel-process. The threads of a cluster-manager are attached to its local kernel-process. The kernel of ALMOS has a hybrid notion of threads which is based on a new organization of processes virtual address space. This new organization enables the kernel to replicate both the pages-tables and the application's code and therefore enforcing the locality of the per-core TLBs and I-cache misses. ALMOS threading model is compatible with PThreads standard and it allows the kernel to provides a native support to PGAS (Partitioned Global Address Space) programming model found in HPC oriented languages like UPC (Unified Parallel C). 16 19 17 20 == Publications ==