I’d like to perform a QR decomposition on a large (> 1TB) matrix. Much larger than the available memory on a single node on our HPC.

My idea is to set up a DistributedArray (https://github.com/JuliaParallel/DistributedArrays.jl) or MPIArray (https://github.com/barche/MPIArrays.jl) to share the data across a set of nodes to be able to fit the matrix into memory. I’d then like to perform (a distributed) QR decomposition or Ridge Regression. However, it seems these packages do not support a QR decomposition?

I’ve tried using Elemental.jl (GitHub - JuliaParallel/Elemental.jl: Julia interface to the Elemental linear algebra library.) but that seems to spawn processes with copies of the matrix, resulting in OutOfMemory() errors.

Can anyone point me in the right direction to try and solve this problem? Many thank in advance for helping me out!