Software-Distributed Shared Memory over Heterogeneous Micro-server Architecture

Nowadays, the design of computing architectures not only targets computing performances but also the energy power savings. Low-power computing units, such as ARM and FPGA-based nodes, are now being integrated together with high-end processors and GPGPU accelerators into computing clusters. One example is the micro-server architecture that consists of a backbone onto which it is possible to plug computing nodes. These nodes can host high-end and low-end CPUs, GPUs, FPGAs and multi-purpose accelerators such as manycores, building up a real heterogeneous platform. In this context, there is no hardware to federate memories, and the programmability of such architectures suddenly relies on the developer experience to manage data location and task communications. The purpose of this paper is to evaluate the possibility of bringing back the convenient shared-memory programming model by deploying a software-distributed shared memory among heterogeneous computing nodes. We describe how we have built such a system over a message-passing runtime. Experimentations have been conducted using a parallel image processing application over an homogeneous cluster and an heterogeneous micro-server.

[1]  Mario Porrmann,et al.  A Scalable Server Architecture for Next-Generation Heterogeneous Compute Clusters , 2014, 2014 12th IEEE International Conference on Embedded and Ubiquitous Computing.

[2]  Monica S. Lam,et al.  Heterogeneous parallel programming in Jade , 1992, Proceedings Supercomputing '92.

[3]  Alan L. Cox,et al.  TreadMarks: shared memory computing on networks of workstations , 1996 .

[4]  Brian N. Bershad,et al.  The Midway distributed shared memory system , 1993, Digest of Papers. Compcon Spring.

[5]  Anoop Gupta,et al.  Parallel computer architecture - a hardware / software approach , 1998 .

[6]  Gabriel Antoniu,et al.  BlobSeer: Next-generation data management for large scale infrastructures , 2011, J. Parallel Distributed Comput..

[7]  Mathieu Jan,et al.  JuxMem: An Adaptive Supportive Platform for Data Sharing on the Grid , 2001, Scalable Comput. Pract. Exp..

[8]  James A. Ross,et al.  Implementing OpenSHMEM for the Adapteva Epiphany RISC Array Processor , 2016, ICCS.

[9]  Willy Zwaenepoel,et al.  Implementation and performance of Munin , 1991, SOSP '91.

[10]  Kai Li,et al.  IVY: A Shared Virtual Memory System for Parallel Computing , 1988, ICPP.

[11]  Giovanni Agosta,et al.  The M2DC Project: Modular Microserver DataCentre , 2016, 2016 Euromicro Conference on Digital System Design (DSD).

[12]  Gabriel Antoniu,et al.  DSM-PM2: A Portable Implementation Platform for Multithreaded DSM Consistency Protocols , 2001, HIPS.

[13]  Kai Li,et al.  Heterogeneous Distributed Shared Memory , 1992, IEEE Trans. Parallel Distributed Syst..

[14]  John E. Stone,et al.  An asymmetric distributed shared memory model for heterogeneous parallel systems , 2010, ASPLOS 2010.