Javaプロジェクトでは効率的な行列乗算のためにmatrix-toolkits-java(MTJ)を使用しています。これは、netlib-javaに依存しています。これは、マシンにインストールされているBLASとLAPACKの最適化された実装に依存しています。これらのライブラリを見つけるには、具体的には/usr/lib64/libblas.so.3
と/usr/lib64/liblapack.so.3
を探します。CentOS/FedoraでのOpenBLASのインストール
ヤム経由blas
とlapack
をインストールし、我々はヤム経由でインストール参照blas
とlapack
からの.soファイルを指すシンボリックリンク/usr/lib64/libblas.so.3
と/usr/lib64/liblapack.so.3
を取得します。
ここでは、私のケースではOpenBLASのリファレンスよりも高速な実装を使用します。私がそれをコンパイルするか、Yum経由でインストールするかは関係ありませんが、私は/usr/lib64/libopenblas-r0.2.18.so
になります。
今、インターネット上の任意のガイドに従って、私はこのようなもので終わる、OpenBLAS実装へのシンボリックリンクで参照実装へのシンボリックリンクを交換することになっています:
libblas.so.3 -> libopenblas-r0.2.18.so
liblapack.so.3 -> libopenblas-r0.2.18.so
さて、私が行うことができますそれ!私はln
、またはalternatives
でそれをすることができます。そして、もし私がそうすれば、私のコードは高速OpenBLASを使ってうれしく思います。
しかし、ldconfig
を実行すると、私の素晴らしいシンボリックリンクがなくなり、参照BLASとLAPACKのインストールによって上書きされます。そして私のソフトウェアは悲しくて、再び遅くなります。
だから私の質問はldconfig
を実行すると、それを破壊しないような方法でCentOSの/ FedoraのにOpenBLASをインストールする方法、のですか? blas
とlapack
パッケージを削除することはできません。ホストの他のクライアントがそのパッケージに依存している可能性があります。むしろ、OpenBLASはblas
とlapack
の代替品であるとOSに理解してもらうだろう。
他の人がblasとlapackパッケージに依存しているのであれば、blas実装を指し示すlibblas.so.3に頼っている可能性はほとんどありませんか? – Stefan