Array Data Distribution with ArrayChannels.jl
2019-07-23 , Room 349

We introduce the ArrayChannels.jl library, which allows communication between distributed nodes to occur between fixed buffers in memory. We explore the effects of in-place serialisation on cache usage and communication performance, and consider its suitability for high performance scientific computing.


We introduce a library to the language, 'ArrayChannels.jl', encapsulating several data parallelism patterns which causes serialisation of arrays between processes to occur in-place. This provides for better handling of processor cache, while retaining the synchronous semantics of Julia's RemoteChannel constructs.

We then evaluate the performance of the library by comparison to MPI and standard Julia on a number of microbenchmarks and HPC kernels.

My name is Rohan, and I am an undergraduate at the Australian National University in Canberra, ACT, studying two degrees in Mathematics and Computer Science. I am part of the undergraduate research stream, where at three occaisions of my degree I undertake individual, semester-long research projects, followed by a final year-long 'Honours' project.

The first time I really applied my programming knowledge was in the context of physical simulation. With an interest in Applied Mathematics, the procedure and evolution of computational models for natural phenomena greatly interests me. The requirement for parallelism introduces a challenging but fascinating new field of problems to the research community, and I remain optimistic that Julia will be readily adopted for this task.

Aside from study, I enjoy playing music, soccer, and helping lead a youth group at my church.