ISCA2017 - distributed gem5

Title: dist-gem5: Modeling and Simulating a Distributed Computer System Using Multiple Simulation

Sunday, June 25, 9:00 to 12:30

44th International Symposium on Computer Architecture, June 24-28, 2017, Toronto, ON, Canada

List of organisers/presenters


The single-thread performance improvement of processors has been sluggish for the past decade as Dennard’s scaling is approaching its fundamental physical limit. Thus, the importance of efficiently running applications on a parallel/distributed computer system has continued to increase and diverse applications based on parallel/distributed computing models such as MapReduce and MPI have thrived.

In a parallel/distributed computing system, the complex interplay amongst processor, node, and network architectures strongly affects the performance and power efficiency. In particular, we observe that all the hardware and software aspects of the network, which encompasses interface technology, switch/router capability, link bandwidth, topology, traffic patterns, and protocols, significantly impact the processor and node activities. Therefore, to maximize performance and power efficiency, it is critical to develop various optimization strategies cutting across processor, node, and network architectures, as well as their software stacks, necessitating full-system simulation. However, our community lacks a proper research infrastructure to study the interplay of these subsystems. Facing such a challenge, we have released a gem5-based simulation infrastructure dubbed dist-gem5 to support full-system simulation of a parallel/distributed computer system using multiple simulation host. This tutorial will cover an introduction to dist-gem5 including relevant background knowledge.



More specifically, the tutorial will provide the following.

09:00 – 10:00 Introduction (60 min)
10:00 – 10:15 Break (15 min)
10:15 – 11:15 dist-gem5 deep dive (60 min)
11:15 – 11:30 Break (15 min)
11:30 – 12:00 dist-gem5 examples (30 min)

Program for the tutorial




Previous tutorials