kuroの覚え書き

96の個人的覚え書き

AlphaFold2のその後2.2

いろいろわけがわからなくなってきている(特にPython絡み)ので、一旦minicondaもbrewで入れたpython3もアンインストールした。

(minicondaは~/miniconda3にインストールされているのでフォルダまるごとrm -rf)
(python3は $brew uninstall python3したあと$rm -rf /home/linuxbrew/.linuxbrew/bin/python3.9 これをやっておかないとpipで入れたモジュールが残り、python3をインストールし直したらそのまま復活してしまう。)

改めてpython3をbrewで入れ直し、今回はvirtualenvを入れる。
anaconda, minicondaはcondaとpipをまぜこぜに使うととたんに不整合が出るので、素のpython3にpipで環境構築したほうが結局はいい気がする。
その上でvirtualenvで環境を切り分けていこうかと思う。
メインのデータベースサーバはあまり複数の環境を切り替えることもないのでバーチャル環境はあえて入れていないが、機械学習関係はとかくバージョンの整合性が問題となるので、環境切り分けが重要そうだ。

ということで

python3 -m pip install virtualenv
virtualenv alphafold
source alphafold/bin/activate

これでvirtual環境に入り、

(alphafold) [kuro@tx1310m3 alphafold]$

プロンプトがこんなふうに変わることを確認
なお、virtual環境から抜けるには

deactivate

と入れる。

素の環境では

$ pip3 list
Package                           Version
--------------------------------- -------
backports.entry-points-selectable 1.1.0
distlib                           0.3.2
filelock                          3.0.12
pip                               21.2.4
platformdirs                      2.2.0
setuptools                        57.0.0
six                               1.16.0
virtualenv                        20.7.2
wheel                             0.36.2

だったが、
alphafold環境に入って

python3 -m pip install -r requirements.txt

とモジュールをインストールすると

$ pip3 list
Package                 Version
----------------------- -------------------
absl-py                 0.13.0
astunparse              1.6.3
biopython               1.79
cachetools              4.2.2
certifi                 2021.5.30
charset-normalizer      2.0.4
chex                    0.0.7
contextlib2             21.6.0
dm-haiku                0.0.4
dm-tree                 0.1.6
docker                  5.0.0
flatbuffers             1.12
gast                    0.4.0
google-auth             1.35.0
google-auth-oauthlib    0.4.5
google-pasta            0.2.0
grpcio                  1.34.1
h5py                    3.1.0
idna                    3.2
immutabledict           2.0.0
jax                     0.2.14
jaxlib                  0.1.70
keras-nightly           2.5.0.dev2021032900
Keras-Preprocessing     1.1.2
Markdown                3.3.4
ml-collections          0.1.0
numpy                   1.19.5
oauthlib                3.1.1
opt-einsum              3.3.0
pip                     21.2.4
protobuf                3.17.3
pyasn1                  0.4.8
pyasn1-modules          0.2.8
PyYAML                  5.4.1
requests                2.26.0
requests-oauthlib       1.3.0
rsa                     4.7.2
scipy                   1.7.0
setuptools              57.4.0
six                     1.15.0
tabulate                0.8.9
tensorboard             2.6.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit  1.8.0
tensorflow-cpu          2.5.0
tensorflow-estimator    2.5.0
termcolor               1.1.0
toolz                   0.11.1
typing-extensions       3.7.4.3
urllib3                 1.26.6
websocket-client        1.2.1
Werkzeug                2.0.1
wheel                   0.37.0
wrapt                   1.12.1

こうなった。
deactivateすると、もとのリストに戻ることも確認。

ちょっと気になるのはRTX30とtensorflowのバージョンの適合性。なんかこれ問題があったような気がしてきた。今更ながら。

コレだ。
github.com

docker/Dockerfileの15行目
ARG CUDA=11.0

ARG CUDA=11.1
にする。CUDA 11.0がRTX30に対応していないのが原因なので11.1に変えるということらしい。
コレで

W external/org_tensorflow/tensorflow/stream_executor/gpu/asm_compiler.cc:235] Falling back to the CUDA driver for PTX compilation; ptxas does not support CC 8.6

ここは解消するに違いない。
さあ、6時間後に歓喜の瞬間が来るか?


キターーーーーーーー!
長い道のりであった。
しかし1タンパク質の解析に7時間程度かかっているのはやはりSSD推奨のところをHDDでごまかしているからかな。SSDも買ってもらおう。そうしよう。