I'm compiling a blas to use with scalapack. Some blases, such as openblas, are naturally multithreaded, but scalapack uses mpi, so maybe needs a single-threaded blas? My questions then are:
- does scalapack need a multi-threaded blas? a single-threaded blas? or it will work just fine on either because, for example, it's somehow forcing the number of threads to 1 at runtime?
- in the case that scalapack forces the number of threads to 1 at runtime, how does it do this? does this work with openblas? It seems that the api for this in openblas is
openblas_set_num_threads(1), which doesn't sound like a particularly portable command, and sounds like such configuration is blas-specific?
Edit: I suppose I could just use a multithreaded OpenBLAS, and call