Implementierung eines globalen Speicher auf virtuellen Maschinen

From Lsdf
Jump to navigationJump to search

Zurück zur Themenliste

Overview

Partitioned Global Address Space (PGAS) [1] is currently a widely-used approach for building a global address space on a distributed system. The PGAS model provides an abstraction of a global memory address space that is logically partitioned. Each portion of the global address space has an affinity to a certain process or thread. A number of PGAS programming systems have been implemented in the past, including Unified Parallel C (UPC) [2] and Co-Array Fortran [3].

The DASH [4] project aims at implementing a C++ template library to efficiently work with distributed data structures. DASH implements PGAS semantics through operator overloading and supports the allocation of and parallelization over large data sets and provides means of achieving multilevel hierarchical data locality. In context of the DASH [4] project, a programming interface [5] called DART is specified to implement a PGAS model with functions for both memory operations and process synchronization. An MPI version and a system-V version of this interface were already implemented [6].

The virtualization technology has been commonly used in different scientific domains like Grid and Cloud Computing. A traditional computer system runs applications directly on the complete physical machine. Using virtualization, applications are executed on virtual machines (VM), with each VM typically running a single application and a different operating system. An advantage of using virtual machine is fault tolerance, while a virtual machine can be simply migrated in case of hardware defect on the physical host. A core component for virtualization is the Virtual Machine Monitor, also called hypervisor. There are several implementations of hypervisors; KVM [7] is one of the popular hypervisors. Shared memory is a nice feature of a multicore machine. However, this feature is not available for applications running on separate virtual machines, even though these VMs are on the same host. Recently, researchers implemented an Inter-VM shared memory emulator [8] within KVM to enable the shared memory communication between virtual machines.

Tasks of the master thesis

The goal of the Master work is to implement the DASH programming interface DART on virtualized machines with KVM enabled shared memory feature. For this, the KVM hypervisor as well as the Inter-VM shared memory emulator must be studied. The next step is to understand the semantics of the DART interface. The main development work is to implement the DART interface. For this, the system-V implementation, which is built on a shared memory machine, can be used as a reference. Finally, the implementation on virtual machines is evaluated with available text cases.


Requirements

This work requires experiences with C programming. The knowledge about the virtualization technology helps in getting started but is not necessary.

References

[1] Partitioned Global Address Space. [Online], 2014. http://www.pgas.org/.
[2] W. Carlson, J. Draper, D. Culler, K. Yelick, E. Brooks, and K. Warren. Introduction to UPC and Language Speci_cation. Technical Report CCS-TR-99-157, IDA Center for Computing Sciences, 1999.
[3] R. W. Numrich and J. Reid. Co-array Fortran for Parallel Programming. SIGPLAN Fortran Forum, 17(2):1{31, Aug 1998.
[4] http://www.dash-project.org/
[5] http://www.dash-project.org/dart
[6] H. Zhou et al. DART-MPI: An MPI-based Implementation of a PGAS Runtime System”. Proceedings of the International Conference on Partitioned Global Address Space Programming Models. Eugene, USA, Oct. 2014. http://nic.uoregon.edu/pgas14/papers/pgas14_submission_6.pdf
[7] KVM. Kernel Based Virtual Machine. http://www.linux-kvm.org/
[8] http://lwn.net/Articles/380869/; http://www.linux-kvm.org/wiki/images/e/e8/0.11.Nahanni-CamMacdonell.pdf


Contact

Dr. Jie Tao: jie.tao@kit.edu