Single-core discretization, multi-core solver?
Posted: 24 Jan 2018, 15:26
Dear Elmer community,
I am currently facing with two problems which are difficult to parallelize on the geometrical level (by partitioning) but could still benefit from parallelization. The first is radiative heat transfer (you cannot parallelize Gebhardt Factor calculation and even if you did, it might be quite inefficient) and the second requires adaptive mesh refinement.
So there is one thing I have been wondering about - do you know/see a way to make Elmer perform the matrix composition on a single core and then only run the solver in parallel? In a custom code that I worked with years ago, we did discretization in serial, composed the linear system matrix and then fed it to MUMPS, which took care of the parallelization itself. Commercial COMSOL Multiphysics also seems to utilize this strategy, rather than the partitioning.
Now I do realize the obvious problem - I am running a single ElmerSolver process but I would like MUMPS or another solver to work with several processes. It seems that this is not currently available in Elmer but I would be very interested to hear the opinion of the developers, if they think it is feasible, and if so, where to begin .
Many thanks
Adam
I am currently facing with two problems which are difficult to parallelize on the geometrical level (by partitioning) but could still benefit from parallelization. The first is radiative heat transfer (you cannot parallelize Gebhardt Factor calculation and even if you did, it might be quite inefficient) and the second requires adaptive mesh refinement.
So there is one thing I have been wondering about - do you know/see a way to make Elmer perform the matrix composition on a single core and then only run the solver in parallel? In a custom code that I worked with years ago, we did discretization in serial, composed the linear system matrix and then fed it to MUMPS, which took care of the parallelization itself. Commercial COMSOL Multiphysics also seems to utilize this strategy, rather than the partitioning.
Now I do realize the obvious problem - I am running a single ElmerSolver process but I would like MUMPS or another solver to work with several processes. It seems that this is not currently available in Elmer but I would be very interested to hear the opinion of the developers, if they think it is feasible, and if so, where to begin .
Many thanks
Adam