Total tangent: Anyone doing scientific computing work on the JVM may be interested in:
ND4J: N-dimensional arrays for the JVM http://nd4j.org/
Libnd4j: The C++ engine powering the above https://github.com/deeplearning4j/libnd4j
JavaCPP: The bridge between Java and C++ (Cython for Java) https://github.com/bytedeco/javacpp
Fwiw, all that works on Spark with multi-GPUs.