Master」と「Worker」を別々の計算機に組み込みます

ここでは下記のような構成です.
アカウント情報はnis,ldap,samba-adとかで共有されていて、/homeもnfsで全て共有されているとします

役目マシン名備考
Mastercryosparc.sybyl.localport番号45000で運用
Workers.sybyl.localgpuカード2枚
e.sybyl.localgpuカード1枚

ここでは一般ユーザsaberが利用する事を前提にします.
なので「Master」と「Worker」は/home/saberの配下にインストールされます.

別途共通アカウント cryosparc を作って運用することもできますが、
その際は利用者のデータの置き場所が cryosparc によって参照可能であることが必要になります.
例えばACLの操作としては下記のようになります.

[saber@cryosparc ~]$ cd ..
[saber@cryosparc home]$ setfacl -Rdm user:cryosparc:rwx saber

/home/saberフォルダ配下は cryosparc が読めて書ける
ですが、データアクセスに制限を加えたければユーザ個人個人でcryoSPARCを立てた方が宜しいかと.

Masterの構築

Master機能にはGPUカードは不要です。

*特別なアカウントで作ってもいいですが、自分のアカウントでも構いません

[saber@cryosparc ~]$ mkdir cryoSPARC
[saber@cryosparc ~]$ cd cryoSPARC/
 
[saber@cryosparc cryoSPARC]$ tar xf /apps/src/cryosparc_master.tar.gz
[saber@cryosparc cryoSPARC]$ ls -l
total 4
drwxr-xr-x 11 saber em 4096 Mar 30 06:49 cryosparc_master
 
[saber@cryosparc cryoSPARC]$ cd cryosparc_master
 
[saber@cryosparc cryosparc_master]$ ls -CF
bin/                    cryosparc_liveapp/   install.py               systemd/
check_install_deps.sh*  cryosparc_webapp/    install.sh*              version
cryosparc_app/          deps_bundle/         patch.py
cryosparc_command/      deps_bundle_hashes/  setup_client_ipython.py
cryosparc_compute/      environment.yml      supervisord.conf
[saber@cryosparc cryosparc_master]$

そしてMaster機能のインストールを行います

[saber@cryosparc cryosparc_master]$ ./install.sh --license xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
                                         --hostname cryosparc.sybyl.local \
                                         --dbpath /home/saber/cryoSPARC/database \
                                         --port 45000
 :
 :
[saber@cryosparc cryosparc_master]$

途中インストール内容の確認と.bashrcへのPATH登録の許諾が求められますが、共に「1」のyesを選べばokです.
その後、.bashrcに書き込まれた内容を反映するために、一度ログアウトして、再度ログインします
そして現状確認

[saber@cryosparc ~]$ cryosparcm status
----------------------------------------------------------------------------
CryoSPARC System master node installed at
/home/saber/cryoSPARC/cryosparc_master
Current cryoSPARC version: v3.2.0
----------------------------------------------------------------------------
 
CryoSPARC is not running.
 
----------------------------------------------------------------------------
 
global config variables:
 
export CRYOSPARC_LICENSE_ID="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
export CRYOSPARC_MASTER_HOSTNAME="cryosparc.sybyl.local"
export CRYOSPARC_DB_PATH="/home/saber/cryoSPARC/database"
export CRYOSPARC_BASE_PORT=45000
export CRYOSPARC_DEVELOP=false
export CRYOSPARC_INSECURE=false
export CRYOSPARC_CLICK_WRAP=true
 
[saber@cryosparc ~]$

とcryoSPARCのMasterはまだ機能していない.
なので起動させます.

[saber@cryosparc ~]$ cryosparcm start
Starting cryoSPARC System master process..
CryoSPARC is not already running.
database: started
command_core: started
    command_core connection succeeded
    command_core startup successful
command_vis: started
command_rtp: started
    command_rtp connection succeeded
    command_rtp startup successful
webapp: started
app: started
liveapp: started
-----------------------------------------------------
 
CryoSPARC master started.
 From this machine, access cryoSPARC at
    http://localhost:45000
 and access cryoSPARC Live at
    http://localhost:45006
 please note the legacy cryoSPARC Live application is running at
    http://localhost:45007
 
 From other machines on the network, access cryoSPARC at
    http://cryosparc.sybyl.local:45000
 and access cryoSPARC Live at
    http://cryosparc.sybyl.local:45006
 
 
Startup can take several minutes. Point your browser to the address
and refresh until you see the cryoSPARC web interface.
[saber@cryosparc ~]$

ただ現状Workerが用意されていないので計算はできません.

次にそのWorkerをインストールします

Workerを用意する

ここでは同じユーザで MasterWorker を用意します.
MasterWorkerで違うアカウントでもできそうだが複雑になりそうなので触れない

「cryosparc_worker.tar.gz」を展開します

[saber@cryosparc ~]$ cd cryoSPARC/
[saber@cryosparc cryoSPARC]$ tar xf /apps/src/cryosparc_worker.tar.gz
 
[saber@cryosparc cryoSPARC]$ ls -lF
total 16
drwxr-xr-x  2 saber em   21 Mar 30 06:49 cryosparc2_worker/
drwxr-xr-x 14 saber em 4096 Apr 24 19:40 cryosparc_master/           <-- masterの構築でできたもの
drwxr-xr-x  6 saber em  172 Mar 30 06:49 cryosparc_worker/
drwxr-xr-x  3 saber em 8192 Apr 24 20:09 database/                   <-- masterの構築でできたもの
 
[saber@cryosparc cryoSPARC]$ cd cryosparc_worker
 
[saber@cryosparc cryosparc_worker]$ ls -CF
bin/                    cryosparc_compute/  deps_bundle_hashes/  install.sh*
check_install_deps.sh*  deps_bundle/        environment.yml      version
 
[saber@cryosparc cryosparc_worker]$

っで Worker をインストールします
ただしインストールの際にcudaライブラリを参照するので一旦 gpu のある計算機に移ります

[saber@cryosparc ~]$ ssh s.sybyl.local
Last login: Sat Apr 24 20:16:23 2021 from c.sybyl.local
 
[saber@s ~]$ cd cryoSPARC/cryosparc_worker/
[saber@s cryosparc_worker]$ ./install.sh --license xxxxxxxxxxxxxxxxxxxxxxx  --cudapath /usr/local/cuda-11.2
 :
 :
Completed.
Completed dependency check.
 
******* CRYOSPARC WORKER INSTALLATION COMPLETE *******************
 
 In order to run processing jobs, you will need to connect this
 worker to a cryoSPARC master.
 
******************************************************************
[saber@s cryosparc_worker]$

これでWorkerのインストールは完了.
インストールした場所は masterworker共に /home/saber/cryoSPARC の配下でしかも全ノードはnfsで共有されている.
そのためworkerに関してはこの1つだけで十分となる.

あとはこのWorkerMasterに登録する

workerの登録

workerノードで「./bin/cryosparcw connect --worker s.sybyl.local --master cryosparc.sybyl.local --port 45000 --nossd」を実行します
「--worker」はworker自身のホスト名
「--master」は登録先となるmasterノードを指定します

[saber@s cryosparc_worker]$ ./bin/cryosparcw connect --worker s.sybyl.local --master cryosparc.sybyl.local --port 45000 --nossd
 ---------------------------------------------------------------
  CRYOSPARC CONNECT --------------------------------------------
 :
 :
  You can now launch jobs on the master node and they will be scheduled
  on to this worker node if resource requirements are met.
 ---------------------------------------------------------------
  Final configuration for s.sybyl.local
               cache_path :  None
           cache_quota_mb :  None
         cache_reserve_mb :  10000
                     desc :  None
                 hostname :  s.sybyl.local
                     lane :  default
             monitor_port :  None
                     name :  s.sybyl.local
           resource_fixed :  {'SSD': False}
           resource_slots :  {'CPU': [0, 1, 2, 3, 4, 5, 6, 7], 'GPU': [0, 1], 'RAM': [0, 1, 2, 3]}
                  ssh_str :  saber@s.sybyl.local
                    title :  Worker node s.sybyl.local
                     type :  node
          worker_bin_path :  /home/saber/cryoSPARC/cryosparc_worker/bin/cryosparcw
 ---------------------------------------------------------------
[saber@s cryosparc_worker]$

これでworkerとして「s.sybyl.local」が登録されました.

次に「e.sybyl.local」を登録します

[saber@cryosparc ~]$ ssh e
Last login: Sun Apr 25 00:29:19 2021 from cryosparc.sybyl.local
 
[saber@e ~]$ cd cryoSPARC/cryosparc_worker/
 
[saber@e cryosparc_worker]$ ./bin/cryosparcw connect --worker e.sybyl.local --master cryosparc.sybyl.local --port 45000 --nossd
 :
 :
  Registering worker...
  Done.
 
  You can now launch jobs on the master node and they will be scheduled
  on to this worker node if resource requirements are met.
 ---------------------------------------------------------------
  Final configuration for e.sybyl.local
               cache_path :  None
           cache_quota_mb :  None
         cache_reserve_mb :  10000
                     desc :  None
                 hostname :  e.sybyl.local
                     lane :  default
             monitor_port :  None
                     name :  e.sybyl.local
           resource_fixed :  {'SSD': False}
           resource_slots :  {'CPU': [0, 1, 2, 3], 'GPU': [0], 'RAM': [0, 1]}
                  ssh_str :  saber@e.sybyl.local
                    title :  Worker node e.sybyl.local
                     type :  node
          worker_bin_path :  /home/saber/cryoSPARC/cryosparc_worker/bin/cryosparcw
 ---------------------------------------------------------------
[saber@e cryosparc_worker]$

これで2つのworkerノードの登録ができた

値を更新する場合は「--update」を加えます。例えばssdを追加したなら

mkdir /scratch/cryosparc_$USER
./bin/cryosparcw connect --worker e.sybyl.local --master cryosparc.sybyl.local --port 45000 --ssdpath /scratch/cryosparc_$USER --update

とします.

現状と登録されている計算機は

[saber@e ~]$ cryosparcm cli "get_scheduler_targets()"

で得られるが、JSONコードです.
削除方法は、

[saber@e ~]$ cryosparcm cli "remove_scheduler_target_node('s.sybyl.local')"

とします
参照先 https://guide.cryosparc.com/setup-configuration-and-management/management-and-monitoring/cli

アカウント作成

ユーザ個人で使う場合はcryoSPARC内で使用するアカウントは1つで十分かと思います.
共通ユーザ「cryosparc_user」とか作って運用するなら複数用意された方が宜しいかと思います.

masterノードにて

[saber@cryosparc ~]$ cryosparcm createuser --email saber@fgo \
                      --password saber \
                      --username saber \
                      --firstname Artoria \
                      --lastname Pendragon
 :
 :
Creating user saber with email: saber@fgo password: saber and name: Artoria Pendragon
Successfully created user account.
[saber@cryosparc ~]$

と作成できます


トップ   編集 添付 複製 名前変更     ヘルプ   最終更新のRSS
Last-modified: 2021-06-18 (金) 21:31:46 (4d)