2012-11-18 11 views
6

Ho letto l'intera guida all'installazione di ATLAS e dice che tutto ciò che serve per creare librerie condivise (.so) è passare il flag --shared allo script configure. Tuttavia, quando costruire, gli unici .so file che appaiono nella mia cartella lib sono libsatlas.so e libtatlas.so, anche se la guida dice che ci dovrebbe essere altri sei:Costruisci librerie condivise in ATLAS

libatlas.so, libcblas.so, libf77blas.so, liblapack.so, libptcblas.so, libptf77blas.so 

Dopo l'installazione alcuni dei test falliscono perché queste librerie sono mancante. Inoltre, FFPACK vuole queste librerie durante l'installazione.

Qualcuno ha riscontrato questo? Cosa sto facendo in modo errato?

+0

Come passare il flag --shared allo script configure? –

risposta

5

Secondo la mia esperienza, è molto più complesso di così, vedere la nostra implementazione EasyBuild della procedura di compilazione ATLAS allo https://github.com/hpcugent/easybuild-easyblocks/blob/master/easybuild/easyblocks/a/atlas.py.

avevamo bisogno di:

  • abilitare l'opzione del compilatore -fPIC
  • run 'fare condiviso cshared ptshared cptshared' nella directory 'lib'

Non stiamo anche utilizzando - -shared per configure, probabilmente perché non fa molto.

Se si desidera creare ATLAS (e qualsiasi cosa si colleghino con) senza mal di testa, esaminare EasyBuild.

(disclaimer: Sono uno sviluppatore per EasyBuild)

+0

Come abilitare l'opzione -fPIC del compilatore? –

+0

@ 郭 同 jet_ 专心 vedere https://github.com/hpcugent/easybuild-easyblocks/blob/c2a9fe50fcdb77708f47eb1edfa378a8a848808d/easybuild/easyblocks/a/atlas.py#L123 In sostanza, si configura ATLAS con '' -FA ALG -fPIC'' –

0

First if you have incorrectly specified the --force-tids flag for configure then the parallel libs won't build. To check this you can run make ptcheck. Ho una domanda riguardante le specifiche di questo flag here

Quindi, se esamino il Makefile ATLAS risultante, dice "... solo quando atlas è costruito su una lib" e in effetti solo due librerie "fat" sono costruite: libsatlas. così e libtatlas.so.

Suppongo che sia possibile collegare FFPACK a tali librerie o modificare il Makefile ATLAS risultante per contenere gli obiettivi necessari (il che non sarà troppo difficile poiché le librerie statiche sono disponibili).

0

Ho dovuto creare manualmente collegamenti ai file .so.3. Quindi esistevano i file di libreria con versione, ma non i file cercati da cmake.

Esecuzione

sudo ln -s libatlas.so.3 libatlas.so 
sudo ln -s libcblas.so.3 libcblas.so 
sudo ln -s liblapack_atlas.so.3 

(Non ho costruito le cblas, atlante o LAPACK ma li ho installati con apt-get. Domandandosi perchè i collegamenti non sono stati creati automaticamente).

Problemi correlati