I'm looking to use WSTP to make functions defined in a C MPI application available to a remote Mathematica kernel. I've got this working for a non-MPI version of the application, but now wish to have the WSTP backend run on e.g. 8 remote machines, which are parallelising the backend calls. I'm unsure how this could work in principle. I imagine it's not possible (or at least, sensible) to simply launch the WSTP link on each node (which can MP to eachother) and have the MMA kernel link to each, and ignore the returns of all but one node. Is there a better way to achieve this, e.g. having WSTP run on some intermediate machine which can talk to the backend machines?
Additionally, after compiling the WSTP-wrapped code with MPI compilers, I encounter the error during linking on Linux
WSTPlibs/libWSTPi4.36.a: file not recognized: File format not recognized
mpicc -O2 -std=c99 -mavx -Wall -Isomefolder -o wstplink filename.o libWSTPi4.36.a -lm
I suppose this is because the
libWSTPi4.36.a archive is for MacOS, taken from
/Applications/Mathematica.app/Contents/SystemFiles/Links/WSTP. Where can an archive for Linux be downloaded?