Posted: 10 Mar 2017 | 15:39
Measuring performance is a key part of any code optimisation or parallelisation process. Without knowing the baseline performance, and what has been achieved after the work, it's impossible to judge how successful any intervention has been. However, it's something that we, as a community, get wrong all the time, at least when we present our results in papers, presentation, blog posts, etc... I'm not suggesting that people aren't measuring performance correctly, or are deliberately falsifying performance improvements, but the incentives to make your work look as impressive as possible causes people to present results in a way that really isn't justified.
Posted: 10 Mar 2017 | 13:54
Thread and process binding
Note, this post was updated on the 23rd March 2017 to include how to bind threads correctly on Cray systems (aprun -cc rather than taskset)
Making sure threads and processes are correctly placed, or bound, on cores or processors is essential to ensure good performance for a range of parallel applications.
This is not a new topic, and has been covered well by others before, ie http://www.glennklockwood.com/hpc-howtos/process-affinity.html. Generally this is just handled for you; if you're running an MPI program then your mpirun/mpiexec/aprun job launcher will do sensible process binding to cores.
Posted: 2 Feb 2017 | 11:37
Fluidity for tidal modelling
Figure 1: Mesh for the Sound of Islay tidal simulation. Courtesy Dr Creech.
We were recently involved in a project to optimise the CFD modelling package Fluidity for tidal modelling. This ARCHER eCSE project was primarily carried out by Dr Angus Creech from the Institute of Energy Systems in Edinburgh.
Posted: 27 Jan 2017 | 14:30
For those of you not acquainted with OpenFOAM, it's a large open source CFD package used by a wide variety of scientists and companies to investigate a whole range of scientific and engineering problems.
We support it on ARCHER and have a number of different versions available and in use on the machine. As part of our IPCC work we are interested in looking at the performance of OpenFOAM on the latest Xeon Phi processor, Knights Landing (KNL).
Posted: 15 Dec 2016 | 13:05
In a previous blog post I talked about ePython, the very lightweight version of Python that I have developed for the Epiphany co-processor. This co-processor is combined with a dual core ARM CPU on the Parallella single board computer, and this week an updated OS image was released for the machine which now includes ePython pre-installed.
Posted: 24 Nov 2016 | 14:32
NEXTGenIO was one of several EC-funded exascale projects that we started work on last year. Here’s what’s been happening since it launched.
Posted: 10 Nov 2016 | 11:24
Supercomputing, the biggest conference in our calendar, is on next week and one of the activities I am doing is presenting a paper at the workshop on Python for High-Performance and Scientific Computing.
Posted: 7 Nov 2016 | 15:32
I promised in a post last month that I'd write some more about the PrimeGrid project, and it so happened this week that we made a discovery which gives me a good excuse to blog! On 31st October 2016 at 22:13:54 UTC a computer owned by Péter Szabolcs of Hungary reported via the BOINC distributed computing software that the number 10223*231172165+1 was prime.
Posted: 16 Sep 2016 | 11:34
Recently EPCC's Alan Gray and I attended a workshop at Donington Park held by Roborace. For those who've not heard of Roborace, it's a project to build and race autonomous cars, along the lines of Formula 1 but without any drivers or human control of the cars. Actually, it's more like Formula E but without drivers, as the plan is for the cars to be electric.
Posted: 1 Sep 2016 | 10:03
The ADEPT project is creating tools that can be used to design more efficient HPC systems.
Energy efficiency is one of the key challenges of modern computing – in an era where even the most efficient supercomputers come with massive energy bills, technology that can help to increase energy efficiency is critical to sustainable HPC development.