Software-Distributed Shared Memory over Heterogeneous Micro-server Architecture

  • Loïc Cudennec
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10659)


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.


S-DSM Data coherence Heterogeneous computing 



This work received support from the H2020-ICT-2015 European Project M2DC - Modular Microserver Datacentre - under Grant Agreement number 688201.


  1. 1.
    HPE Serveur Moonshot: Hewlet Packard Entreprise.
  2. 2.
    Amza, C., Cox, A.L., Dwarkadas, S., Keleher, P., Lu, H., Rajamony, R., Yu, W., Zwaenepoel, W.: TreadMarks: shared memory computing on networks of workstations. IEEE Comput. 29(2), 18–28 (1996)CrossRefGoogle Scholar
  3. 3.
    Antoniu, G., Bougé, L.: DSM-PM2: a portable implementation platform for multithreaded DSM consistency protocols. In: Mueller, F. (ed.) HIPS 2001. LNCS, vol. 2026, pp. 55–70. Springer, Heidelberg (2001). CrossRefGoogle Scholar
  4. 4.
    Antoniu, G., Bougé, L., Jan, M.: JuxMem: an adaptive supportive platform for data-sharing on the grid. Scalable Comput.: Pract. Exp. (SCPE) 6(3), 45–55 (2005)Google Scholar
  5. 5.
    Bershad, B.N., Zekauskas, M.J., Sawdon, W.A.: The midway distributed shared memory system. In: Proceedings of the 38th IEEE International Computer Conference (COMPCON Spring 1993), Los Alamitos, CA, pp. 528–537, February 1993Google Scholar
  6. 6.
    Carter, J.B., Bennett, J.K., Zwaenepoel, W.: Implementation and performance of Munin. In: 13th ACM Symposium on Operating Systems Principles (SOSP), Pacific Grove, CA, pp. 152–164, October 1991Google Scholar
  7. 7.
    Cecowski, M., Agosta, G., Oleksiak, A., Kierzynka, M., vor dem Berge, M., Christmann, W., Krupop, S., Porrmann, M., Hagemeyer, J., Griessl, R., Peykanu, M., Tigges, L., Rosinger, S., Schlitt, D., Pieper, C., Brandolese, C., Fornaciari, W., Pelosi, G., Plestenjak, R., Cinkelj, J., Cudennec, L., Goubier, T., Philippe, J.M., Janssen, U., Adeniyi-Jones, C.: The M2DC project: modular microserver datacentre. In: 2016 Euromicro Conference on Digital System Design (DSD), pp. 68–74, August 2016Google Scholar
  8. 8.
    Culler, D., Singh, J., Gupta, A.: Parallel Computer Architecture: A Hardware/Software Approach. The Morgan Kaufmann Series in Computer Architecture and Design. Morgan Kaufmann, Burlington (1998)Google Scholar
  9. 9.
    Gelado, I., Stone, J.E., Cabezas, J., Patel, S., Navarro, N., Hwu, W.W.: An asymmetric distributed shared memory model for heterogeneous parallel systems. In: Proceedings of the Fifteenth Edition of ASPLOS on Architectural Support for Programming Languages and Operating Systems, ASPLOS XV, pp. 347–358. ACM, New York (2010)Google Scholar
  10. 10.
    Griessl, R., Peykanu, M., Hagemeyer, J., Porrmann, M., Krupop, S., vor dem Berge, M., Kiesel, T., Christmann, W.: A scalable server architecture for next-generation heterogeneous compute clusters. In: 2014 12th IEEE International Conference on Embedded and Ubiquitous Computing, pp. 146–153, August 2014Google Scholar
  11. 11.
    Li, K.: IVY: a shared virtual memory system for parallel computing. In: Proceedings of the 1988 International Conference on Parallel Processing, pp. 94–101. University Park, PA, USA, August 1988Google Scholar
  12. 12.
    Nicolae, B., Antoniu, G., Bougé, L., Moise, D., Carpen-Amarie, A.: BlobSeer: next-generation data management for large scale infrastructures. J. Parallel Distrib. Comput. 71, 169–184 (2011)CrossRefGoogle Scholar
  13. 13.
    Rinard, M.C., Scales, D.J., Lam, M.S.: Heterogeneous parallel programming in Jade. In: Proceedings Supercomputing 1992, pp. 245–256, November 1992Google Scholar
  14. 14.
    Ross, J.A., Richie, D.A.: Implementing OpenSHMEM for the adapteva epiphany RISC array processor. Procedia Comput. Sci. 80, 2353–2356 (2016). International Conference on Computational Science 2016, ICCS 2016, 6–8 June 2016, San Diego, California, USACrossRefGoogle Scholar
  15. 15.
    Zhou, S., Stumm, M., Li, K., Wortman, D.: Heterogeneous distributed shared memory. IEEE Trans. Parallel Distrib. Syst. 3(5), 540–554 (1992)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG, part of Springer Nature 2018

Authors and Affiliations

  1. 1.CEA, LISTSaclayFrance

Personalised recommendations