hashdist / hashstack

Collection of software profiles for HashDist
https://hashdist.github.io/
51 stars 60 forks source link

native blas/lapack/mpi support? #865

Closed davydden closed 9 years ago

davydden commented 9 years ago

What is the status of blas support in hashdist? Can one use MKL, for example, with GCC, or system provided blas/lapack (CentOS, Ubuntu, OS-X)?

Trilinos seems to be using hard-coded blas whereas Petsc builds against blas dependency, but it's not clear to me what will it be at the end.

I suppose MPI is supported natively just fine (one does not have to compile open-mpi).

ahmadia commented 9 years ago

Host BLAS, LAPACK, and MPI are basically supported, see these packages for an example:

I'm not sure anybody has put in MKL support, but it wouldn't be hard.

See the examples sections for a couple of different ways that folks have specified and met the BLAS dependencies.

davydden commented 9 years ago

so when there is build: [blas], how is it resolved? does it end up using https://github.com/hashdist/hashstack/blob/master/pkgs/host-blas.yaml ? just trying to understand how this sort of things are handled in hashdist.

davydden commented 9 years ago

and more importantly, how the user can choose which blas he wants: system-provided or, say, openblas?

ahmadia commented 9 years ago

A user sets the use flag in their profile to switch to a different blas. There's an example with mpi in https://hashdist.readthedocs.org/en/latest/specs.html

cekees commented 9 years ago

Those are the examples I'd point to as well. Though there is some mkl support in a few of the stable/supercomputer_name branches, none of it is general enough to push to master as a host-mkl-blas package. It might be possible to use libmkl_rt to implement general host-mkl packages: https://software.intel.com/en-us/articles/a-new-linking-model-single-dynamic-library-mkl_rt-since-intel-mkl-103

davydden commented 9 years ago

i see... thanks a lot for the answers!