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.
Many people rely on compilers, for languages such as C, C++ and Fortran,
to create executable programs from source code. Just like our source code,
compilers themselves may have bugs. In this post we look at common forms
of compiler bug, with examples, and what we can do when our work is affected
by such an issue.
This article presents a selection of useful tips for running successful and
well-performing jobs on the QMUL Apocrita cluster.
In the ITS Research team, we spend quite a bit of time monitoring the Apocrita
cluster and checking jobs are running correctly, to ensure that this valuable
resource is being used effectively. If we notice a problem with your job, and
think we can help, we might send you an email with some recommendations on how
your job can run more effectively. If you receive such an email, please don't
be offended! We realise there are users with a range of experience, and the
purpose of this post is to point out some ways to ensure you get your results
as quickly and correctly as possible, and to ease the learning curve a little
bit.