High Performance Physical Simulation with the Julia Language

Description

Computer simulation is fundamental to many areas of science including chemistry, materials science and fluid dynamics.  Computer experiments can be conducted over a wider range of conditions and at scales (both very small and very large) that would be impractical for a physical experiment.  As the complexity of scientific applications increases, programming models must evolve to support productive development of codes that fully exploit the parallelism available on modern computer architectures.

Proxy applications are used by domain scientists to communicate requirements to hardware architects and system software developers [1].  A proxy app provides a critical tool to evaluate parallel programming models for high performance scientific computing, by capturing the essence of a complete scientific code in a small specification that is flexible enough to permit varied and creative implementations.
 
Julia is a modern language designed for productive development of high performance numerical codes [2]. As well as generating efficient, vectorized code, Julia supports both multithreaded and distributed multi-task parallelism.  In this project, you will use one or more scientific proxy apps to evaluate and extend the parallel programming model in the Julia language.
 

Goals

  • Evaluate the Julia parallel programming model using one or more scientific proxy applications
  • Improve support for high-performance computing in Julia

Requirements

  • Strong programming skills
  • Interest in numerical computing, applied mathematics and/or physics

Gain


Keywords


Updated:  1 June 2019/Responsible Officer:  Dean, CECS/Page Contact:  CECS Marketing