Sono un principiante che usa le routine di LAPACK, quindi non le conosco profondamente e voglio usarle in cicli paralleli (openmp).Le sequenze di routine LAPACK sono sicure?
Io uso Ubuntu 14.04LTS e LAPACK è stato installato utilizzando il mio gestore pacchetti. La versione installata è:
liblapack3 3.5.0-2ubuntu1 Library of linear algebra routines 3 - shared version
La libreria BLAS associato è:
libblas3 1.2.20110419-7
Quindi, la mia prima domanda è abbastanza semplice: posso usare qualsiasi subroutine o la funzione del LAPACK in un ciclo parallelizzata usando OpenMP ?. Id est, sono thread safe ?.
Un'altra domanda è: Posso usare qualsiasi subroutine o funzione del LAPACK nella mia subroutine pura ?, id est, in una subroutine codificata da me e definita come pura.
Se la risposta a queste domande sono "non con tutte le procedure LAPACK ma con alcuni di loro", quindi, posso farlo con le seguenti subroutine ?:
- dgetrs
- dgetrf
- dgetri
- dgecon
E un'ultima domanda: fare le procedure LAPACK utilizzano tutti i miei core ?, id est, sono già p arallel ?.
E posso vedere che non posso usarli in una funzione _pure_. Ricevo il seguente errore: 'Errore: la chiamata di subroutine a 'dgetrs' a (1) non è PURE' –
Per riferimento: MKL fornisce interfacce per le subroutine Fortran 95 https://software.intel.com/en-us/node/468.670 – astrojuanlu