Open lebasn opened 6 years ago
@dnadeau4 can you assist with this, your experience with MPI would be very useful to tap
@doutriaux1 ping
cdms has the setNetcdfUseParallelFlag(1)
flag
Also cdms2 variable have function to set the mpi com, such as:
var.setMPICom(comm)
var.getMPIRank()
var.getMPISize()
etc...
@dnadeau4 can comment more on this. But see: https://github.com/UV-CDAT/cdms/blob/master/Lib/tvariable.py#L706-L730
Thanks I see the idea, I'll test it and give you feedbacks.
I'm trying use MPI to parallelise the density binning code. I first tried with threading on the binning loop with 4 and 8 threads without a performance increase.
Now I'm trying with MPI (from mpi4py import MPI) but I have trouble using both MPI and CdmsRegrid. Actually, I load all modules and global variables with all CPUs and only use the first one to execute the code (
if(RANK ==0)
).If I'm not loading ESMP_INIT as follow:
If i use
mpirun -n 2 python binDensityMP2.py
I have following message (but not withmpirun -n 1
):If I uncomment
from ESMP import ESMP_INIT
I can go throught module loading but get an error withCdmsRegrid
:It seems to be a conflict between Cdms and MPI modules. Maybe it is a known problem, but I didn't find any informations about it. Do you have an idea ?
I'm using ESMF_6_3_0rp1_ESMP_01 and Cdms 2.12 versions.
Maybe Charles could help as well ?
Thanks,
Nicolas