Hello,
I am trying to solve some problem in parallel, with FreeFem++ 4.9 installed on a cluster, where each node has 2 Intel Broadwell processors with 14 cores, and either 128 or 256 GB of RAM.
Everything works fine when I run the code in parallel on several processors of the same single node (e.g. 1 node, 16 procs), but sometimes a problem occurs when I run the exact same code on several nodes (e.g. 2 nodes, 8 procs each).
The code starts like this:
verbosity = 0;
load "msh3"
load "PETSc"
load "gmsh"
int[int] n2oSaved;
int[int] n2oLoaded;
macro dimension()3// EOM
include "macro_ddm.idp"
macro def(i)[i, i#B, i#C, i#D]//
macro init(i)[i, i, i, i]//
macro grad(u)[dx(u), dy(u), dz(u)]//
macro div(u)(dx(u) + dy(u#B) + dz(u#C))//
macro div1(u)(dx(u#1) + dy(u#2) + dz(u#3))//
macro UgradV(u, v)[[u#1, u#2, u#3]' * [dx(v#1), dy(v#1), dz(v#1)],
[u#1, u#2, u#3]' * [dx(v#2), dy(v#2), dz(v#2)],
[u#1, u#2, u#3]' * [dx(v#3), dy(v#3), dz(v#3)]]//
func Pk = [P1b,P1b,P1b, P1];
mesh3 Th = readmesh3("mesh.mesh");
Mat A;
macro ThN2O()n2oSaved//
createMat(Th, A, Pk);
(All the rest of the code is commented out.)
If I run this code on 2 nodes, the calculation seems stalled and no output is written in the log, but If I remove the last line createMat(…);
then the calculation runs correctly.
On 1 node, it runs correctly both with and without the last line.
Do you think the problem has to do with the code, with the cluster, or with something else?
Thank you!