4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TSUBAME3.0備忘録

Last updated at Posted at 2021-09-15

#本記事の概要
まっっっっっったくと言っていいほどPCの知識がない学生が,TSUBAME3.0と格闘した記録.
もし似たような境遇の学生がいたら,参考にしてくれることを祈って更新していきたい.
なお,最も参考にすべきは公式の使い方ガイド利用の手引きです.

#基本的な使い方(2021/09/15)
##SSHの設定

自分のPCのホームディレクトリ直下に.sshディレクトリがあることを確認.なければ作る.(~/.sshという位置になるように.)

その後,ssh-keygenコマンドでrsa形式の鍵を作成する.

keygen
#rsa形式で"tsubame_rsa"という名前を指定して鍵のペアを作る
ssh-keygen -t rsa -f tsubame_rsa

パスワードは好きなようにつけておk.なくても可(エンター連打してるとパスなしになる).
これで鍵ができた..sshディレクトリ内にtsubame_rsatsubame_rsa.pubがあることを確認.

tsubameポータルを開き,「SSH公開鍵の登録」からファイルの中身のコピペまたはファイルアップロードによって公開鍵(.pubがついてる方)を登録する.

これで繋げるようにはもうなっているが,もっとラクにsshする方法が以下.

  1. .ssh内部にconfigファイル(拡張子なし)を作る
  2. config内を次のように書き換える
config
Host tsubame                #ログインに使うショートカット.任意でいいが,長くしすぎずわかりやすいものが吉
    Hostname login.t3.gsic.titech.ac.jp
    User 01B34567      #学籍番号
    TCPKeepAlive yes
    ServerAliveInterval 120
    ServerAliveCountMax 30
    ForwardX11 yes          #Xquarzを使いたい場合は書く.ローカル側にもインストールが必要で,まだだとエラーが出るので,この行は基本なくていいかも.
    IdentityFile ~/.ssh/tsubame_rsa     #秘密鍵の絶対パス

以上の操作により,たった10文字程度でsshログインが可能に!
ログインコマンドは以下.

ssh
ssh tsubame      #"tsubame"の部分は,configファイル中のHostで指定した文字列

##ジョブの投げかた
大きく2通りの方法がある.

###ログインノードからジョブを投げる
まずジョブスクリプトを書く必要がある.雛形はこんな感じ

  • bash(#!/bin/bash
  • ジョブ名をGaussian_jobに指定(#$ -N Gaussian_job
  • h_nodeを1つ(#$ -l h_node=1
  • 1時間(#$ -l h_rt=1:0:0
  • Gaussianモジュールをロード(module load gaussian16/B01
  • Gaussianでfilename.comを実行(g16 filename.com

のスクリプト例

batch
#!/bin/bash
#$ -cwd
#$ -N Gaussian_job
#$ -l h_node=1
#$ -l h_rt=1:0:0
#$ -V

. /etc/profile.d/modules.sh
module load gaussian16/B01

g16 filename.com

このスクリプトのファイル名を"sample.sh"として保存したあとは,以下のワンライナーでお手軽にジョブが投げられる.

sample_groupグループから(-g sample_group)実行する例

qsub
qsub -g sample_group sample.sh

###計算ノードに入って直接コマンドで実行する

  • sample_groupグループから(-g sample_group),
  • q_coreを1つ(-l q_core=1),
  • 10分間(-l h_rt=0:10:0

で計算ノードを利用する場合のコマンド例

qrsh
qrsh -g sample_group -l q_core=1 -l h_rt=0:10:0

これで計算ノードに入った後は,ローカルマシンと同じように動かしていける

##投げたジョブのあれこれ
・投げたジョブの状態を確認
以下のコマンドでジョブの状態を確認できる.

qstat
qstat

何も表示されない場合は,ジョブが終了している.カレントディレクトリに標準出力である(指定したジョブ名).o(ジョブID)ファイルと,標準エラー出力である(指定したジョブ名).o(ジョブID)ファイルができている.

・投げたジョブを削除
上記のqstatで消したいジョブのIDを確認したあと,以下のコマンドで消せる.

qdel
qdel 消したいジョブのID

・終了したジョブの終了理由を確認

qacct
qacct -j 確認したいジョブのID

詳しくはここを参照.

##基本のモジュールのロードの仕方
coming soon

##ファイルのやり取り

scpを使うのが楽そう.
sshでログイン用のショートカットコマンドを設定しているのなら,以下のように送受信可能.
ちなみに操作はローカルのターミナルでやるよ

ローカルマシン→リモート

  • configでtsubameというのを登録してありssh tsubameとすればログインできるようにしてあり
  • ローカルマシンのカレントディレクトリにあるtest.py
  • リモートマシンのホームディレクトリに移動したい
    場合のワンライナーが以下.
scp1
scp test.py tsubame:~/

リモートマシン→ローカル

  • configでtsubameというのを登録してありssh tsubameとすればログインできるようにしてあり
  • リモートマシンの~/hoge/fuga/以下にあるbar.py
  • ローカルマシンのカレントディレクトリに移動したい
    場合のワンライナーが以下.
scp2
scp tsubame:~/hoge/fuga/bar.py ./

#以下,さらに必要になった情報を追記していく部分

Anacondaを使う(2021/09/15)

このサイトを参考にしたのでこっちを読むことをお勧めするが,本記事は自分用の備忘録として書き留めておく.本記事のURLだと2021.5バージョンが入ることになる.

以下のコマンドを打ち込んでいき,インストールが完了したら一度TSUBAMEからログアウトし,再度入ればConda環境の出来上がり.

anaconda
mkdir anaconda-install
cd anaconda-install
curl -O https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh
chmod +x Anaconda3-2021.05-Linux-x86_64.sh
./Anaconda3-2021.05-Linux-x86_64.sh

###Anacondaの基礎コマンド

  • conda環境の一覧を表示
    conda info -e

  • 作成済みのconda環境に入る
    source activate 環境名またはconda activate 環境名

  • 現在の環境に入っているライブラリの確認
    確認したい環境中でconda list,または任意の環境中でconda list -n 環境名
    特定のライブラリを検索したい場合はconda list ライブラリ名(部分一致でも可)

  • 新しいライブラリのインストール
    まずはconda search ライブラリ名でAnaconda上に対応するライブラリのバージョンがあるか確認.
    現在入っているpythonとの互換性があるバージョンを確認し,conda install ライブラリ名=バージョンでインストール

  • 作成した環境の削除
    conda remove -n myenv --allmyenv環境を削除できる.

###qsubするときに自前のConda環境のパッケージを利用して欲しい
投げるスクリプトに以下のように書き足せばおk

my_env環境でsample.pyを実行したい場合,例えばこんな感じのスクリプト

script
#!/bin/bash
#$ -cwd
#$ -N Sample
#$ -l f_node=1
#$ -l h_rt=0:10:0
#$ -V


. /etc/profile.d/modules.sh
module load cuda/11.2.146 cudnn/8.1

source  ~/.bashrc              ##ここと 
conda activate my_env   ##ここでConda環境を立ち上げる
export PYTHONPATH="/hoge/fuga:$PYTHONPATH" ##ここは本サブセクションとは関係ないが,sample.py内でインポートしたいモジュールに自分で作ったものがある場合,ここでパスを通してやらないと死ぬ

python3 ./sample.py

###RDKitを入れたい(2021/09/15)
RDKitを入れた環境を作りたい.ていうかそのためにanaconda入れた.
というわけで環境の作り方の紹介.
python3.7でRDKitを入れた環境’myenv’を作るコマンドは以下.

make_env
conda create -n myenv python=3.7
conda activate myenv
conda install -c rdkit rdkit -y

###xgboostとやらの古いバージョンを入れたい(2021/09/16)
再現したいGithubコードの環境に合わせるべく,xgboost1.0.2とやらを入れてみようとなったのだが,python3.7.11環境下(上の手順で作ったもの)でconda search xgboostしてみたら

search
(myenv) hogehoge@login0:~> conda search xgboost
Loading channels: done
# Name                       Version           Build  Channel             
xgboost                        1.3.3  py36h06a4308_0  pkgs/main           
xgboost                        1.3.3  py37h06a4308_0  pkgs/main           
xgboost                        1.3.3  py38h06a4308_0  pkgs/main           
xgboost                        1.3.3  py39h06a4308_0  pkgs/main  

あれっっ欲しいバージョンがないぞ........

となってしまったので,ググった結果このコマンドで解決しました↓

installxgboost
conda install -c conda-forge py-xgboost=1.0.2

何が何だかわからないおまじないがついているけど,上手いことはいったっぽいので,ヨシ!

(2021/09/22 追記)
-cオプションはチャンネルを指定してインストールするためのものだそう.今回ならconda-forgeチャンネルで用意されているパッケージを使ってインストールさせてもらっているようだ.ありがたや〜

###tensorflow-gpu2.5.0を入れたい(2021/09/21)
これは解決しているのかわからないので真似するのは非推奨.

普通にconda installでどうにかなるかと思いきや,目的のバージョンがなくてpipすることに.
実行したのは以下.tensorflow-gpuの2.5.0が欲しかっただけなのだが,誤ってtensorfloeの2.5.0を初手でインストールするアホさ加減.多分いらない工程.(何が違うのかよくわかってない顔)

install_tensorflow-gpu
pip install tensorflow==2.5.0
pip install tensorflow-gpu==2.5.0

これでうまく入ったんじゃないかなあ.結果は以下の通り

list
$ conda list tensorflow
# packages in environment at hoge
#
# Name                    Version                   Build  Channel
tensorflow                2.5.0                    pypi_0    pypi
tensorflow-estimator      2.5.0                    pypi_0    pypi
tensorflow-gpu            2.5.0                    pypi_0    pypi

まあうまくいったと思いたいですね.
anacondaで全部インストールできると思ってたのでpipのお世話になると思ってなかった.パスとかうまく通ってるんだろうか...

4
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?