GraphBLAS / LAGraph

This is a library plus a test harness for collecting algorithms that use the GraphBLAS. For test coverage reports, see https://graphblas.org/LAGraph/ . Documentation: https://lagraph.readthedocs.org
Other
225 stars 59 forks source link

error: ‘_Generic’ selector of type ‘struct GB_SelectOp_opaque **’ is not compatible with any association #223

Closed mfaysal101 closed 1 year ago

mfaysal101 commented 1 year ago

Hi,

I am trying to run some benchmarking tests on LAGraph. I followed the compilation instructions (side-by-side) here with GraphBLAS https://lagraph.readthedocs.io/en/latest/installation.html. The GraphBLAS compilation/build runs fine, however, when I am trying to compile the LAGraph, it gives me the error as shown in the title. I am using GCC 11.2.0

Following is the specifics of the error I am getting

In file included from /home/mfaysal/timdavis/LAGraph/include/LAGraph.h:49, from /home/mfaysal/timdavis/LAGraph/src/utility/LG_internal.h:30, from /home/mfaysal/timdavis/LAGraph/experimental/algorithm/LAGraph_msf.c:44: /home/mfaysal/timdavis/LAGraph/experimental/algorithm/LAGraph_msf.c: In function ‘LAGraph_msf’: /home/mfaysal/timdavis/GraphBLAS/Include/GraphBLAS.h:4559:9: error: ‘_Generic’ selector of type ‘struct GB_SelectOp_opaque **’ is not compatible with any association 4559 | (object), \ | ^ /home/mfaysal/timdavis/LAGraph/experimental/algorithm/LAGraph_msf.c:40:5: note: in expansion of macro ‘GrB_free’ 40 | GrB_free (&s1); \ | ^~~~ /home/mfaysal/timdavis/LAGraph/src/utility/LG_internal.h:127:5: note: in expansion of macro ‘LG_FREE_ALL’ 127 | LG_FREE_ALL ; \ | ^~~ /home/mfaysal/timdavis/LAGraph/include/LAGraph.h:366:9: note: in expansion of macro ‘GRB_CATCH’ 366 | GRB_CATCH (LG_GrB_Info) ; \

DrTimothyAldenDavis commented 1 year ago

That would happen if you're using the stable LAGraph release with GraphBLAS 8.x. You need to stick with GraphBLAS 7.4.4.

DrTimothyAldenDavis commented 1 year ago

If you want to use SuiteSparse:GraphBLAS 8.x, try the dev branch of LAGraph instead of the stable branch.

mfaysal101 commented 1 year ago

Thanks so much @DrTimothyAldenDavis, we could not find GraphBLAS 7.4.4., so we used the GraphBLAS 7.4.3 branch and now LAGraph is building.

mfaysal101 commented 1 year ago

Please let me know if you want me to close the issue.

DrTimothyAldenDavis commented 1 year ago

GraphBLAS 7.4.4 is here: https://github.com/DrTimothyAldenDavis/GraphBLAS/releases/tag/v7.4.4 but v7.4.3 will work fine on x86. It can fail on the Arm processor where there's an OpenMP atomic bug.

You can also use the dev branch of LAGraph, which works with GraphBLAS v8.x.

DrTimothyAldenDavis commented 1 year ago

v8.x of graphBLAS adds the JIT feature, which can greatly speed up user-defined types and operators. LAGraph only uses a few of those, however, so v7.4.x should be fine.

There are some improvements to the performance of the cdlp and lcc algorithms in the dev branch that don't appear in the stable branch. The latter were used for the LDBC '23 benchmarks (see this tag: https://github.com/GraphBLAS/LAGraph/releases/tag/LDBC_2023 which if I recall used GraphBLAS 8.0.2. Or maybe 8.0.1.

DrTimothyAldenDavis commented 1 year ago

So it depends on what you want to benchmark in LAGraph.

mfaysal101 commented 1 year ago

Thanks, initially we aim to run the GAP benchmark.

DrTimothyAldenDavis commented 1 year ago

I have a draft v1.0.2 of LAGraph that works with v8.x of SuiteSparse GraphBLAS. It's not yet posted as a stable release but it's on the v1.0.2 branch of LAGraph.