  With the increasing popularity of accelerator technologies (e.g., GPUs and
TPUs) and the emergence of domain-specific computing via ASICs and FPGA, the
matter of heterogeneity and understanding its ramifications on the performance
has become more critical than ever before. However, it is challenging to
effectively educate students about the potential impacts of heterogeneity on
the performance of distributed systems; and on the logic of resource allocation
methods to efficiently utilize the resources. Making use of the real
infrastructure for benchmarking the performance of heterogeneous machines, for
different applications, with respect to different objectives, and under various
workload intensities is cost- and time-prohibitive. To reinforce the quality of
learning about various dimensions of heterogeneity, and to decrease the
widening gap in education, we develop an open-source simulation tool, called
E2C, that can help students researchers to study any type of heterogeneous (or
homogeneous) computing system and measure its performance under various
configurations. E2C is equipped with an intuitive graphical user interface
(GUI) that enables its users to easily examine system-level solutions
(scheduling, load balancing, scalability, etc.) in a controlled environment
within a short time. E2C is a discrete event simulator that offers the
following features: (i) simulating a heterogeneous computing system; (ii)
implementing a newly developed scheduling method and plugging it into the
system, (iii) measuring energy consumption and other output-related metrics;
and (iv) powerful visual aspects to ease the learning curve for students. We
used E2C as an assignment in the Distributed and Cloud Computing course. Our
anonymous survey study indicates that students rated E2C with the score of 8.7
out of 10 for its usefulness in understanding the concepts of scheduling in
heterogeneous computing.
