Thanks, Alex. I’m new to SciDB, but I have experience in high-performance linear/nonlinear solver. Looking at Yiqun’s code (Correlation) to get an idea how these ops are implemented, I’d recommend interfacing to one of the high-performance iterative solver libraries (e.g., PETSc, www.mcs.anl.gov/petsc). It will handle all of the linear algebra over MPI, calling out to linear algebra libraries (e.g., Elemental – a modern alternative to ScaLAPACK, SuperLU_Dist, etc.) where necessary. My guess is that it would be more efficient than BufSend().
Full disclosure: I am a PETSc developer, but my interests with SciDB are practical – to get it to handle some of the high-performance machine learning for financial industry applications. I’m currently looking at using something like streaming to fork a collective MPI job that could run whatever iterative solver necessary and return the result to a SciDB array. I’m looking at MPILauncher as a first-order approximation, but there may be better ways.