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?
This page is still "encouraging" the use of test_client
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