I'm not sure if this should be considered a bug, but I ran a little simulation previously with ALPAKA_ACC_CPU_B_SEQ_T_OMP2_ENABLE=ON. Leaving the default parameters in the openPMD backend yields the error:
Unhandled exception of type 'St13runtime_error' with message 'DataConnector: Invalid dataset ID (MallocMCBuffer)', terminating
When specifying --openPMD.dataPreparationStrategy mappedMemory, the plugin runs fine, so the error is likely to stem from this method. Precise parameters found here.
Two questions:
mappedMemory strategy if other Alpaka backends are enabled?I am not sure how it's supposed to work, as not familiar with this part. But based on that function alone, perhaps this and that pieces should be in the #ifdef guard (at start and end of that)? The mallocMCBuffer variable is only used inside it, and so the initialization and "finalization" of it could also go there, instead of being done always like now.
The error means that there was no object of type MallocMCBuffer<DeviceHeap> with the corresponding name registered. Upon looking in the code, we conditionally create and register it here. So it would appear all usage of it should be inside similar #ifdef guards. So how it is implemented now the answer to your question 1 is no. But should it be like that, or it's a bug that it is, I don't know.
Thanks for the hints!
fixed with #3580