Hello! My name is Caelen, and I’m from Ireland. I’m currently in the final year of my undergraduate degree in mathematics in Trinity College Dublin. I love interesting solving interesting problems, and sharing them with others. When I started programming, I was amazed by how useful mathematics was, and the way in which it lets you create solutions not possible otherwise – as a simple example, what’s fastest way to add the fibonacci numbers together (these are 1, 1, 2, 3, 5, 8,…)? This is the main reason why I am study mathematics, and why I’m always excited to apply what I’ve learnt to programming.
The image above is a paper crane, a traditional origami model. I created this image in Blender myself, rendering it on the Galileo supercomputing cluster at CINECA this week! My other hobbies include games of all types and their design, particularly board games, reading, knitting and hiking. Some favorites include “Terra Mystica” and “Splendor” among games, and “Children of Time” and “Annihilation” among books. I’m sure I’ll slip in some more about these things at the edges of future blog posts, watch this space!
Training Week @ CINECA, Bologna
This week, I am staying in Bologna near the CINECA high performance computing (HPC) research center. The other participants and I have been given a thorough crash-course in the principles of HPC and a refresher on the best principles of social media. While I’ll do deeper dives into these topics later and how they apply to my project, I’ll give a quick summary now!
The first focus has been social media – we’ve been taught the best principles of blogging and use of micro-blogging platforms such as Twitter. For example, do you know how search engines find your posts? They don’t normally take the time to review each word you say, so proper use of social media tags are essential. I’ve tagged this post under origami, which means that both users of the site and search engines will be more likely to associate it with the correct subject matter. Use of too many tags will upset search engines however, triggering spam filters, so be careful!
We’ve also been taught the basics of parallel computing on a large cluster like Galileo here at CINECA. Running your code on a parallel computer boils down to running many, very similar programs at once, all of which can communicate (ideally without waiting for the others). If we want to run all of these programs across different computers in a supercomputer, we use MPI (Message Passing Interface), a programming library which allows you to communicate over a network, like the wires shown below in the MARCONI supercomputer, the largest cluster in CINECA. This communication is quite slow, so we try to keep programs as separate as possible.
If you only want to run your program on all of the different processors of one computer, we use OpenMP (Open Multi-Processing). Here, we can communicate quickly and efficiently, so we can adopt a different style when programming, which allows us to say keep a running total of results from all the processors without slowing their computation down unnecessarily. This is what is used inside of Blender to render images like those above in parallel.
While there are many tricks to handle more complicated situations, making a problem run in parallel works best when it can be broken down into small independent blocks. For example, when rendering the images above, I instructed Blender to break down the image into small squares. It then gave the squares to the 16 processors I had been allocated on Galileo, and figured out what the image would look like using the Cycles render engine and the models I gave it.
My Project @ EPCC, Edinburgh
I’ll be working in Edinburgh at EPCC this summer, on the project “Parallel Computing Demonstrators on Wee ARCHIE”. Wee ARCHIE is an unusual computer – it is in fact made of 16 Raspberry Pi chips – each very small, lightweight computers connected together so that they can work as a single machine. To each chip is attached an LED panel, allowing me to display what is occurring on the chip and how it is communicating to other chips. I will be implementing a coastline management program – simulation of flood and wave barriers, and using the LEDs to make sure it’s very obvious how this is happening in parallel to a non-expert in computing.
On the weekends in Dublin, I teach extracurricular classes in maths to secondary/high-school students in a local university, but I’ve never gotten a chance to explore computer science education. I’m excited to work on such a visual, interactive project! I’ll fill you all in on the project in more detail when I hit the ground in Edinburgh.