Entrance hall of the ICMS Workshop

Automated Code Generation

Jul 01, 2014

ICMS, 15 South College Street, Edinburgh, EH8 9AA

In writing a computer program there is a natural division between the intention of the programmer, expressed as high-level source code, and the implementation of the intention on a particular machine, formed from low-level machine instructions. Moreover it is natural to utilise the computer itself in order to compile the former to yield the latter. New automated code generation techniques are extending this principle so that a numerical model can be expressed in a form which closely resembles mathematical notation, and which can be compiled into efficient working model code. This enables a clear division between the abstract mathematical representation, and its practical implementation on specific hardware. Crucially, support for new architectures and parallelisation techniques can be introduced at the level of the compiler. This provides a powerful technique for implementing scientific codes on current and future high-performance computing resources.

Automated code generation techniques are seeing diverse and increasing applications in scientific research and engineering. These approaches divide the details of program or model design from the details of the low-level implementation. This provides a separation between application specific details, such as the choice and design of numerical algorithms or discretisations, from optimisation and hardware specific details, such as low-level optimisation and parallelisation. Automated code generation can therefore enable the rapid development of complex numerical models and algorithms, while maintaining efficiency and portability on existing or developing computer architectures.

This one day workshop on automated code generation will bring together speakers with expertise in the areas of optimised discrete Fourier transforms, parallel computing on Graphics Processing Units (GPU), portable automated code generation techniques on high-performance computing resources, and high-level algorithmic differentiation.

This workshop is sponsored by NAIS (the Centre for Numerical Algorithms and Intelligent Software) 



The workshop will be held at 15 South College Street, Edinburgh. All lectures will be held in the Newhaven Lecture Theatre. The Lecture Theatre is equipped with a data projector, computer, visualiser and two blackboards. The projector and one board may be used simultaneously.

A taxi directly from the airport will cost approximately 16.00 to 20.00 GBP to the city centre for a one-way journey. There is also a bus service direct from the airport to the city centre which will cost 3.50 single or 6.00 GBP return - the Airlink 100. This is a frequent service (every 10 minutes during peak times) and will bring you close to Waverley Railway Station, close to the workshop venue (see map in 'Venue' section above).
Lothian buses charge £1.50 for a single, £3.50 for a day ticket. Please note that the exact fare is required and no change is given.
If travelling by train, please note that Edinburgh has two railway stations - Waverley Railway Station being the main station and closest to the workshop venue at 15 South College Street. If you alight at Edinburgh Waverley, the workshop venue is an easy 10 minute walk over North and South Bridge. The second railway station is called Haymarket and is at the West End of the city centre.


• Invited Speakers: accommodation will be arranged by ICMS and full details will be emailed nearer the time of the workshop. Travel reimbursement details will be confirmed via email.

• Other Participants: here is limited funding to assist with travel/accommodation for post graduate students, early career and other researchers based in UK universities. Should you wish to apply for this, please complete the relevant section in the registration/application form.

Wireless Access
The workshop venue, 15 South College Street, has wireless access throughout, both Eduroam and another network. On arrival at Registration you will be given instructions and a code for accessing the wireless network. For those without laptops, there will also be a couple of computers available for you to check your emails.

To request a place at this workshop please complete the Registration/Application Form. (Please note: Speakers will be sent links to a separate registration form)


The programme is shown below


Tuesday 01 July 2014




David Ham (Imperial College London )
Firedrake: automating the finite element method by composing code generation layers


Garth Wells (University of Cambridge)
Expressive Scientific Computing




Mike Giles (University of Oxford)
Automated code generation for finite volume and finite difference applications on GPUs and CPUs


James Maddison (University of Edinburgh)
Rapid adjoint development for transient finite element models




Steven Johnson (MIT)
From FFTW to Julia: Code Generation in High-Level Languages


Wine Reception


Name Institution
Aleksanyan, Hayk The University of Edinburgh
Basios, Michail University of Edinburgh
Bolea, David Heriot-Watt University
Bording, Ralph (Phil) Alabama A&M University
Cebamanos, Luis EPCC
Dubach, Christophe University of Edinburgh
Giles, Mike University of Oxford
Ham, David Imperial College London
Hijaze, Muhannad Herriot Watt university
Holmes, Daniel EPCC
Jessica, Chen-Burger Heriot-Watt University
Johnson, Steven Massachusetts Institute of Technology
King, Stuart University of St Andrews
Kursungecmez, Hatice University of Edinburgh
MacNeil, Mike University of Edinburgh
Maddison, James University of Edinburgh
Ogilvie, William University of Edinburgh
Qiang, Feng University of Edinburgh
Sachs, Matthias University of Edinburgh
Sime, Nathan The University of Nottingham
Wells, Garth University of Cambridge