You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm attempting to convert an established MPI code to HPX by writing an HPX version of the program's swappable communication submodule. I've been following along with the local to remote example in the documentation. I'm preserving most of the structure from the distributed memory verson of that example and trying to nest it in a class of the type being used for the communication submodule.
Actual Behavior
When running the example below as is, mimicking the local to remote example with an extra layer of indirection to the components, I get an error about the get_data_action that I registered using HPX_DEFINE_COMPONENT_DIRECT_ACTION() not naming a type:
error: ‘get_data_action’ in ‘struct CommHPX::partition_server’ does not name a type
763 | typedef CommHPX::partition_server::get_data_action get_data_action;
| ^~~~~~~~~~~~~~~
Trying to make CommHPX inherit hpx::components::component_base<> in the same manner as the partition_server component and adding a matching call to HPX_REGISTER_COMPONENT() as shown below throws a long list of errors regarding multiple definitions. I think I'm either fundamentally misunderstanding nested components or trying to leverage a code structure that HPX doesn't support.
This is a stripped down version of the class structure of the communication module, as well as the macros I'm using to register the components and actions in global scope.
Expected Behavior
I'm attempting to convert an established MPI code to HPX by writing an HPX version of the program's swappable communication submodule. I've been following along with the local to remote example in the documentation. I'm preserving most of the structure from the distributed memory verson of that example and trying to nest it in a class of the type being used for the communication submodule.
Actual Behavior
When running the example below as is, mimicking the local to remote example with an extra layer of indirection to the components, I get an error about the
get_data_action
that I registered usingHPX_DEFINE_COMPONENT_DIRECT_ACTION()
not naming a type:Trying to make
CommHPX
inherithpx::components::component_base<>
in the same manner as thepartition_server
component and adding a matching call toHPX_REGISTER_COMPONENT()
as shown below throws a long list of errors regarding multiple definitions. I think I'm either fundamentally misunderstanding nested components or trying to leverage a code structure that HPX doesn't support.Steps to Reproduce the Problem
This is a stripped down version of the class structure of the communication module, as well as the macros I'm using to register the components and actions in global scope.
comm_hpx.h
comm_hpx.cpp
Specifications
The text was updated successfully, but these errors were encountered: