1907 Caelen Feller, Parallel Computing Demos on Wee Archie
Articles,  Blog

1907 Caelen Feller, Parallel Computing Demos on Wee Archie


>>CAELEN: Hi, my name is Caelen Feller.
For my summer of HPC, I’ve been building interactive high performance computing
demonstrations for outreach in the Edinburgh Parallel Computing Centre. Today I’ll provide an overview of my project,
focusing on my results with an accompanying explanation. For more details
please read my report. Here, you can see the target machine for my
project, where I run all of my demonstrations, Wee Archie. Wee Archie is
made up of 16 Raspberry Pi Chips, each of which have an LED panel attached to
it which can be used to show a simple visual output. Here the arrows moving
between Pis are showing the communication between them, which I’ll
explain shortly. The main goal of my project was to create
visualisations and examples for every type of communication possible with the industry
standard library in HPC, MPI and to make it easy to apply these animations
to any existing or future demonstrations by creating a developer-friendly
framework around them. I’ve done this by using python to run an animation
web server on each Pi. This makes it easy to visualise communications,
no matter the tools used in the demo, as it all occurs over the network. To demonstrate and test this framework, I’ve
created a series of demos showing all the basic communication types.
Here you can see a send and receive operation, where one Pi sends a message to
another directly. When a send or receive is started, the displays will show
the source or destination before initiating the transfer between the two, waiting
for both to be ready before starting the animation. Here you can see this concept taken further,
with all the Pis passing messages to each other in a loop, which snakes up and
down the columns, returning to the start. This could be useful for passing
a message around in a circle, or adding up results from all of the Pis, but
there is a better way of doing this! Previously, you saw one Pi communicating with
another. Here, you can see many of them communicating at once in
4 different ways: broadcasting, gathering, scattering and reduction – let’s
focus on broadcasting. Here, one Pi wants to send a message to every
other one, as quickly and efficiently as possible. This is a simplified
way of showing this, focusing on the effect rather than the method. Here is
more detailed view of a possible way of doing this. A message passes from one Pi
to all others very quickly, as all of the Pis spread the message once they’ve
received it, creating a tree-like pattern. To make it easier still to develop visualisations
using MPI in C and Fortran, I created a wrapper to handle the network requests
using the MPI profiling interface, which is normally used to measure
performance. This means a developer needs to do no extra work to show their communications
with normal MPI code, though they can also use custom animations,
as I’m about to show. Normally, there is a computer connected to
Wee Archie to allow for interactive demos which is done here in the most recent
demo made for Wee Archie, the Coastal Defence Simulator. Created by my project
mentor Dr. Gordon Gibb, this simulation shows a small coastal town which
needs defence from erosion. Your goal is to place concrete barriers in the
ocean as efficiently as possible in order to reduce the cost of damages and make
a saving working with a budget. Once the barriers are placed, Wee Archie will
simulate the waves coming in and the damage they cause to the coastline. To
do this, it breaks the ocean into small strips, each of which are given to a
single Pi. However, in order to properly allow waves to pass through the simulation
from top to bottom, they need to communicate. To do this, after each
tick of the simulation they swap their edges with the pi above and below them,
snaking up and down as in the loop example previously – this operation is called
a haloswap. As you can see in the costal defence simulation,
giving a narrative to a demo is really helpful for engagement. To better integrate
all of the demos, I made the secondary goal of my project the creation
of a unified web interface for the demonstrations. To test it out I made tutorials
accompanying my basic demos, which you can see now. In these tutorials,
you can play any of the demos directly from your browser if you’re connected
to Wee Archie! All of this code will be published on the
Wee Archie Github repository, worked on further by the those doing outreach at
EPCC, and run at large science fairs and conferences with Wee Archie in the not
so distant future! I’m really grateful to EPCC and the Summer of HPC program
for the opportunity to have worked on such an exciting project with such
a meaningful impact. Thank you.

Leave a Reply

Your email address will not be published. Required fields are marked *