Skip to content

Conversation

@franzpoeschel
Copy link
Contributor

@franzpoeschel franzpoeschel commented May 16, 2022

ADIOS2 now distinguishes between char, signed char and unsigned char. Especially BP5 is unforgiving about this.

Until now, the ADIOS2 backend uses the public openPMD::Datatype enum, which has already caused some issues in the past. This PR introduces a new internal enum ADIOS2Datatype which is used to fully support ADIOS2 datatypes, especially char types. It is purely internal so we can change it as we please without breaking the API.

Close #1273

Tests will mainly come in #1218 where BP5 will be a default backend for tests

@franzpoeschel franzpoeschel force-pushed the fix-adios2-char-datatype branch from 3d953e8 to ac39140 Compare May 16, 2022 12:57
@franzpoeschel franzpoeschel requested a review from ax3l May 17, 2022 08:23
@franzpoeschel
Copy link
Contributor Author

Note: We should think about introducing a copied Datatype enum in the JSON backend as well. In the JSON backend, the string representations of the datatypes are part of the written dataset on disk, so having that JSON-specific will help not accidentally introducing a breaking change.

@ax3l ax3l self-assigned this May 24, 2022
@franzpoeschel franzpoeschel force-pushed the fix-adios2-char-datatype branch 2 times, most recently from f0e357c to b3243dd Compare June 1, 2022 08:39
@franzpoeschel
Copy link
Contributor Author

I now removed the ADIOS2Datatype thing again in the ADIOS2 backend since the benefits of keeping both enums separate were less than I'd thought in the beginning. I kept some of the refactoring, putting some code in private headers away from public includes.

@franzpoeschel franzpoeschel force-pushed the fix-adios2-char-datatype branch 3 times, most recently from 102b3ae to fbfc490 Compare June 1, 2022 12:40
@franzpoeschel franzpoeschel force-pushed the fix-adios2-char-datatype branch from fbfc490 to f738344 Compare June 2, 2022 12:26
}
#if defined(__INTEL_COMPILER)
/*
* ICPC has trouble with if constexpr, thinking that return statements are
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think NVCC 11.0 has a similar issue, potentially check and add a similar suppression?
Around 11.5+, the false warning is solved.

}
#if defined(__INTEL_COMPILER)
/*
* ICPC has trouble with if constexpr, thinking that return statements are
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pls see above note on NVCC

Copy link
Member

@ax3l ax3l left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀 ✨

@ax3l ax3l enabled auto-merge (squash) June 17, 2022 05:17
@ax3l ax3l merged commit faa5bf4 into openPMD:dev Jun 17, 2022
@ax3l ax3l mentioned this pull request Mar 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

BP5 char datatype

2 participants