「cryoSPARCトラブルシューティング」の版間の差分

提供: Eospedia
移動: 案内検索
(依存ライブラリ関係)
(OSError: cublas library not found)
行34: 行34:
 
</pre>
 
</pre>
  
で、先ほど失敗したジョブをクローンして再度実行すると、今度はエラー無く実行できた。再インストールやマスターの再起動などは必要なし。config.shを編集するだけ。
+
で、先ほど失敗したジョブをクローンして再度実行すると、今度はエラー無く実行できた。再インストールやマスターの再起動などは必要なし。cryoSPARC workerのconfig.shを編集するだけ。

2020年9月24日 (木) 14:36時点における版

依存ライブラリ関係

OSError: cublas library not found

ジョブを実行したら以下のエラーが出てきた。

[CPU: 190.1 MB]  Traceback (most recent call last):
  File "cryosparc2_worker/cryosparc2_compute/run.py", line 72, in cryosparc2_compute.run.main
  File "cryosparc2_compute/jobs/jobregister.py", line 337, in get_run_function
    runmod = importlib.import_module(".."+modname, __name__)
  File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "cryosparc2_worker/cryosparc2_compute/jobs/abinit/run.py", line 15, in init cryosparc2_compute.jobs.abinit.run
  File "cryosparc2_compute/engine/__init__.py", line 8, in <module>
    from engine import *
  File "cryosparc2_worker/cryosparc2_compute/engine/engine.py", line 12, in init cryosparc2_compute.engine.engine
  File "cryosparc2_worker/cryosparc2_compute/engine/gfourier.py", line 6, in init cryosparc2_compute.engine.gfourier
  File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/site-packages/skcuda/fft.py", line 20, in <module>
    from . import misc
  File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/site-packages/skcuda/misc.py", line 25, in <module>
    from . import cublas
  File "/net/fs10/work02/csparc/cryosparc2_worker/deps/anaconda/lib/python2.7/site-packages/skcuda/cublas.py", line 56, in <module>
    raise OSError('cublas library not found')
OSError: cublas library not found

cryoSPARCのフォーラムを見ると、これはCUDA 10.1特有の問題と書いてあった。( https://discuss.cryosparc.com/t/patch-ctf-job-fails-child-process-with-pid-31697-has-terminated-unexpectedly/3670/19 )

実際、使用しているCUDAは 10.1であった(Dockerのベースイメージは https://hub.docker.com/r/nvidia/cuda/ の 10.1-cudnn7-devel-centos7 )。

cryoSPARCのインストール時に指定したCUDAのパスは /usr/local/cuda で、これは /usr/local/cuda-10.1 のシンボリックリンクになっている。その中のlib64/には、libcublasは存在しない。一方で /usr/local/cuda-10.2 というディレクトリも存在しており、その中のlib64/にはlibcublas.soが存在していた。

/usr/local/cuda-10.2/lib64 にライブラリパスを通せば良さそうなので、cryosparc2_worker/config.shに以下の行を付け加えた。

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-10.2/lib64"

で、先ほど失敗したジョブをクローンして再度実行すると、今度はエラー無く実行できた。再インストールやマスターの再起動などは必要なし。cryoSPARC workerのconfig.shを編集するだけ。