The Manchester SIAM Student Chapter is proud to host the first Julia workshop in the UK, consisting of six plenary talks and three practical sessions led by core Julia contributors. The workshop aims to explain what Julia is, how to use it and how it is used in areas such as optimisation, natural language processing, statistics, materials science and computational biology. The deadline for registration is 11 September. The event is free for students but there is a registration fee of £25 for non-students. If you would like to present a poster, ensure you have regstered (see below) then click here for more information on how to submit a poster proposal.

Plenary Speakers

Dr Simon Byrne

Julia Computing
This talk will give an overview of the rapidly developing Julia ecosystem of packages for data analysis, such as Distributions.jl, DataFrames.jl and GLM.jl. I will also demonstrate how to leverage existing libraries in other languages such as Python and R, via the PyCall.jl and RCall.jl packages. Finally, we will describe the future plans in this area.

Dr Jiahao Chen

Linguistic relativity is an important consideration in the design of programming languages, much as human languages influence how their speakers describe and think about the world. I present how to solve a simple data science problem in several different programming languages, illustrating how each solution uses a different set of abstractions to express different solutions to the same problem. Finally, I introduce some of the main abstractions in Julia, like generic functions and multiple dispatch, and how it is possible to express mathematical code elegantly using these abstractions.

Prof Christoph Ortner

I will describe my experience in using Julia for atomistic and multi-scale simulations. The focus in my own research has been the numerical analysis of these schemes, which typically involves numerical tests on toy models. However, without providing production quality implementations of new models and algorithms it is near-impossible to transfer ideas to the materials modelling community. Julia has been a superb tool by allowing the implementation of quick-and-dirty prototypes while enabling a continuous transition to “serious” materials modelling. This work is now starting to take shape in the form of the JuLIP.jl package (previously Atoms.jl). I will demonstrate it through a few examples taken from my own research and from other molecular simulation libraries.

Jarrett Revels

Automatic differentiation (AD), a collection of methodologies for computing exact derivatives of programs, is essential for modern scientific computing. In spite of growing awareness of AD, non-expert users face substantial barriers when applying these techniques in practice. These barriers are generally attributable to limitations of the available tools: AD tools developed in low-level languages are difficult to use, and AD tools developed in high-level languages are slow. This talk presents ForwardDiff.jl, a Julia implementation of forward-mode AD that bridges the traditional gap between usability and speed by offering performance competitive with similar C++ implementations. The package leverages Julia's novel performance model to support unique features like black-box function differentiation, simultaneous directional derivative calculation, efficient composability with user-defined types, and experimental parallelism via SIMD/multithreading. The talk will walk the audience through the package's implementation and usage, as well as highlight common AD pitfalls users should avoid.

Dr Pontus Stenetorp

In this talk I will give an introduction to key ideas in the field of Natural Language Processing (NLP) -- a sub-field of Artificial Intelligence that aims to allow machines to understand human language -- using Julia. After a brief historical overview, we will discuss why Julia is a good fit for implementing NLP systems, and then learn more about emerging topics such as representation learning using both theory and concrete Julia programs.

Dr Ben Ward

Earlham Institute
The 2 language problem describes a situation in which a software developer may prototype or write software in one of the many high­level programming languages (Python, R, Perl, Ruby, Matlab), but must re­write parts of the program in a lower level language (e.g. C) to achieve performance. Such lower level languages are considered more difficult, and more time consuming to develop with. The two language problem hinders science and scientists in several ways including longer development and testing times for biologists and this creates resistance to developing and maintaining high­quality professional software. The modern julia language for technical computing can solve this problem for scientists as it is a dynamic and high level language with the ease of use of Python, but the performance of C. Critically, a scientist needs to only write in the one language to create a piece of software that is performant yet easier to create, understand, and modify. This is possible due to the combination of its features and design: by combining a type system, type inference, multiple dispatch of methods, and a JIT compiler, the generation of compiled, highly­typed and specialized code, can be achieved whilst programming in a high level and dynamic style. BioJulia was set up to create a community for life scientists wanting to use the language for Biological work. The package Bio.jl provides core bioinformatics infrastructure with data types and methods essential for the majority of typical bioinformatic tasks (including sequence manipulation and alignment, phylogenetics, and protein structure manipulation). The community is committed to providing a friendly environment for biologists getting to grips with coding and development, and is committed to good and open software carpentry practices. The number of packages, and the number of contributors in BioJulia is growing, and BBSRC funding has been received for the continued development of BioJulia software and the creation of QC, population genomic, and other tools for the pan genomic and ​ de novo assembly age.


Day one: Hackathon

09:00 - 9:30Registration, coffee and light breakfast
09:30 - 10:00Install Julia
10:00 - 12:00Basic tutorial and Hackathon
12:00 - 13:00Lunch and photo
13:00 - 15:00Hackathon
15:00 - 15:20Short break
15:20 - 16:00Discussion
16:00 - 18:00Hackathon

Day two: Talks

09:00 - 9:30Coffee and light breakfast
09:30 - 10:10Jiahao Chen: Why language matters: Julia and multiple dispatch
10:10 - 10:50Simon Byrne: Julia for data analysis
10:50 - 11:20Break
11:20 - 12:00Poster session
12:00 - 13:00Lunch
13:00 - 13:40Jarrett Revels: Forward-Mode Automatic Differentiation in Julia
13:40 - 14:20Christoph Ortner: Julia for materials science (and molecular modelling)
14:20 - 14:50Break
14:50 - 15:30Pontus Stenetorp: Natural Language Processing with Julia
15:30 - 16:10Ben Ward: Julia for Bioinformatics and Computational Biology
16:10 - 16:30Break
16:30 - 17:00Discussion
17:00 - 17:10Closing remarks



The nearest hotel is the Travelodge Upper Brook street (£51 per night), other nearby hotel include the Pendulum Hotel (£72 per night) or the Palace Hotel (£109 per night). Alternatively, have a look at popular hotel comparison websites, for example trivago or

Additional Information

Poster submission

We invite attendees to present posters, particularly posters on using Julia for scientific computing. Work that might lead to interesting Julia implementations is also welcome. Topics include but are not limited to:

Please click here to submit a pdf abstract. It should contain the title, author(s) and affiliation, and should not exceed 500 words. The submission deadline is 26 August 2016 and we will notify you of acceptance or rejection by 29 August 2016.

Limited travel support will be provided for students in the UK to present a poster.

Organising Committee

Mario Berljafa
Jonathan Deakin
Prof. Nick Higham
Matthew Gwynne
Mante Zemaityte
Weijian Zhang


If you have any further questions, please send us an email at