The Combinatorial BLAS (CombBLAS) is an extensible distributed-memory parallel graph library offering a small but powerful set of linear algebra primitives specifically targeting graph analytics.
Other
59
stars
20
forks
source link
SpParMat3D Fails to Recognize Headers from parfriends.h #8
I have a patch for this, but there is probably a better workaround. Compiling SpParMat3D.cpp gets the following error:
/global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:739:44: error: 'LocalHybridSpGEMM' was not declared in this scope SpTuples<IT,NT> * C_cont = LocalHybridSpGEMM<SR, NT> ^~~~~~~~~~~~~~~~~ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:739:64: error: expected primary-expression before ',' token SpTuples<IT,NT> * C_cont = LocalHybridSpGEMM<SR, NT> ^ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:763:42: error: 'MultiwayMerge' was not declared in this scope SpTuples<IT,NT> * C_tuples = MultiwayMerge<SR>(tomerge, C_m, C_n, true); ^~~~~~~~~~~~~ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:763:58: error: expected primary-expression before '>' token SpTuples<IT,NT> * C_tuples = MultiwayMerge<SR>(tomerge, C_m, C_n, true); ^ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:983:64: error: expected primary-expression before ',' token SpTuples<IT, NT> * merged_tuples = MultiwayMerge<SR, IT, NT>(recvChunks, recvChunks[0]->getnrow(), recvChunks[0]->getncol(), false); // Do not delete
The LocalHybridSpGEMM and MultiwayMerge header files should be included by parfriends.h (which is included by SpParMat3D.cpp), but for some reason it cannot find those headers. I fixed it by directly including the header files mtSpGEMM.h and MultiwayMerge.h in SpParMat3D.cpp, but this required also adding header guards within those respective files to avoid redefinition with parfriends.h. There is probably a better way to fix this, but just documenting this issue for now.
I have a patch for this, but there is probably a better workaround. Compiling SpParMat3D.cpp gets the following error:
/global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:739:44: error: 'LocalHybridSpGEMM' was not declared in this scope SpTuples<IT,NT> * C_cont = LocalHybridSpGEMM<SR, NT> ^~~~~~~~~~~~~~~~~ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:739:64: error: expected primary-expression before ',' token SpTuples<IT,NT> * C_cont = LocalHybridSpGEMM<SR, NT> ^ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:763:42: error: 'MultiwayMerge' was not declared in this scope SpTuples<IT,NT> * C_tuples = MultiwayMerge<SR>(tomerge, C_m, C_n, true); ^~~~~~~~~~~~~ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:763:58: error: expected primary-expression before '>' token SpTuples<IT,NT> * C_tuples = MultiwayMerge<SR>(tomerge, C_m, C_n, true); ^ /global/homes/v/vbharadw/diBELLA.2D/CombBLAS/install/include/CombBLAS/SpParMat3D.cpp:983:64: error: expected primary-expression before ',' token SpTuples<IT, NT> * merged_tuples = MultiwayMerge<SR, IT, NT>(recvChunks, recvChunks[0]->getnrow(), recvChunks[0]->getncol(), false); // Do not delete
The LocalHybridSpGEMM and MultiwayMerge header files should be included by parfriends.h (which is included by SpParMat3D.cpp), but for some reason it cannot find those headers. I fixed it by directly including the header files mtSpGEMM.h and MultiwayMerge.h in SpParMat3D.cpp, but this required also adding header guards within those respective files to avoid redefinition with parfriends.h. There is probably a better way to fix this, but just documenting this issue for now.