ICLDisco / dplasma

DPLASMA is a highly optimized, accelerator-aware, implementation of a dense linear algebra package for distributed heterogeneous systems. It is designed to deliver sustained performance for distributed systems where each node featuring multiple sockets of multicore processors, and if available, accelerators, using the PaRSEC runtime as a backend.
Other
11 stars 9 forks source link

Cleanup following scalapack wrappers #33

Open abouteiller opened 3 years ago

abouteiller commented 3 years ago

Original report by me.


We decided to merge Scalapack functionality ASAP due to request from user communities. The code is in good functioning order, but is not very clean or maintainable.

Here is the list of things to do extracted from the PR #49

  1. [ ] General code cleanup:

    1. [ ] lots of globals
    2. [ ] function namespacing
    3. [ ] duplicate code from tests/common
    4. [ ] debug code in wrapper (check_solution integrated inside the wrapper itself, rather than in a tester)
  2. [x] The scalapack wrapper testers (cscalapack) are not build by default :warning:

  3. [ ] The scalapack wrapper testers are not integrated with ctest :warning:

abouteiller commented 3 years ago

Resolved by #74 and #78

Original comment by George Bosilca (Bitbucket: bosilca, GitHub: bosilca).


The scalapack wrapper shared library fails to build with clang (maybe on osx) with a bunch of missing symbols errors.

Undefined symbols for architecture x86_64:
  "_Cblacs2sys_handle", referenced from:
      _pdgemm_w in dplasma_wrapper_pdgemm.c.o
      _pdgetrf_w in dplasma_wrapper_pdgetrf_1d.c.o
      _pdpotrf_w in dplasma_wrapper_pdpotrf.c.o
      _pdtrmm_w in dplasma_wrapper_pdtrmm.c.o
      _pdtrsm_w in dplasma_wrapper_pdtrsm.c.o
      _pdlatsqr_w in dplasma_wrapper_pdlatsqr.c.o
  "_Cblacs_get", referenced from:
      _pdgemm_w in dplasma_wrapper_pdgemm.c.o
      _pdgetrf_w in dplasma_wrapper_pdgetrf_1d.c.o
      _pdpotrf_w in dplasma_wrapper_pdpotrf.c.o
      _pdtrmm_w in dplasma_wrapper_pdtrmm.c.o
      _pdtrsm_w in dplasma_wrapper_pdtrsm.c.o
      _pdlatsqr_w in dplasma_wrapper_pdlatsqr.c.o
  "_Cblacs_gridinfo", referenced from:
      _pdgemm_w in dplasma_wrapper_pdgemm.c.o
      _pdgetrf_w in dplasma_wrapper_pdgetrf_1d.c.o
      _pdpotrf_w in dplasma_wrapper_pdpotrf.c.o
      _pdtrmm_w in dplasma_wrapper_pdtrmm.c.o
      _pdtrsm_w in dplasma_wrapper_pdtrsm.c.o
      _pdlatsqr_w in dplasma_wrapper_pdlatsqr.c.o
  "_numroc_", referenced from:
      _pdgemm_w in dplasma_wrapper_pdgemm.c.o
      _pdgetrf_w in dplasma_wrapper_pdgetrf_1d.c.o
      _pdpotrf_w in dplasma_wrapper_pdpotrf.c.o
      _pdtrmm_w in dplasma_wrapper_pdtrmm.c.o
      _pdtrsm_w in dplasma_wrapper_pdtrsm.c.o
      _pdlatsqr_w in dplasma_wrapper_pdlatsqr.c.o