Our summer as Software Engineers
In this post, we hear from two of our 2019 Summer Placement students as they share their experiences of working at the Hartree Centre. Read on to find out more about the projects they got involved with during their time as part of our Research Software Engineering team.
“I applied to the Hartree Centre having heard about STFC’s excellent culture and people from a friend who had worked with them previously. After completing the placement, I have been left excited to finish university in the hope to return to the Hartree Centre and its excellent RSE team in the future. The skills and knowledge I have gained working with HPiC have been innumerable and will all be incredibly valuable assets for me to use during the final two years of my computer science degree. I am thankful for the opportunity given to me by the Hartree Centre and the help and support given by all its staff.”James Beck, 2nd year Computer Science student, University of Sheffield
“I decided to work at the Hartree Centre this summer because as a physicist, I am very aware of the crucial role that computing, and in particular HPC, plays in multiple areas of current research and I wanted to learn more about how it works and how it can be used. Whilst I had done some programming with python in the first two years of my degree course, I am not from a computer science background, so this placement was definitely a steep learning curve for me. I was amazed by the amount of help and support my colleagues were able to offer me, and I have learnt so much from this experience. Now I am going back for the final year of my BSc and I am keen to find ways to apply my new skills to the rest of my degree and my career, in particular for my BSc project, which I hope to undertake using applications of HPC in space physics.”Elizabeth Porter, 2nd year Physics student, Imperial College London
Our role at the Hartree Centre was to develop interactive demos for the Hartree Centre Raspberry Pi Cluster (HPiC), an outreach tool used for demonstrating concepts and applications of high-performance computing (HPC) in public engagement scenarios. HPiC already had a small number of generic HPC demos when we arrived but we were tasked with creating more demos, based on actual Hartree Centre projects, to show off the variety of work that takes place at the Hartree Centre.
One of our first tasks was to learn how to use MPI (message passing interface). Neither of us previously had any background in HPC nor parallel computing, so this would be essential knowledge for coding on HPiC. MPI is used as a standard to enable communication between processes. If you had multiple people working on one task at the same time, they would have to communicate progress or information to one another, parallel code is the same. MPI is important for any work that features parallel computing and is a big part of any code run on the HPC systems and platforms at the Hartree Centre. To get the basic introduction to MPI, we worked through an online course making sure to implement our new knowledge in practice with the course exercises. These exercises ranged from calculating pi, message “ping-pong” and traffic modelling. We both enjoyed learning MPI and now feel confident using it in future projects or throughout our studies.
Our first coded project was to design and build a (GUI) Graphical User Interface to allow people to easily select demos they may want to run on HPiC. At the start of our placement demos were run with a command line input in the terminal. These were still in the early stages of development and we were looking to develop their usability and interface. It was important that the GUI looked professional and was easy to understand, to achieve this we used large pictures which gave a demo preview, making them stand out against a black background. This was a great first project as we learnt to work together using Git and had a chance to retrain our Python programming muscles. The GUI came out great – we’ve also documented it so that it can be extended by future HPiC Demo developers.
Testing our learning
The next challenge was a test of everything we had learnt so far. We were tasked with designing and testing a demo based on a NLP (Natural Language Processing) project completed by the Hartree Centre Data Science team. The goal of this project had been to provide annotations on structural biochemistry texts. Specifically, surrounding protein chain components at the amino acid residue level – this is at a “higher resolution” than what is normally carried out. This project would help future researchers to find papers or research related to their work instead of having to trawl through lots of existing buried research. The demo combined our new knowledge of MPI and the creation of a Python GUI and we went on to suggest that a big part of the demo could be a real time screen showing the distribution of the papers over the 19 Raspberry Pi’s that would processing them. This was difficult task and led me (James) to have to learn Python threads and PyQt5 which is knowledge I’m sure will be useful going into my third year. The user can then look at the relationships between the papers highlighting the essence of the project which is to help people find papers that are linked to one another easily.
Creating a game
In the last few weeks of the summer, I (Lizzie) started work on a demo for a recent project with Weather Logistics – an SME aiming to provide field-level seasonal weather forecasts for growers. The Hartree Centre team had recently worked with Weather Logistics to refactor and parallelise their code base, saving them over two months of compute time in producing 24 years’ worth of historical weather data. My task was to create an interactive demo based on this project, as an example of one application of supercomputing, and to demonstrate the Hartree Centre’s capabilities for processing large quantities of data. After brainstorming ideas for a few days, we settled on creating a lettuce farm game, in which the user would select a 5×5 km field location anywhere in the UK. The player would then be shown graphical data for the weather conditions over a three-year time period, and given a score based on how well lettuces would have grown in this location over the time period based on weather data alone. This seemed a good choice because it would show the quantity of data available graphically and demonstrate how the data can be used to help lettuce farmers in a simple and engaging way. To create the demo I used PyQt5, Python bindings for the Qt User Interface framework. Having not used PyQt5 before, and not being very experienced in creating User Interfaces (UIs) either, getting to grips with it in just a couple of weeks was a challenge, but it was fun to create a game like this from scratch and I am now confident in my abilities to create simple UIs in future.
Sharing our work
On the 4 September 2019, towards the end of our placement, we had the opportunity to attend INTERACT 2019, an STFC public engagement symposium hosted at UCLan. In the morning, we were able to attend workshop sessions discussing various aspects of public engagement and outreach, including how we can combat stereotypes of scientists and encourage more young people to pursue STEM subjects to higher education. Then over lunch, we ran a stall showcasing HPiC and its demos (including the new Weather Logistics demo, which was received really well) to the other delegates present. It was fantastic to be able to present our work and to get productive feedback on our demos, while also taking the opportunity to hone our presentation skills. In the afternoon we explored some of the other stalls that had been on display which covered a wide range of engagement activities in STEM, from Harry Potter-themed experiments to space and light shows in the Explorer Dome. The whole day was a great chance to engage with a wide range of people interested and/or working in outreach within STEM and to find out what research and activities other people are doing to further public engagement, as well as to show off 8 weeks of work on HPiC.
Provide your details to receive regular updates from the STFC Hartree Centre.