Testing special code (MPI, GPU, ...)



I was wondering how one can write test code for special stuff like MPI or GPU?

I am not sure if I can work with mockups for MPI. The functions work only when I can sent things around. I mean, I could try to use only a single process which would copy to itself, but not sure how meaningful that is. In addition, the MPI code have to be compiled with additional library dependencies (can be managed), but also with another compiler (the mpicxx).

Any thoughts? It’s not directly clear to me how to integrate this with our system … and how this can also be made working with travis, etc.




It would be great if there were docker instructions with libraries, compilers and dev-tools installed (ViennaCL, MPI). E.g. “stan-dev environment”. Then one only needs to port local directory to be used inside the container.