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.

These micro-core architectures are very many simple, low power, low memory cores placed on a single (often very cheap) chip. There are numerous examples such as the 1024 core Epiphany V, 256 core Knupath Hermosa, 256 core Kalray Bostan, and the XMOS XCore. This means significant parallel performance at very low power and there is interest in using these not only for traditional high performance computing (HPC) but also in other fields such as the embedded space.

However currently they are difficult to program and take advantage of, not least because each technology is different, with its own idiosyncrasies and they each present different low level interfaces to the programmer. 

The challenge

One of the key questions is how to make these more accessible to potential programmers, who might not be experts in computing or parallelism, but in other fields such as machine learning. I have developed ePython, a very low memory version of Python that allows people to quickly and easily write highly parallel Python codes for the Epiphany micro-core chip.

Using ePython it is possible for somebody to go from “zero to hero”, ie to write a simple parallel hello world example with no prior experience in less than one minute. A variety of different parallel programming paradigms, such as message passing, shared memory and task based parallelism, are supported and easy to experiment with. In addition, we have also developed an offload abstraction where programmers can view these micro-core architectures as accelerators. By decorating functions in their CPU codes these are then seamlessly offloaded to the micro-core co-processor. A machine learning neural network for detecting lung cancer in 3D CT scans has been accelerated in this fashion, where the calculations involved with training the neural network have been offloaded to the Epiphany.

Potential research directions

This research project would involve tackling some of the challenges that our current work has identified which include, but are not limited to: 

  1. How can we best optimise high level interpreted languages for these micro-core architectures?
  2. Can the approach adopted in ePython be ported to other state-of-the-art micro-core architectures? 
  3. What is the best way different applications can take advantage of this new technology? 
  4. Novel programming language abstractions for easing and/or standardising the porting of codes to micro-cores. 

Candidate prerequisites

Applicants should have a good degree in Computer Science or related discipline. They should have a strong programming background, preferably with experience in C. It is desirable, but not essential, for the candidate to have some prior experience in the field of HPC and be familiar with the major parallel programming technologies such as MPI and OpenMP. Again it is desirable, but not a prerequisite, to have had some exposure to compilers, interpreters and runtimes, possibly as part of a university course. In order to be eligible for this funding you must either be a UK national or EU national who has been resident in the UK for at least three years (see our PhD Scholarships & Funding page for more information.)

Interested?

Then get in touch! If you are interested and want to find out more then feel free to email me at n.brown@epcc.ed.ac.uk .

Further information

Entry in Find a PhD