The Apocrita scratch storage is a high performance storage system designed for short-term file storage, such as working data. We recently replaced the hardware that provides this service, and expanded the capacity from 250TB to around 450TB. This article will look at the recent changes, and suggest some best practices when using the scratch system.
A little while ago, we were approached by a researcher from the School of Mathematical Sciences with the classic request of "I'd like my code to run more quickly". They were simulating a ball bouncing around a billiard table over the course of millions of collisions and analysing patterns in the path of the ball (this type of problem is known generally as dynamical billiards).
Visual Studio Code (VS Code) is an open-source and lightweight text editor from Microsoft, and distinctly different from Visual Studio. In this short tutorial we aim to set up VS Code for remote interfacing and development on Apocrita, to edit, save, and manipulate our files and directories.
User-defined data types in Fortran may have parameters which control certain aspects of their definition. In this post we look at what these parameterized types are, how they are used and what benefits they may offer to the programmer.
Hello. I'm Iain, the newest recruit to the QMUL ITSR RSE team. We are the group of software engineers within ITS Research who help people at Queen Mary write readable, correct and high-performance research software.
I've taken the scenic route to research software engineering, having worked in telecoms network testing, crystallography and cancer research on the way. In that time, I've written C++, Java, Python and SQL for Linux, Windows and Android but, until recently, not for high performance clusters. I hope that my varied experience is going to complement that of my colleagues, Iain Barrass and Matthew Alexandrakis and I'm excited to learn from them both as they have long backgrounds in scientific computing.
In the next few months, I'm particularly looking forward to working on slow Python programs to speed them up with
cython, MPI and our HPC cluster, Apocrita. Python has some excellent unit testing libraries so I’m keen to talk test-driven development and continuous integration with anyone who’ll listen. If you're a researcher and you have software, Python or otherwise, that you would like some help with, you can get in touch with the team at our Slack workspace or by email.
Outside of work, you would normally find me at one of London’s many climbing walls. Since they aren't currently an option, you’ll sometimes catch me cycling the leafier roads of North London on my too-small but much loved road bike.
Overall, although starting in lockdown felt a little odd, the team are well set up for working from home and the nature of the work lends itself to it. While it would have been nice to meet my colleagues face to face, the combination of video calls for morning catchups, screen sharing when you can’t get something compiled/installed/configured and instant messaging for everything else has been a good alternative and will serve us well until we can safely return to campus.
In response to a coordinated security attack on HPC sites world-wide, it has been necessary to implement some changes to enforce a higher level of authentication security. In this article, we begin with providing some useful information to understand key-based authentication, and document the process for regaining access to the cluster; SSH keys and passwords were revoked for all users as a precautionary measure.
As a result of the large-scale shift to remote working due to the COVID-19 pandemic, we have been asked various questions relating to computational research, which we'll try to address below. We've seen an increase in the number of new account requests for the HPC service, and we realise there will be quite a few users wishing to run workloads on the cluster for the first time. Fortunately, the design of the HPC cluster service means that for many of you, your workflow may remain the same as when you were based on-campus.
A common first program to write in a new language is a "Hello world" example where we print a simple line of output. In this tutorial we first look at examples written in C, C++ and Fortran. To run the examples we'll learn about interactive sessions on compute nodes, modules and compiling source code. We'll also look at examples in MATLAB, Python and R. For these we'll see how to use modules to select suitable interpreters.