Dear developers and everyone,
Assume that I run my wrf.exe with the following:
I now have one customized physical module written in c (compiled as my.exe executable), which should be called for each time step from wrf.exe.
I plan to run the coupling programes as following:
However, it looks like there are a lot MPI collective functions calling within wrf code, such as
So there will be huge headaches to dealing with race conditions or deadlocks.
According to this paper, WRF–ML v1.0: a bridge between WRF v4.3 and machine learning parameterizations and its application to atmospheric radiative transfer, it looks I need to write my own moudle to explicitly tell wrf.exe:
1. which ranks are for computing
2. which ranks are for my.exe
Is there a better or simplier way to achieve this `Two-way online coupling WRF.exe with my.exe`?
I might need extra 13 processes or threads to run my.exe
Thank you!
Assume that I run my wrf.exe with the following:
Code:
mpirun -np 10 ./wrf.exe
I now have one customized physical module written in c (compiled as my.exe executable), which should be called for each time step from wrf.exe.
I plan to run the coupling programes as following:
Code:
mpirun -np 10 ./wrf.exe : -np 13 ./my.exe
However, it looks like there are a lot MPI collective functions calling within wrf code, such as
Code:
MPI_Bcast(&rc, 1, MPI_INTEGER, 0, MPI_COMM_WORLD);
So there will be huge headaches to dealing with race conditions or deadlocks.
According to this paper, WRF–ML v1.0: a bridge between WRF v4.3 and machine learning parameterizations and its application to atmospheric radiative transfer, it looks I need to write my own moudle to explicitly tell wrf.exe:
1. which ranks are for computing
2. which ranks are for my.exe
Is there a better or simplier way to achieve this `Two-way online coupling WRF.exe with my.exe`?
I might need extra 13 processes or threads to run my.exe
Thank you!