Open liangwang0734 opened 3 years ago
@liangwang0734 was the issue fixed?
@williamfgc I added a bool (false) and it compiles and works fine.
However, is the following usage expected?:
adios2::ADIOS adios(MPI_COMM_WORLD);
I saw some tests/examples use this. But on the NASA cluster, it fails to compile.
@williamfgc @chuckatkins @germasch I've re-opened the issue as it seems to due to the difference in SGI MPT / HPE implementation (and should be fixed, in principle). Here, MPI_COMM_WORLD
is an integer in an enum
. See the updates in my updated main text.
I believe I've got accounts on a few sgi / hpe machines I can test and debug with. This is a good issue to keep open. Thanks for the bug report. You've got a workaround for now but you're right it should be fixed.
I got the issue as follows:
TestBPChangingShape.cpp(199): error: more than one instance of constructor "adios2::ADIOS::ADIOS" matches the argument list:
function "adios2::ADIOS::ADIOS(MPI_Comm={unsigned int}, bool)"
function "adios2::ADIOS::ADIOS(bool)"
argument types are: (enum
Fun with C++... Yes, this is the same problem as #2893 and can be solved by adding a boolean after the MPI communicator in the init call. (The boolean value doesn't matter, it's deprecated and will be ignored.)
Great, thanks!
On Thu, Apr 7, 2022 at 11:27 AM Greg Eisenhauer @.***> wrote:
Fun with C++... Yes, this is the same problem as #2893 https://github.com/ornladios/ADIOS2/issues/2893 and can be solved by adding a boolean after the MPI communicator in the init call. (The boolean value doesn't matter, it's deprecated and will be ignored.)
— Reply to this email directly, view it on GitHub https://github.com/ornladios/ADIOS2/issues/2893#issuecomment-1092007818, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACAPEFCYKLTI5WBCV7A2QW3VD4LGPANCNFSM5FGXPYFQ . You are receiving this because you commented.Message ID: @.***>
Update 1
adios2::ADIOS adios(MPI_COMM_WORLD, false);
to compile. This boolean added is for the debug mode flag, which I think is obsolete.Update 2
Unlike some other MPI implementations, the HPE/SGI MPT MPI being used has a different mechanism to define
MPI_Comm
. Inhpe/mpt/2.17r13/include/mpi.h
:I feel this is a corner case that should be fixed. So, I'm going to re-open the issue. However, the workaround in Update 1 still holds.
Original content
Simple codes like
adios2::ADIOS adios(MPI_COMM_WORLD);
fail to compile. This is also true for the testings and examples. Possibly due to the cluster's MPI_COMM_WORLD underlying data type vs bool?Describe the bug On NASA Pleiades, the error exists in both the ADIOS2 built-in tests/examples and my own user code.
To Reproduce Call
adios2::ADIOS adios(MPI_COMM_WORLD);
Expected behavior A clear and concise description of what you expected to happen.
Desktop (please complete the following information):
Additional context Add any other context about the problem here.
Following up Was the issue fixed? Please report back.