Interprocess Communication Mechanisms With Inter-Virtual Machine Shared Memory

  • Author / Creator
    Ke, Xiaodi
  • In many cloud computing environments (e.g., Amazon’s public Elastic Computing Cloud and Openstack for private clouds), virtual machine (VM) instances are the unit of resource allocation. When possible, VM instances can be allocated on the same physical server and many techniques (e.g., using shared memory between VMs) can be used to reduce the overhead of the inter-VM communication. Nahanni is a novel inter-VM shared-memory mechanism. We investigate two inter-VM interprocess communication (IPC) mechanisms using Nahanni shared memory. First, minitransactions have different semantics from both traditional shared-memory programming and message-passing programming. We experimentally show that minitransactions can have better performance than traditional lock-based programming under low-contention scenarios. Second, MPI-Nahanni ports the well-known Message-Passing Interface (MPI) system to Nahanni. Using microbenchmarks and the GAMESS application, we show how MPI-Nahanni has higher bandwidth and lower latency (by up to an order of magnitude or more), and better performance than existing VM-based IPC techniques.

  • Subjects / Keywords
  • Graduation date
  • Type of Item
  • Degree
    Master of Science
  • DOI
  • License
    This thesis is made available by the University of Alberta Libraries with permission of the copyright owner solely for non-commercial purposes. This thesis, or any portion thereof, may not otherwise be copied or reproduced without the written consent of the copyright owner, except to the extent permitted by Canadian copyright law.
  • Language
  • Institution
    University of Alberta
  • Degree level
  • Department
    • Department of Computing Science
  • Supervisor / co-supervisor and their department(s)
    • Lu, Paul (Computing Science)
  • Examining committee members and their departments
    • Minev, Peter (Mathematical and Statistical Sciences)
    • Jagersand, Martin (Computing Science)