ornladios / ADIOS

The old ADIOS 1.x code repository. Look for ADIOS2 for new repo
https://csmd.ornl.gov/adios
Other
54 stars 40 forks source link

gpp.py gererates gread_...ch file not consisntent with the manual #48

Open sungeunbae opened 9 years ago

sungeunbae commented 9 years ago

It is perhaps an issue with the manual, rather than with gpp.py There is examples/C/manual/gread_temperature.ch, but gpp.py is supposed to generate gread_temperatue.ch as well as gwrite_temperature.ch.

The file contained in the package reads:

adios_groupsize = 0; adios_totalsize = 0; adios_group_size (adios_handle, adios_groupsize, &adios_totalsize); adios_buf_size = 4; adios_read (adios_handle, "NX", &NX, adios_buf_size); adios_buf_size = 8 * (NX); adios_read (adios_handle, "/temperature", t, adios_buf_size);

and works ok.

When gread_temperatue.ch is generated by "gpp.py config.xml", it reads:

s = adios_selection_writeblock (rank); adios_schedule_read (fp, s, "/temperature", 0, 1, t); adios_perform_reads (fp, 1); adios_selection_delete (s);


where s, fp are undefined and the example code with this ch file won't compile.

pnorbert commented 9 years ago

Hi,

The gpp.py generated reading code is completely broken. The old style of code still works with the POSIX and MPI methods but with nothing else. It is only usable for checkpoint/restart style reading on the same number of processors as the checkpoint was made. Then we could not figure it out how to generate a generic reading code and gpp.py is broken.

So the manual is wrong, it should state that we don't support automatic reading code generation.

Best regards Norbert

On Thu, Apr 9, 2015 at 12:46 AM, Sung Bae notifications@github.com wrote:

It is perhaps an issue with the manual, rather than with gpp.py There is examples/C/manual/gread_temperature.ch, but gpp.py is supposed to generate gread_temperatue.ch as well as gwrite_temperature.ch.

The file contained in the package reads:

adios_groupsize = 0; adios_totalsize = 0; adios_group_size (adios_handle, adios_groupsize, &adios_totalsize); adios_buf_size = 4; adios_read (adios_handle, "NX", &NX, adios_buf_size); adios_buf_size = 8 * (NX); adios_read (adios_handle, "/temperature", t, adios_buf_size);

and works ok.

When gread_temperatue.ch is generated by "gpp.py config.xml", it reads:

s = adios_selection_writeblock (rank); adios_schedule_read (fp, s, "/temperature", 0, 1, t); adios_perform_reads (fp, 1);

adios_selection_delete (s);

where s, fp are undefined and the example code with this ch file won't compile.

— Reply to this email directly or view it on GitHub https://github.com/ornladios/ADIOS/issues/48.