本家様 https://cryosparc.com/

CryoSPARC is a state of the art scientific software platform for cryo-electron microscopy (cryo-EM) used in research and drug discovery pipelines.
 
CryoSPARCは、研究および創薬パイプラインで使用されるクライオ電子顕微鏡(クライオEM)用の最先端の科学ソフトウェアプラットフォームです。(deepL翻訳)

cryoSPARC/update cryoSPARC/memo cryoSPARC/backup cryoSPARC/project cryoSPARC/cryosparc-tools cryoSPARC/multi-user cryoSPARC/create-user

利用するためにはインスタンスごとにライセンスコードが必要みたい
計算機に1つ立てるなら1つ. 計算機にユーザ毎に立てるならその分のコードが必要みたい.
非営利の学術研究なら無料みたい

まずはライセンスコードを取得します.

ライセンスコードを取得します。

https://cryosparc.com/download/に必要事項を記載してsubmitします。
直後に「応答メール」が届きますが、これにはライセンスコードは記載されてません。
最大24時間までにはライセンスコードが記載された返信メールが届きます。

これを使ってプログラムの入手、及び実行が可能になるみたい。
*外部に繋がるネットワークは必須. 外部に繋がらないと計算できないみたい

プログラムの入手

詳しくはhttps://guide.cryosparc.com/setup-configuration-and-management/how-to-download-install-and-configure/downloading-and-installing-cryosparc#use-curl-to-download-the-two-files-into-tarball-archivesに記載されている。
下記2つのファイルを取得します。

どちらもライセンスコードを渡さないと得られない仕組みっぽい

[root@c ~]# mkdir -p /apps/src
[root@c ~]# cd /apps/src
[root@src ~]#  curl -L https://get.cryosparc.com/download/master-latest/"ライセンスコード" > cryosparc_master.tar.gz
[root@src ~]#  curl -L https://get.cryosparc.com/download/worker-latest/"ライセンスコード" > cryosparc_worker.tar.gz

proxy経由で取得が必要なら「curl」に「-x」でproxyサイトを指定する

運用形体

cryoSPARCは「Master」と「Worker」の2つから構成されている.
Master」はブラウザインターフェースを提供したり、ジョブのこれまでの経過をデータベースで管理するとかの機能を担う.
一方「Worker」は「Master」の指示に従い実際の計算を行う機能を担う.

システム要件はこちらに記載されている https://guide.cryosparc.com/setup-configuration-and-management/hardware-and-system-requirements#cryosparc-system-requirements

この2つの機能部分をどのように組み合わせて運用するかで3つの形式があるみたい.

他、考慮すべき事項として「誰が」cryoSPARCの計算を行うのか決める必要がある.

ユーザが1人で1つの計算機を占有できるなら、そのユーザがcryoSPARCを稼働させるユーザになってスタンドアローン形式が最適で一番楽に運用できるかと.

ユーザが複数で1台の計算機を使うなら、データの排他アクセスが必要ならユーザ毎にスタンドアローン形式でcryoSPARCを構築、排他アクセスが不要なら各ユーザのフォルダに共通ユーザcryoSPARCがアクセス可能にするACLを付与する.

ユーザが複数で複数の計算機を使うなら、...これも前述の「排他アクセス」次第でしょうか. 複数の計算機を自分で指定するか、ジョブコントローラーにお任せするかで作り方が違うくらいかな.

参照 cryoSPARC/multi-user

workerの動作要件

https://guide.cryosparc.com/setup-configuration-and-management/hardware-and-system-requirements#worker-node-cluster-worker-minimum-requirements

再起動時の自動起動

*一応インストールした「cryosparc_master/systemd」に本家様の方法があります。

参照先: https://discuss.cryosparc.com/t/adding-cryosparc-to-systemd/1436
「cryosparc2_master」パッケージ内の「cryosparc2_master/deps/anaconda/etc/systemd/system/supervisord.service」

単純にsystemcdにUnit 定義ファイルを加えてみた
場所は「/etc/systemd/system/cryosparc.service」
*システム由来のunitファイル置き場「/usr/lib/systemd/system/」ではなく、管理者が面倒見る場所に配置します

「cryosparc.service」ファイルの中身は下記のようにします

[Unit]
Description=Process Monitoring and Control Daemon for CryoSPARC
After=network.target
 
[Service]
User=cryosparc
Group=cryosparc
Type=forking
TimeoutStartSec = 300
ExecStart=/home/cryosparc/cryosparc_master/bin/cryosparcm start
ExecStop=/home/cryosparc/cryosparc_master/bin/cryosparcm stop
PIDFile=/home/cryosparc/cryosparc_master/run/supervisord.pid
WorkingDirectory=/home/cryosparc/cryosparc_master
Restart=on-abort
 
[Install]
WantedBy=multi-user.target

*「User」と「Group」は環境に応じて変更して下さい
*「Restart=on-abort」がいいのか微妙. ふとすると勝手に停止しているときがあるので「Restart=always」と付けたいが、、
*「After」欄にはもしcryosparcがnfsマウント先で行っているなら「nfs-client.target」あるいは「autofs.service」を加える. 「sssd.service」「autofs.service」 とかも
何が引っかかるかは「systemd-analyze plot > plot.svg」で調べられる
*起動に時間が掛かってエラーになるなら「TimeoutStartSec」を設けてエラー認定を遅らせる
** SELinux有効下に於いての自動起動はSELinuxのport/コンテキスト調整が必要みたい. 成功していない... 手動起動で行うかSELinuxを切れば自動起動できます

その後

[root@cryosparc ~]# systemctl daemon-reload
 
[root@cryosparc ~]# systemctl start cryosparc.service
 
 
[root@cryosparc ~]# systemctl status cryosparc.service
● cryosparc.service - Process Monitoring and Control Daemon for CryoSPARC
   Loaded: loaded (/usr/lib/systemd/system/cryosparc.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2024-08-18 03:21:55 JST; 1min 13s ago
 Main PID: 2621 (python)
    Tasks: 147 (limit: 205353)
   Memory: 854.3M
   CGroup: /system.slice/cryosparc.service
           tq2621 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/supervisord -c /home>
           tq2732 mongod --auth --dbpath /home/cryosparc/cryosparc_database --port 39001 --oplogSize 64 --replSet meteor ->
           tq2843 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/gunicorn -n command_>
           tq2844 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/gunicorn -n command_>
           tq2873 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/gunicorn cryosparc_c>
           tq2894 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/gunicorn cryosparc_c>
           tq2907 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/gunicorn cryosparc_c>
           tq2908 python /home/cryosparc/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/bin/gunicorn cryosparc_c>
           tq2921 node dist/server/index.js
           mq2938 /home/cryosparc/cryosparc_master/cryosparc_app/nodejs/bin/node ./bundle/main.js
 
Aug 18 03:21:55 cryosparc cryosparcm[2937]: app_api: started
Aug 18 03:21:55 cryosparc cryosparcm[2588]: -----------------------------------------------------
Aug 18 03:21:55 cryosparc cryosparcm[2588]: CryoSPARC master started.
Aug 18 03:21:55 cryosparc cryosparcm[2588]:  From this machine, access CryoSPARC and CryoSPARC Live at
Aug 18 03:21:55 cryosparc cryosparcm[2588]:     http://localhost:39000
Aug 18 03:21:55 cryosparc cryosparcm[2588]:  From other machines on the network, access CryoSPARC and CryoSPARC Live at
Aug 18 03:21:55 cryosparc cryosparcm[2588]:     http://cryosparc.sybyl.local:39000
Aug 18 03:21:55 cryosparc cryosparcm[2588]: Startup can take several minutes. Point your browser to the address
Aug 18 03:21:55 cryosparc cryosparcm[2588]: and refresh until you see the CryoSPARC web interface.
Aug 18 03:21:55 cryosparc systemd[1]: Started Process Monitoring and Control Daemon for CryoSPARC.
[root@cryosparc ~]#

と一応の起動確認をしてから、再起動時にも起動できるように

[root@cryosparc ~]# systemctl enable cryosparc.service
Created symlink /etc/systemd/system/multi-user.target.wants/cryosparc.service → /usr/lib/systemd/system/cryosparc.service.
 
[root@cryosparc ~]#

として置く。

そして実際に計算機を再起動してcryoSPARCが動ているかを確認します。
それでもし動いていないなら

[root@cryosparc ~]# systemd-analyze plot > plot.svg

として「plot.svg」を開くとどこで詰まっているかが分かる. cryoSPARCを稼働させているユーザがnid/ldap/ad由来なら認証系の立ち上げが終わってからの起動が望ましいので
「/etc/systemd/system/cryosparc.service」の「After」欄に「sssd.service」とかを記載します.

チュートリアル

cryoSPARC/run

メモ

workerでcudaを指定してコンパイルするのだが、当然ながらcudaの開発環境が必要. ただドライバーが 11.3 でcryoSPARCで使用する開発環境は 10.2 とかでも大丈夫みたい

yum install cuda-libraries-dev-10-2 cuda-libraries-10-2 cuda-command-line-tools-10-2

があればいいみたい.
ただ30x0を持つ計算機があるなら、30x0はcuda-11が必要なのでworkerノードには全てcuda-11を入れる必要がある.

cryoSPARCからtopazを実行できるが、これは外部のtopazをコールしているに過ぎない. topazもcudaライブラリが必要であるが、30x0ならcuda-11が必要.
っでtopazのインストールの際、pythonモジュールの cudatoolkit=11.1 とか pytorch-1.9.0 とかで作られるかを注意深く確認する必要があるみたい.

cryoSPARCからtopazをコールするにはtopazへのパスが必要. ここでのtopazなら「/apps/pyenv/versions/anaconda3-5.3.1/envs/topaz/bin/topaz」となる.
加えてcryoSPARCのtopaz関係を利用する際は、「Number of parallel threads」と「NUmber of CPUs」に要注意. この掛け算分のtopazプロセスが発行されます.
計算機によっては過負荷になるかも. 「Number of parallel threads」を1、「NUmber of CPUs」を8とかで8core使用とか初手は少なめに試すのが宜しいかと.

それと「CPU only」を有効にした方が早い?

最新の60件
2024-10-11 2024-10-10 2024-10-09 2024-10-08 2024-10-06 2024-10-05 2024-10-04 2024-10-03 2024-10-02 2024-10-01 2024-09-30 2024-09-29 2024-09-28 2024-09-27 2024-09-22 2024-09-20 2024-09-17 2024-09-12 2024-09-09 2024-09-08 2024-09-06 2024-09-05 2024-09-04 2024-09-02 2024-09-01 2024-08-31 2024-08-28 2024-08-18
  • cryoSPARC
2024-08-17 2024-08-16 2024-08-15 2024-08-14 2024-08-11

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-08-18 (日) 03:28:12