Software development

Balancing act: optimise for scaling or efficiency?

Author: Adrian Jackson
Posted: 26 May 2017 | 19:30

When we parallelise and optimise computational simulation codes we always have choices to make. Choices about the type of parallel model to use (distributed memory, shared memory, PGAS, single sided, etc), whether the algorithm used needs to be changed, what parallel functionality to use (loop parallelisation, blocking or non-blocking communications, collective or point-to-point messages, etc).

Speeding up Python on ARCHER

Author: Nick Johnson
Posted: 21 May 2017 | 16:12

45 minutes is a long time for a computer: 2,700 long seconds. For a supercomputer like ARCHER that's a lot of time to spend getting ready to do work, but this is the problem faced by the firedrake team who we work with as part of the Marine Technology project.

Global Challenges Research Fund: Research for Emergency Aftershock Response

Author: Amy Krause
Posted: 24 Apr 2017 | 11:21

Recent devastating earthquakes in Nepal and Italy have illustrated the need for better understanding and more accurate operational forecasting of aftershock sequences to assist emergency response. This project is a multi-disciplinary collaboration to develop risk assessments for earthquake aftershocks using dense networks of traditional seismometers, and to explore the use of mobile phones as sensors and for community engagement. 

Work experience at EPCC

Author: Guest blogger
Posted: 10 Apr 2017 | 16:06

Guest blogger Kara Moraw is an undergraduate Informatics student in Bonn, Germany. Here she writes about her 4-week internship with EPCC, spent working with EPCC's Nick Brown on the ARCHER outreach project.

EPCC PhD opportunity in micro-core architectures

Author: Nick Brown
Posted: 4 Apr 2017 | 14:51

At EPCC we are currently advertising a number of funded PhD opportunities (see our PhDs in HPC webpage). I am proposing a project entitled Improving the programmability of micro-core architectures, which builds on some of the work I first discussed in a previous blog post on ePython.

Summer of HPC 2017 at EPCC

Author: Nick Brown
Posted: 17 Jan 2017 | 12:30

PRACE’s Summer of HPC programme has been running for quite a few years now. Each year around twenty students from universities across Europe travel to different countries to spend eight weeks at an HPC centre, working on a project with a mentor.

ePython now ships as standard with every Parallella board

Author: Nick Brown
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.

Demystifying data input to TensorFlow for deep learning

Author: Alan Gray
Posted: 29 Nov 2016 | 10:07

Shape SorterView this post on GitHub

TensorFlow is an incredibly powerful new framework for deep learning. The “MNIST For ML Beginners” and “Deep MNIST for Experts” TensorFlow tutorials give an excellent introduction to the framework. This article acts as a follow-on tutorial which addresses the following issues:

  1. The above tutorials use the MNIST dataset of hand written numbers, which pre-exists in TensorFlow TFRecord format and is loaded automatically. This can be a bit mysterious if you have no experience of data format manipulation in TensorFlow.
  2. Since the MNIST dataset is fixed, there is little scope for experimentation through adjusting the images and network to get a feel for how to deal with particular aspects of real data.

ePython: supporting Python on many core co-processors

Author: Nick Brown
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.

Testing code

Author: Stephen Booth
Posted: 24 Oct 2016 | 12:25

It's always a bit of an embarrassment when talking about your code tests. I think most developers know that they don’t have enough tests or that their tests are not good enough.

There is never enough time to either write or to run tests that fully cover all possibilities so, like all types of programming, testing becomes a compromise where you try to make the best use of the limited resources available for testing.