Skip to content

GraphBLAS

Márton Elekes edited this page Jun 17, 2020 · 25 revisions

Compilation

GCC

Troubleshooting

  • Problem:

    make[3]: *** No rule to make target '/usr/lib/gcc/x86_64-linux-gnu/8/libgomp.so', needed by 'libgraphblas.so.3.0.1'. Stop.
  • Solution: clean the directory and start over with cmake . && make.

ICC

  1. Download the Intel System Studio and get a license.

  2. Configure the silent.cfg file to point to your license and run:

    sudo ./install.sh  -s silent.cfg.
  3. Specify the location of the compiler components:

    . /opt/intel/system_studio_2019/bin/compilervars.sh -arch intel64
    
  4. On my configuration, the compilervars_arch.sh script wasn't readable by the user, so I fixed that using:

    $ chmod 755 /opt/intel/system_studio_2019/compilers_and_libraries_2019/linux/pkg_bin/compilervars_arch.sh
  5. Build GraphBLAS with the following command:

    $ make CC=icc JOBS=$(nproc)
  6. Install GraphBLAS and run the ldconfig tool:

    $ sudo make install
    $ sudo ldconfig

Troubleshooting

  • Problem: Compiling GraphBLAS gives the following error:

    -- The C compiler identification is Intel 19.0.5.20190815
    -- The CXX compiler identification is GNU 7.4.0
    ...
    [ 99%] Linking C executable pthread_demo
    ld: warning: libimf.so, needed by libgraphblasdemo.so, not found (try using -rpath or -rpath-link)
    ld: warning: libsvml.so, needed by libgraphblasdemo.so, not found (try using -rpath or -rpath-link)
    ld: warning: libirng.so, needed by libgraphblasdemo.so, not found (try using -rpath or -rpath-link)
    ld: warning: libintlc.so.5, needed by libgraphblasdemo.so, not found (try using -rpath or -rpath-link)
    ld: pthread_demo: hidden symbol `__intel_cpu_features_init_x' in /opt/intel/system_studio_2019/compilers_and_libraries_2019.5.281/linux/compiler/lib/intel64_lin/libirc.a(cpu_feature_disp.o) is referenced by DSO
    ld: final link failed: Bad value
    CMakeFiles/pthread_demo.dir/build.make:89: recipe for target 'pthread_demo' failed
  • Solution: Just follow the steps above.

How to determine which SuiteSparse version is running

C:

char *date, *compile_date, *compile_time ;
int version [3] ;
GxB_get (GxB_LIBRARY_VERSION, version) ;
GxB_get (GxB_LIBRARY_DATE, &date) ;
GxB_get (GxB_LIBRARY_COMPILE_DATE, &compile_date) ;
GxB_get (GxB_LIBRARY_COMPILE_TIME, &compile_time) ;
printf ("Library version %d.%d.%d\n", version [0], version [1], version [2]) ;
printf ("Library date: %s\n", date) ;
printf ("Compiled at %s on %s\n", compile_time, compile_date) ;

(source)

Bash:

grep -C 5 "define GxB_IMPLEMENTATION_DATE" /usr/local/include/GraphBLAS.h
Clone this wiki locally