Programming Fun under the Rare Edinburgh Sun
The disappointment of my delayed arrival due to visa issues was quickly made up by the warm welcome that Edinburgh provided me. For a long time, I have heard about how Edinburgh has dull weather even during summer, when it tends to be wet and windy. This summer, however seems to be different with most days being bright and sunny, almost perfect for camping.
I am working at the Edinburgh Parallel Computing Centre (EPCC) in the University of Edinburgh. The project I am associated with is Addressing Energy in Parallel Technologies (Adept) project, where Dr. Nick Johnson is principally guiding me. Dr. Nick has been very helpful not only on the work front, but also with getting me acquainted with the rest of the group and getting familiar with the places in this huge campus.
Adept is a 3-year, EC-funded FP7 project concerned with measuring, analyzing and predicting the power usage of computer systems. Led by EPCC, it involves partners in academia and industry from Belgium, Sweden and the UK. The Adept project is aimed at conducting studies on the energy utilization and efficiency of computing systems of all sizes, right from embedded SoC based systems to supercomputers such as the ARCHER.
I was given access to some of the code repositories of the Adept project. I spent the first week understanding the codes, mostly benchmarks used to characterize the power consumption at different levels. The benchmarks themselves are at different levels of complexity namely, micro-benchmarks, kernel benchmarks and application benchmarks.
My role in the Adept project is to develop methods for visualization of the energy utilization of the aforementioned systems. I have used the results obtained from running benchmarks on systems such as the ODROID and Intel boards, which they have available here.
The tool I am developing will have a Qt-framework based GUI front-end. I am making use of QCustomPlot library to incorporate the plotting functionalities. I intend to develop a heat-map in order to visualize the power consumption of the different components of the computing system. Additionally, as suggested by the member of the group, I would also be developing a timeline profile of the energy consumption.
Another idea that I had pitched forward was to provide a real-time visualization of the energy consumption, which would prove highly beneficial in larger systems. The final tool would include provisions for this as well.
My learning at EPCC has been quite comprehensive in the short amount of time I have spent here. The weekly group meetings have been very intriguing, as I have been getting a flourish of new ideas in the fields of my interest. The project is contributing hugely to my software engineering skills and also widening my knowledge about benchmarking and characterization of computing systems from an energy utilization point of view. I am enjoying the dynamics of working on a collaborative project.
The large halls and labyrinthine corridors of the University of Edinburgh still have me in awe, some 20 days after my arrival here. EPCC is located in the James Clerk Maxwell Building, which is home to one of the greatest physicists alive, Peter Higgs. The University is also home to JC Maxwell, whose theories in electromagnetism cannot be done without in the world of physics. The halls and the corridors seem to have a powerful aura of the greatest minds in physics. The association with a university, which was home to some of the biggest names in science itself, is a great motivation to work at EPCC. That combined with the constant guidance and motivation given by my colleagues and superiors at EPCC makes for an incredible learning experience.
I would like to thank the PRACE Summer of HPC program for providing me such an amazing opportunity to expand my skills.
Figure 1 In front of the Edinburgh Castle
Figure 2 The 300+ year old University of Edinburgh Old College
Figure 3 The James Clerk Maxwell Building at the University of Edinburgh
Figure 4 Traditional Scottish Bagpipe player
Figure 5 Sights from the Edinburgh Festival Carnival
The SoHPC Experience
HPC discussions, CUDA tutorials and goodbyes
One month has passed by in the blink of an eye during my stay at Edinburgh. I was involved in some very interesting and intense discussions in the team meetings of the Adept Project at EPCC. The challenging problem of energy efficient usage of parallel technologies is the main focus of the Adept project. The ultimate goal of the project being to develop a tool that would guide parallel software developers to model and predict the power consumption and performance of their parallel software and hardware. It was an invigorating experience to be a part of discussions about the architecture the state-of-the-art parallel hardware such as the Parallela. I had a very steep learning experience through these discussions in the team meetings and also with my personal appointments with my mentor Dr. Nick Johnson.
During my stay in Edinburgh, I was also given the opportunity to take part in an all day hands-on CUDA training session conducted by Dr. Alan Gray. The tutorial was focused primarily on writing good CUDA code and the use of a web-based interface for compilation of the code meant that much less time was actually spent on setting up the infrastructure for the tutorial. This was a well-organized aspect of the training session, which started off with a couple of presentations about GPU architectures and CUDA programming basics.
We then moved on to writing our first CUDA program and also some basic CUDA programs. The afternoon session was spent on learning some advanced concepts in CUDA, at the end of which we were expected to perform CUDA optimizations in a code, which performed iterative stencil operations on an image. This problem was particularly chosen since it mimics several scientific applications, which involve the solving of PDEs in a similar manner. The entire training session was a very fulfilling experience and provided me a good insight into the nuances of CUDA programming. I would be interested in learning more advanced concepts in CUDA.
The visualization tool, which I was developing for the Adept project was also coming along nicely. I had enabled the tool with the functionality of plotting a timeline profile of a desired metric. I also designed a GUI front-end using the Qt framework (screenshot of the GUI provided). In addition to these, I programmed the functionalities of real-time plotting, which could be used to monitor the power consumption of computing systems live as an application is running.
The team members of the Adept project particularly appreciated the real-time plotting functionality. It could be quite useful in monitoring the power consumption associated with running applications on larger systems. The other significant addition to the tool, is the generation of a heatmap. This heatmap shows the power consumption of specific regions of the computing system with reference to an absolute number. The color scheme of the heatmap can be changed as well. The heatmap could be used to analyze the power consumption trends during different application phases.
On the 27th of August, I delivered a demo of the visualization tool to the team members. The demo was followed by suggestions coming in from all of them. I used these suggestions to fine-tune the tool and improve the functionality of the tool.
It was soon time to bid adieu to the beautiful city of Edinburgh. I went with the team to a nice restaurant for dinner, where I had informal chats with them. Overall, the experience showed me the area of High Performance Computing in a different light. I got an insider’s perspective into the way research groups work and acquired immense knowledge about the state-of-the-art in HPC today. The weekly meetings were a great food-for-thought related to issues in the field of HPC. This experience has definitely motivated me to pursue a research career in HPC. I am going back to Barcelona to continue my Masters in HPC with renewed vigor.
Figure 1 : Screenshot of the visualisation tool
Figure 2 : Sample plot with main title and axis title editable
Figure 3 : Selection of specific region of the sample plot