On 20/12/2011 12:18 PM, Damien wrote:
Michael,
If you're trying to spin up a copy of the MUMPS solver as a separate process from within C++ using boost::interprocess, I've done that and it works on every platform. Email me at this address and I'll help you out.
Damien
That is very close to what I want to do (eventually). However, it is not a question of making 2 C++ programs communicate with each other and then using the MUMPS C interface to link against the MUMPS Fortran code. Our own app is also in Fortran. There are also some additional challenges we face in that we want to run MUMPS multiple times and have it keep its memory between calls. This is for performance reasons as the symbolic decomposition and numeric factorization can often be reused in our non-linear Newton solver. The pattern is basically 1- Symbolic decomposition 2- Numeric factorization of matrix 3- Solve 4- Load new sparse matrix which is similar to the old one 5- Try to reuse existing factorization to solve (iterative solve) 6- Redo numeric factorization if iterative solve fails. So we will run mpiexec and mumps as a detached process. For now though, I am just trying to create a shared memory object on the C++ side and have my original Fortran app have access to it. After that, the MUMPS worker program (also in Fortran) would use the same mechanism to access the shared memory. If your suggestion applies, then I am willing to try it out. Michel.