I got trouble when I wanted to use 2 or more nodes to run ROMS MPI,but
it works with only one node. The basic configuration of my model is :
parameter (LLm0=167, MMm0=244, N=20) ! <--East China Sea
parameter (NP_XI=2, NP_ETA=3, NNODES=NP_XI*NP_ETA)
parameter (NSUB_X=1, NSUB_E=2, NPP=1)
so horizontal grids could be divided into 2*3 nodes respectively.
The model stoped with information on screen:
...
GET_INITIAL -- Processing data for time = 15.00 record = 1
bm_list_5711: (1.774467) wakeup_slave: unable to interrupt slave 0 pid 5695
p2_2288: p4_error: interrupt SIGSEGV: 11
p5_1380: p4_error: interrupt SIGSEGV: 11
p1_2313: p4_error: interrupt SIGSEGV: 11
p4_7908: p4_error: interrupt SIGSEGV: 11
p3_4358: p4_error: interrupt SIGSEGV: 11
Should something else be taken into account? and what's problem with this
p4_error ?
Could anyone tell me what's wrong?
Could anyone post foundmental processes to start MPI running of ROMS?
Many thanks!
ZHOU
MPI error ? and how to run MPI ?
Re: MPI error ? and how to run MPI ?
I'm not familiar with these variables at all. In the ROMS I have, you simply compile with MPI enabled (-DMPI plus appropriate compiler switches). Then in the input file, set:FengZhou wrote: parameter (LLm0=167, MMm0=244, N=20) ! <--East China Sea
parameter (NP_XI=2, NP_ETA=3, NNODES=NP_XI*NP_ETA)
parameter (NSUB_X=1, NSUB_E=2, NPP=1)
so horizontal grids could be divided into 2*3 nodes respectively.
ZHOU
NtileI == 2 ! I-direction partition
NtileJ == 3 ! J-direction partition
and make sure to ask mpi for 6 processes. The way to ask for 6 processes is going to depend on your system. I run in batch mode on an IBM or Cray, in which the number of processes is one of the job script parameters. If you run interactively with mpirun, the number is going to be one of the options. That's all you need. The number is not compiled in with a modern east-coast ROMS.
another questions: how to start MPI with ROMS/Rutgers 2.2
Many thanks to both of you. Yes I am running west coast and east coast version of ROMS at the same time. The former is easy to start and I've got powerful preprocessing tools (Roms_tools). The results looks good, but I can't run them with MPI. The problem is as above. Any way, thank you so much!
I am now testing ROMS/Rutgers 2.2 with Damee input data, it works in as serial mode. To save time I would always like to run with MPI, could anyone tell me how to start with MPI???
I modified cppdefs.h like:
MPI := on
IFORT ?= mpif90 (mpi)
compile with make -f makefile.mpi with error yielding:
/usr/bin/cpp -P -traditional -DLINUX -I./netcdf_ifc -DMPI -DLINUX -DI686 -DMPIF90 -IInclude -INonlinear -IDrivers Modules/mod_kinds.F > mod_kinds.f90
Bin/cpp_clean mod_kinds.f90
mpif90 -c -g -check bounds mod_kinds.f90
/opt/mpich-1.2.5.10-ch_p4-gcc/bin/mpif90: line 332: eval: -c: invalid option
eval: usage: eval [arg ...]
make: *** [mod_kinds.o] Error 2
rm mod_kinds.f90
What's this problem mean?
ZHOU
I am now testing ROMS/Rutgers 2.2 with Damee input data, it works in as serial mode. To save time I would always like to run with MPI, could anyone tell me how to start with MPI???
I modified cppdefs.h like:
MPI := on
IFORT ?= mpif90 (mpi)
compile with make -f makefile.mpi with error yielding:
/usr/bin/cpp -P -traditional -DLINUX -I./netcdf_ifc -DMPI -DLINUX -DI686 -DMPIF90 -IInclude -INonlinear -IDrivers Modules/mod_kinds.F > mod_kinds.f90
Bin/cpp_clean mod_kinds.f90
mpif90 -c -g -check bounds mod_kinds.f90
/opt/mpich-1.2.5.10-ch_p4-gcc/bin/mpif90: line 332: eval: -c: invalid option
eval: usage: eval [arg ...]
make: *** [mod_kinds.o] Error 2
rm mod_kinds.f90
What's this problem mean?
ZHOU