Opened 19 months ago
Last modified 19 months ago
#182 new defect
XIOS3: xios_server.exe tries to call MPI routine before MPI initialisation
Reported by: | acc | Owned by: | jderouillat |
---|---|---|---|
Priority: | major | Component: | XIOS |
Version: | trunk | Keywords: | |
Cc: |
Description
Just trying a few tests with XIOS3. Struggled to get a simple test_client.exe set-up going in detached mode.
Seems that the CTimer call at line 63 of server.cpp is calling a MPI routine (MPI_Wtime?) before MPI_Init has been called. Commenting out the Ctimer call gets things going.
Change History (5)
comment:1 in reply to: ↑ description Changed 19 months ago by ymipsl
comment:2 Changed 19 months ago by ymipsl
- Owner changed from ymipsl to jderouillat
comment:3 Changed 19 months ago by acc
Note that test_client.exe is obsolete and we encourage userto use the "generic_testcase" instead.
Fair enough but, from outside, it is always useful to start with something simple and familiar. Are there instructions for the generic test case anywhere?
comment:4 Changed 19 months ago by jderouillat
We manifestly have to update this page ! Waiting for this update :
The idea of the generic_testcase is to be more versatile at runtime.
Many parameters are set in the iodef.xml : global quantities such as ni, nj, nlev, the way to distribute data on MPI process clients (the domain which can be "lmdz", "nemo"), the mask management on domains/axis.
The code is available in src/test/generic_testcase.f90, the input files in generic_testcase.
$ ls generic_testcase/ context_atm.xml context_grid_dynamico.xml context_oce.xml dynamico_grid.nc iodef.xml param.def $ ls bin/generic_testcase.exe bin/generic_testcase.exe
Some others parameters such as the number of clients used must be set in param.def (nb_proc_atm). To launch with servers, you need to specify more process than specified for clients in param.def, the difference will be used as servers.
In the configuration below, 1 client and 1 server will be executed :
$ cat param.def ¶ms_run duration='4ts' nb_proc_atm=1 nb_proc_oce=0 / $ mpirun -np 2 ../bin/generic_testcase.exe
Fields and files to write are specified in context_atm.xml, by default a single file is written with fields which exists on a domain x an axis, a domain, many axis, axis x axis (x axis, for field_XYZ):
<file id="atm_output" output_freq="1ts" type="one_file" enabled="true"> <field field_ref="field3D" enabled="true"/> <field field_ref="field2D" enabled="true"/> <field field_ref="field_X" enabled="true"/> <field field_ref="field_Y" enabled="true"/> <field field_ref="field_XY" enabled="true"/> <field field_ref="field_Z" enabled="true"/> <field field_ref="field_XYZ" enabled="true"/> <field field_ref="field_XZ" enabled="true"/> <field field_ref="field_YZ" enabled="true"/> </file>
You can find other examples of context_atm.xml, especially with transformations, in xios_test_suite/TEST_SUITE/test_*/context_atm.xml (used for non regression test).
comment:5 Changed 19 months ago by jderouillat
The first call to MPI_Wtime has been moved after the MPI_Init on servers.
Replying to acc:
Thanks for this, we have probably a more permissive MPI library in which one we can use MPI_WTIME without MPI_Init. We will correct this quickly.
Note that test_client.exe is obsolete and we encourage userto use the "generic_testcase" instead.
Yann