最新のcudaライブラリに変更したので cryoSPARC も更新してみる

cryoSPARCの計算にGPUで計算する項目がある. っでそのGPU計算には cuda ライブラリが必須.
別に必須なわけではないが、cudaライブラリ を更新するなら同時に cryoSPARC もそれに合わせて更新することも出来る.

*別に問題がなければそのままでも構わない

cudaライブラリの更新に伴い cryoSPARC も更新なら対象は worker 部分.

単純に

[cryosparc@s cryosparc_worker]$ ./bin/cryosparcw newcuda /usr/local/cuda-11.3

外部らのアクセスを制限したい

ほとんどfirewallな話なのですが、cryoSPARCはwebサービスなのでここに記載します

webサービスのポートは既定で39000を使用してます。
あと内部で 39001-39005まで使っているようなので下記を実行します。 不要かもしれないけど..

firewall-cmd  --add-port=39000/tcp --zone=public --permanent
firewall-cmd  --add-port=39001/tcp --zone=public --permanent
firewall-cmd  --add-port=39002/tcp --zone=public --permanent
firewall-cmd  --add-port=39003/tcp --zone=public --permanent
firewall-cmd  --add-port=39004/tcp --zone=public --permanent
firewall-cmd  --add-port=39005/tcp --zone=public --permanent
 
(あと接続元を制限したいなら下記も追加. 注:他のサービス[ssh]らも同時に制限されます)
firewall-cmd  --add-source=192.168.0.0/24 --zone=public  --permanent
 
(最後に)
firewall-cmd --reload

外部からのアクセスをipアドレスベースで制限したい

外部に直接cryoSPARCサーバが晒されている場合で特定のipからしかアクセスさせないなら

firewall-cmd --permanent --zone=external --add-rich-rule="rule family="ipv4" source address="133.x.x.x" port protocol="tcp" port="39000" accept"
 
(あるいは)
firewall-cmd --zone=external --add-rich-rule="rule family="ipv4" source address="133.x.x.x" port protocol="tcp" port="39000" accept"
firewall-cmd --runtime-to-permanent
 
 
firewall-cmd --reload
 
(確認)
firewall-cmd --list-all --zone=external

とする

ssdを無効から有効に変更する

bin/cryosparcw connect --worker c.sybyl.local --master c.sybyl.local --port 39000 --update --ssdpath /scratch/cryosparc_cache

現状の設定内容は下記コマンドで確認可能

cryosparcm cli "get_config_var(name='targets', colname='sched_config')"

計算機を再起動したら

計算機を再起動すると cryosparc も停止します。自動起動はないみたい。
っでそれを起動させるには

  • cryosparcユーザになる
    一旦rootになって「su - cryosparc」になっても可。直接「su - cryosparc」でも可
  • cryosparcm start」を実行する

これで行けます。もし立ち上がらないのなら

  • cryosparcm restart

あるいは、「/tmp/cryosparc-supervisor-******.sock」があって起動しないとのメッセージがあるのなら

  • /bin/rm -f /tmp/cryosparc-supervisor-******.sock

としてそのファイルを削除してから「cryosparcm start」としてください。

あとは珠にcryosparcのサービスが勝手に停止している場合があります。
その場合、プロセスの残骸が生きていてうまくサービスの再開ができない場合がありますので、

  • cryosparcm stop

の後に
root権限になって「ps -ef |grep cryosparc」でまだ生き残っているプロセスをkillします。
簡単な方法としては、計算機の再起動を行ってください。
そうした上で「cryosparcm start」としてください。

ユーザの追加とか

cryosparcユーザになってから。

  • 現在の登録済みユーザ一覧
    「cryosparcm listusers」
  • ユーザ作成
    「cryosparcm createuser --email saber_at_chaperone.jp --password artoria --name SABER」
  • パスワード変更
    「cryosparcm resetpassword --email saber_at_chaperone.jp --password starving」
  • ユーザ情報の変更
    「cryosparcm updateuser --email saber_at_chaperone.jp --password starving --name alternative --admin true」
    emailとパスワードをキーとして、「name」と「admin(管理者)」かどうかを定義できます
  • ユーザの削除
    「cryosparcm cli "delete_user('管理者のメールアドレス', '削除したいユーザのメールアドレス', '削除したいユーザのパスw−度')"」
    で行う。削除したいユーザのパスワードが必要なので、一旦「パスワード変更」で対象ユーザのパスワード変更が必要かな
    管理者自分自身を削除するには下記のようにします
    「cryosparcm cli "delete_user('saber_at_chaperone.jp', 'saber_at_chaperone.jp', 'starving')"」

再起動時に自動的にサービスをupするには

以前のバージョンには「cryosparc autostart」でcronを駆使した再起動時自動upが施されるのだが、
今のバージョンではその機能が消えてしまったみたい。

High resolution image of 2D classification

https://discuss.cryosparc.com/t/high-resolution-image-of-2d-classification/3395

実行するにはまずpythonをcryoSPARCのpythonに切り替える必要がある。
それと「CRYOSPARC_ROOT_DIR」の定義も必要みたい。

これらは単純に

export PATH=/home/cryosparc/software/cryosparc/cryosparc2_master/deps/anaconda/bin:$PATH
export CRYOSPARC_ROOT_DIR=/home/cryosparc/software/cryosparc/cryosparc2_master

でいいみたい。

次にpythonを立ち上げる

[saber@c ~]$ which python
/home/cryosparc/software/cryosparc/cryosparc2_master/deps/anaconda/bin/python
 
[saber@c ~]$ python
Python 2.7.15 |Anaconda, Inc.| (default, Oct 10 2018, 21:32:13)
[GCC 7.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import os
>>> os.chdir(os.environ['CRYOSPARC_ROOT_DIR'])
>>> from cryosparc2_compute import plotutil
>>> from cryosparc2_compute.blobio import mrc
>>> import matplotlib.pyplot as plt
>>> 
>>> mrc_path_abs = '/home/saber/relion30_tutorial_precalculated_results/Class2D/job015/run_it025_classes.mrcs'
>>> plt=plotutil.plot_2D_classes(template_mrc, rows=3, cols=3)
>>> plt.show()

これで下記のような画面が表示される。
2020y02m19d_232235788.png

他のユーザのcryoSPARCアプリをコピーして使う

既に動ている他のユーザのcryosparcアプリを自分のディレクトリーにコピーします

[saber@s ~]$ cp -r /home/cryosparc/cryoSPARC /home/saber/cryoSPARC

そして.bashrcに「export PATH="/home/saber/cryoSPARC/cryosparc_master/bin":$PATH」としてPATHを通して
下記のように修正を行います

[saber@s ~]$ vi cryoSPARC/cryosparc_master/config.sh
export CRYOSPARC_LICENSE_ID="ccccccccccccccccccccccccccccccccccccccccccccccc"
export CRYOSPARC_MASTER_HOSTNAME="s.sybyl.local"
export CRYOSPARC_DB_PATH="/home/saber/cryoSPARC/cryosparc_database"
export CRYOSPARC_BASE_PORT=39000
export CRYOSPARC_DEVELOP=false
export CRYOSPARC_INSECURE=false
export CRYOSPARC_CLICK_WRAP=true
 
#(下記を追加)
export CRYOSPARC_FORCE_USER=true
[saber@s ~]$

その上で「cryosparcm start」を実行します


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-05-27 (木) 00:39:19 (64d)