Array Data Distribution with ArrayChannels.jl
2019-07-23, 17:15–17:25, 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.