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

local arrays are not handled consistently in DATASPACES method #148

Closed burlen closed 6 years ago

burlen commented 6 years ago

when using the MPI(write), BP(read) when I define local arrays I can give only the path to where the local array length is stored and give "" (empty strings) for global length and offset arguments. For example:

adios_define_var(gh, data_path.c_str(), "", adios_tt<n_t>::type(),
    elem_path.c_str(), "", "");

However, when I run this code with dataspaces, dataspaces errors out with the following message

'obj_put_update_dht()': this should not happen, num_de == 0 ?!

I can work around this by the following change, give the gloabl length and offsets:

adios_define_var(gh, data_path.c_str(), "", adios_tt<n_t>::type(),
    elem_path.c_str(), elem_path.c_str(), "0");

Having to do this contradicts the documentation, and is inconsistent with MPI method, but works for all methods I've tried.

code to reproduce is here make issue_148

burlen commented 6 years ago

@mw70 issue 1

pnorbert commented 6 years ago

Hi. Staging methods only support global arrays. They never worked with local arrays.

On Mon, Oct 23, 2017 at 1:55 PM, Burlen Loring notifications@github.com wrote:

when using the MPI(write), BP(read) when I define local arrays I can give only the path to where the local array length is stored and give "" (empty strings) for global length and offset arguments. For example:

adios_define_var(gh, data_path.c_str(), "", adios_tt::type(), elem_path.c_str(), "", "");

However, when I run this code with dataspaces, dataspaces errors out with the following message

'obj_put_update_dht()': this should not happen, num_de == 0 ?!

I can work around this by the following change, give the gloabl length and offsets:

adios_define_var(gh, data_path.c_str(), "", adios_tt::type(), elem_path.c_str(), elem_path.c_str(), "0");

Having to do this contradicts the documentation, and is inconsistent with MPI method, but works for all methods I've tried.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/148, or mute the thread https://github.com/notifications/unsubscribe-auth/ADGMLcjEcxF59A9MmFrjqs1cOqax7YOtks5svNMlgaJpZM4QDPhg .

burlen commented 6 years ago

Ahh, I see. I thought that all the methods would work the same to swap out the back end seamlessly. I misunderstood. Work around is easy enough.

On 10/23/2017 11:03 AM, pnorbert wrote:

Hi. Staging methods only support global arrays. They never worked with local arrays.

On Mon, Oct 23, 2017 at 1:55 PM, Burlen Loring notifications@github.com wrote:

when using the MPI(write), BP(read) when I define local arrays I can give only the path to where the local array length is stored and give "" (empty strings) for global length and offset arguments. For example:

adios_define_var(gh, data_path.c_str(), "", adios_tt::type(), elem_path.c_str(), "", "");

However, when I run this code with dataspaces, dataspaces errors out with the following message

'obj_put_update_dht()': this should not happen, num_de == 0 ?!

I can work around this by the following change, give the gloabl length and offsets:

adios_define_var(gh, data_path.c_str(), "", adios_tt::type(), elem_path.c_str(), elem_path.c_str(), "0");

Having to do this contradicts the documentation, and is inconsistent with MPI method, but works for all methods I've tried.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/148, or mute the thread

https://github.com/notifications/unsubscribe-auth/ADGMLcjEcxF59A9MmFrjqs1cOqax7YOtks5svNMlgaJpZM4QDPhg .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/148#issuecomment-338745794, or mute the thread https://github.com/notifications/unsubscribe-auth/AAHBbRvkloKUPVxpWWUqGLuuYcPAqoChks5svNTxgaJpZM4QDPhg.

pnorbert commented 6 years ago

That was always the goal, except for local arrays. You are not the first complaining about it.

On Mon, Oct 23, 2017 at 2:58 PM, Burlen Loring notifications@github.com wrote:

Ahh, I see. I thought that all the methods would work the same to swap out the back end seamlessly. I misunderstood. Work around is easy enough.

On 10/23/2017 11:03 AM, pnorbert wrote:

Hi. Staging methods only support global arrays. They never worked with local arrays.

On Mon, Oct 23, 2017 at 1:55 PM, Burlen Loring <notifications@github.com

wrote:

when using the MPI(write), BP(read) when I define local arrays I can give only the path to where the local array length is stored and give "" (empty strings) for global length and offset arguments. For example:

adios_define_var(gh, data_path.c_str(), "", adios_tt::type(), elem_path.c_str(), "", "");

However, when I run this code with dataspaces, dataspaces errors out with the following message

'obj_put_update_dht()': this should not happen, num_de == 0 ?!

I can work around this by the following change, give the gloabl length and offsets:

adios_define_var(gh, data_path.c_str(), "", adios_tt::type(), elem_path.c_str(), elem_path.c_str(), "0");

Having to do this contradicts the documentation, and is inconsistent with MPI method, but works for all methods I've tried.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/148, or mute the thread

https://github.com/notifications/unsubscribe-auth/ ADGMLcjEcxF59A9MmFrjqs1cOqax7YOtks5svNMlgaJpZM4QDPhg .

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/148#issuecomment-338745794, or mute the thread https://github.com/notifications/unsubscribe-auth/ AAHBbRvkloKUPVxpWWUqGLuuYcPAqoChks5svNTxgaJpZM4QDPhg.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS/issues/148#issuecomment-338762111, or mute the thread https://github.com/notifications/unsubscribe-auth/ADGMLURGhoa6PgOY5gv3N9e2-n4evc9fks5svOHvgaJpZM4QDPhg .