7. フリーウェア¶
フリーウェアの一覧表を以下に示します。
ソフトウェア名 | 概要 |
---|---|
GAMESS | ソルバ・シミュレータ |
Tinker | ソルバ・シミュレータ |
GROMACS | ソルバ・シミュレータ |
LAMMPS | ソルバ・シミュレータ |
NAMMD | ソルバ・シミュレータ |
QUANTUM ESPRESSO | ソルバ・シミュレータ |
CP2K | ソルバ・シミュレータ |
OpenFOAM | ソルバ・シミュレータ、可視化 |
CUDA | GPUライブラリ |
CuDNN | GPUライブラリ |
NCCL | GPUライブラリ |
TensorFlow | DeepLearningフレームワーク |
DeePMD-kit | MD用DeepLearningフレームワーク |
PyTorch | 機械学習 |
R | インタプリタ(Rmpi,rpudに対応) |
Hadoop | 分散データ処理ツール |
POV-Ray | 可視化 |
ParaView | 可視化 |
VisIt | 可視化 |
vmd | 可視化 |
VESTA | 可視化 |
turbovnc | リモートGUI(X11) 表示 |
VirtualGL | リモートGUI |
Open OnDemand | HPC向けWebポータル |
gnuplot | データ可視化 |
GIMP | 画像表示・編集 |
Tgif | 画像表示・編集 |
ImageMagick | 画像表示・編集 |
TeX Live | TeX ディストリビューション |
OpenJDK | 開発環境 |
python | 開発環境 |
ruby | 開発環境 |
perl | 開発環境 |
PHP | 開発環境 |
golang | 開発環境 |
Emacs | エディタ |
vim | エディタ |
PETSc | リニアシステムソルバ、ライブラリ |
FFTW | 高速フーリエ変換ライブラリ |
Apptainer | コンテナ管理 |
Spack | ソフトウェアパッケージ管理 |
miniconda | ソフトウェアパッケージ管理 |
PyPl | ソフトウェアパッケージ管理 |
Rbenv | ソフトウェアパッケージ管理 |
Alphafold | バイオ |
tmux | 端末多重接続 |
NetCDF | 多次元データフォーマット |
HDF5 | 階層データフォーマット |
ffmpeg | 動画・音声処理 |
Info
本ページで使用しているmoduleコマンドについては利用環境の切換え方法を参照してください。
7.1. 量子化学/MD関連ソフトウェア¶
7.1.1. GAMESS¶
GAMESSはオープンソースの第一原理分子量子化学計算アプリケーションです。
バッチキューシステムを利用したGAMESSの利用方法の例を以下に示します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N gamess
module load gamess
$GAMESS_DIR/rungms exam01 00 2 2 1
詳細な説明は以下に記載されています。
http://www.msg.ameslab.gov/gamess/index.html
7.1.2. Tinker¶
Tinkerはバイオポリマーの為の特別な機能を備えた、分子動力学の為のモデリングソフトウェアです。
バッチキューシステムを利用したTinkerの利用方法の例を以下に示します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N tinker
module load tinker
cp -rp $TINKER_DIR/example $TMPDIR
cd $TMPDIR/example
dynamic waterbox.xyz -k waterbox.key 100 1 1 2 300
cp -rp $TMPDIR/example $HOME
詳細な説明は以下に記載されています。
https://dasher.wustl.edu/tinker/
7.1.3. GROMACS¶
GROMACSは分子動力学シミュレーションとエネルギー最小化を行う為のエンジンです。
バッチキューシステムを利用したGROMACSの利用方法の例を以下に示します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N gromacs
module load gromacs
cp -rp $GROMACS_DIR/examples/water_GMX50_bare.tar.gz $TMPDIR
cd $TMPDIR
tar xf water_GMX50_bare.tar.gz
cd water-cut1.0_GMX50_bare/3072
gmx_mpi grompp -f pme.mdp
OMP_NUM_THREADS=2 mpiexec -np 4 gmx_mpi mdrun
cp -rp $TMPDIR/water-cut1.0_GMX50_bare $HOME
詳細な説明は以下に記載されています。
Info
GROMACS 2023以降はCUDA Graphs機能に対応しています。
本機能を利用した場合、複数基のGPU使用時に実行性能の向上につながる可能性がありますが、以下の記述もあるためご自分のケースで高速化するかどうかは各自の責任でご判断ください。
「この機能はまだ実験的なものであり、テストも限られているため、結果が期待通りであることを確認するために注意が必要です」
CUDA Graphsについては以下のサイトをご参照ください。
https://developer.nvidia.com/ja-jp/blog/a-guide-to-cuda-graphs-in-gromacs-2023/
TSUBAME4.0 node_f=1 の場合の実行コマンドの一例:
mpiexec -x OMP_NUM_THREADS=2 -x GMX_ENABLE_DIRECT_GPU_COMM=1 -np 4 gmx_mpi mdrun -nb gpu -bonded gpu -pme gpu -update gpu -npme 1
7.1.4. LAMMPS¶
LAMMPSは液状、固体状、気体状の粒子の集団をモデル化する古典分子動力学コードです。
バッチキューシステムを利用したLAMMPSの利用方法の例を以下に記します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N lammps
module load lammps
cp -rp $LAMMPS_DIR/examples/VISCOSITY $TMPDIR
cd $TMPDIR/VISCOSITY
mpirun -x PATH -x LD_LIBRARY_PATH -np 4 lmp -sf gpu -in in.gk.2d
cp -rp $TMPDIR/VISCOSITY $HOME
詳細な説明は以下に記載されています。
7.1.5. NAMD¶
NAMDは、大規模な生体分子システムの高性能シミュレーション用にデザインされたオブジェクト指向の並列分子動力学コードです。
バッチキューシステムを利用したNAMDの利用方法の例を以下に記します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N namd
module load namd
cp -rp $NAMD_DIR/examples/stmv.tar.gz $TMPDIR
cd $TMPDIR
tar xf stmv.tar.gz
cd stmv
namd3 +idlepoll +p4 +devices 0,1,2,3 stmv.namd
cp -rp $TMPDIR/stmv $HOME
詳細な説明は以下に記載されています。
https://www.ks.uiuc.edu/Research/namd/3.0/ug/
7.1.6. CP2K¶
CP2Kは固体、液体、分子、周期的、物質、結晶、生物系の原子シミュレーションを実行できる量子化学、固体物理ソフトウェアパッケージです。
バッチキューシステムを利用したCP2Kの利用方法の例を以下に記します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N cp2k
module load cp2k
cp -rp $CP2K_DIR/benchmarks/QS $TMPDIR
cd $TMPDIR/QS
export OMP_NUM_THREADS=1
mpirun -x PATH -x LD_LIBRARY_PATH -np 4 cp2k.psmp -i H2O-32.inp -o H2O-32.out
cp -rp $TMPDIR/QS $HOME
詳細な説明は、以下に記載されています。
7.1.7. QUANTUM ESPRESSO¶
QUANTUM ESPRESSOは第一原理電子構造計算と材料モデリングのためのスイートです。
バッチキューシステムを利用したQUANTUM ESPRESSOの利用方法の例を以下に記します。
#!/bin/sh
#$ -cwd
#$ -l h_rt=00:10:00
#$ -l node_f=1
#$ -N q-e
module purge
module load quantumespresso
cp -p $QUANTUMESPRESSO_DIR/test-suite/pw_scf/scf.in .
cp -p $QUANTUMESPRESSO_DIR/example/Si.pz-vbc.UPF .
mpirun -x ESPRESSO_PSEUDO=$PWD -x PATH -x LD_LIBRARY_PATH -np 4 pw.x < scf.in
詳細な説明は、以下に記載されています。
https://www.quantum-espresso.org/
7.2. CFD関連ソフトウェア¶
7.2.1. OpenFOAM¶
OpenFOAMはオープンソースの流体/連続体シミュレーションコードです。
Foudation版(openfoam)とESI版(openfoam-esi)の2種類がインストールされています。
バッチキューシステムを利用したOpenFOAMの利用方法の例を以下に記します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N openform
module load openfoam
mkdir -p $TMPDIR/$FOAM_RUN
cd $TMPDIR/$FOAM_RUN
cp -rp $FOAM_TUTORIALS .
cd tutorials/legacy/incompressible/icoFoam/cavity/cavity
blockMesh
icoFoam
paraFoam
ESI版OpenFOAMをご利用の場合は上記のmodule load
の箇所をmodule openfoam-esi
として下さい。
詳細な説明は以下に記載されています。
https://openfoam.org/resources/
http://www.openfoam.com/documentation/
7.3. GPU用数値計算ライブラリ¶
7.3.1. cuBLAS¶
cuBLASはGPUで動作するBLAS(Basic Linear Algebra Subprograms)ライブラリです。
利用方法
$ module load cuda
$ nvcc -gencode arch=compute_90,code=sm_90 -o sample sample.cu -lcublas
通常のC言語のプログラム中で、cuBLASを呼び出す場合、コンパイル時に-I、-L、-lで指定する必要があります。
$ module load cuda
$ gcc -o blas blas.c -I${CUDA_HOME}/include -L${CUDA_HOME}/lib64 -lcublas
7.3.2. cuSPARSE¶
cuSPARSEはNVIDIA GPU上で疎行列計算を行うためのライブラリです。
利用方法
$ module load cuda
$ nvcc -gencode arch=compute_90,code=sm_90 sample.cu -lcusparse -o sample
通常のC言語のプログラム中で、cuSPARSEを呼び出す場合、コンパイル時に-I、-L、-lで指定する必要があります。
$ module load cuda
$ g++ sample.c -lcusparse_static -I${CUDA_HOME}/include -L${CUDA_HOME}/lib64 -lculibos -lcudart_static -lpthread -ldl -o sample
7.3.3. cuFFT¶
cuFFTはNVIDIA GPU上で並列FFT(高速フーリエ変換)を行うためのライブラリです。
利用方法
$ module load cuda
$ nvcc -gencode arch=compute_90,code=sm_90 -o sample sample.cu -lcufft
通常のC言語のプログラム中で、cuFFTを呼び出す場合、コンパイル時に-I、-L、-lで指定する必要があります。
$ module load cuda
$ gcc -o blas blas.c -I${CUDA_HOME}/include -L${CUDA_HOME}/lib64 -lcufft
7.4. 機械学習、ビックデータ解析関連ソフトウェア¶
7.4.1. CuDNN¶
CuDNNはGPUを用いたDeep Neural Networkの為のライブラリです。
CuDNNの利用方法を以下に記します。
$ module load cuda cudnn
7.4.2. NCCL¶
NCCLは複数GPUの為の集団通信ライブラリです。
NCCLの利用方法の例を以下に記します。
$ module load cuda nccl
7.4.3. PyTorch¶
PyTorch は Python で機械学習を行う場合に利用できるオープンソースの機械学習ライブラリです。
PyTorchのインストール方法を以下に記します。
$ python3 -m pip install --user torch
Info
PyTorch はユーザ環境にインストールします。
7.4.4. TensorFlow¶
TensorFlowはデータフローグラフを用いた機械学習・AIのオープンソースのライブラリです。
TensorFlowのインストール方法を以下に記します。
$ python3 -m pip install --user tensorflow
Info
TensorFlow はユーザ環境にインストールします。
詳細な説明は以下に記載されています。
Info
TensorFlowをGPU上で動作させる場合、python,cudnn,cudaのバージョンを下記リンク先の表に合わせる必要があります。
https://www.tensorflow.org/install/source#gpu
例)
TensorFlow 2.17.0の場合
Pytnon 3.9~3.12
CuDNN 8.9
CUDA 12.3
なお、TSUBAME4.0ではCUDA12に対応したCuDNN 8.9は導入しておりません。
また、原則として現在導入されているバージョンよりも古いバージョンの導入は行いません。
TensorFlow 2.17.0をGPU上で動作させたい場合、pipなどを使用してご自身の環境にCuDNN 8.9を導入してください。
(CuDNNを使用しない、またはCuDNN9.0.0を使用した場合について、いずれもGPU上で動作しないことを確認しました。)
また、構築環境や組み合わせによっては、条件を満たしていても正常に導入が出来ないケースがあるようです。
こちらで検証した手順について、参考情報として以下に記載します。
それ以外のバージョン・手順・環境で構築した場合のトラブルについては、ご自身で各アプリのリリースノートなどを確認し解決いただく必要があります。
[参考情報]
python仮想環境にてTensorFlow 2.17.0とCUDA12に対応したCuDNN 8.9を導入してGPUの利用を確認するまでのログを掲載します。
shell-session
# pythonバージョンの確認
$ python -V
Python 3.9.18
# cuda12.3.2の読込
$ module load cuda/12.3.2
# python仮想環境の作成
$ python -m venv venv
# python仮想環境の呼出
$ source venv/bin/activate
# pipのバージョンアップ
$ pip install --upgrade pip
# cuda12対応のcudnn8.9とtenserflow2.17.0のインストール
$ pip install nvidia-cudnn-cu12==8.9.7.29 tensorflow==2.17.0
# GPUが見えているかの確認
$ python3 -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
<< ログ省略 >>
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]
7.4.5. DeePMD-kit¶
DeePMD-kitはMD用機械学習フレームワークです。
DeePMD-kitのジョブスクリプトの例を以下に記します。
7.4.5.1. 1 DeePMD-kit + LAMMPS¶
7.4.5.1.1. DeePMD-kit LAMMPS 1ノード¶
DeePMD-kit + LAMMPSのジョブスクリプト例(1ノード、4GPU)を以下に示します。
#!/bin/sh
#$ -l h_rt=6:00:00
#$ -l node_f=1
#$ -cwd
module purge
module load deepmd-kit lammps
module li 2>&1
# enable DeePMD-kit for lammps/2aug2023_u3
export LAMMPS_PLUGIN_PATH=$DEEPMD_KIT_DIR/lib/deepmd_lmp
# https://tutorials.deepmodeling.com/en/latest/Tutorials/DeePMD-kit/learnDoc/Handson-Tutorial%28v2.0.3%29.html
wget https://dp-public.oss-cn-beijing.aliyuncs.com/community/CH4.tar
tar xf CH4.tar
cd CH4/00.data
python3 <<EOF
import dpdata
import numpy as np
data = dpdata.LabeledSystem('OUTCAR', fmt = 'vasp/outcar')
print('# the data contains %d frames' % len(data))
# random choose 40 index for validation_data
index_validation = np.random.choice(200,size=40,replace=False)
# other indexes are training_data
index_training = list(set(range(200))-set(index_validation))
data_training = data.sub_system(index_training)
data_validation = data.sub_system(index_validation)
# all training data put into directory:"training_data"
data_training.to_deepmd_npy('training_data')
# all validation data put into directory:"validation_data"
data_validation.to_deepmd_npy('validation_data')
print('# the training data contains %d frames' % len(data_training))
print('# the validation data contains %d frames' % len(data_validation))
EOF
cd ../01.train
dp train input.json
dp freeze -o graph.pb
dp compress -i graph.pb -o graph-compress.pb
dp test -m graph-compress.pb -s ../00.data/validation_data -n 40 -d results
cd ../02.lmp
ln -s ../01.train/graph-compress.pb
mpirun -x PATH -x LD_LIBRARY_PATH -np 4 lmp -sf gpu -in in.lammps
7.4.5.1.2. DeePMD-kit LAMMPS 2ノード¶
DeePMD-kit + LAMMPSのジョブスクリプト例(2ノード、8GPU)を以下に示します。
#!/bin/sh
#$ -l h_rt=12:00:00
#$ -l node_f=2
#$ -cwd
module purge
module load deepmd-kit lammps
module li 2>&1
# enable DeePMD-kit
export LAMMPS_PLUGIN_PATH=$DEEPMD_KIT_DIR/lib/deepmd_lmp
# https://tutorials.deepmodeling.com/en/latest/Tutorials/DeePMD-kit/learnDoc/Handson-Tutorial%28v2.0.3%29.html
wget https://dp-public.oss-cn-beijing.aliyuncs.com/community/CH4.tar
tar xf CH4.tar
cd CH4/00.data
python3 <<EOF
import dpdata
import numpy as np
data = dpdata.LabeledSystem('OUTCAR', fmt = 'vasp/outcar')
print('# the data contains %d frames' % len(data))
# random choose 40 index for validation_data
index_validation = np.random.choice(200,size=40,replace=False)
# other indexes are training_data
index_training = list(set(range(200))-set(index_validation))
data_training = data.sub_system(index_training)
data_validation = data.sub_system(index_validation)
# all training data put into directory:"training_data"
data_training.to_deepmd_npy('training_data')
# all validation data put into directory:"validation_data"
data_validation.to_deepmd_npy('validation_data')
print('# the training data contains %d frames' % len(data_training))
print('# the validation data contains %d frames' % len(data_validation))
EOF
cd ../01.train
mpirun -x PATH -x LD_LIBRARY_PATH -x PYTHONPATH -x NCCL_BUFFSIZE=1048576 -npernode 4 -np 8 dp train input.json
dp freeze -o graph.pb
dp compress -i graph.pb -o graph-compress.pb
dp test -m graph-compress.pb -s ../00.data/validation_data -n 40 -d results
cd ../02.lmp
ln -s ../01.train/graph-compress.pb
mpirun -x PATH -x LD_LIBRARY_PATH -npernode 4 -np 8 lmp -sf gpu -in in.lammps
詳細な説明は以下に記載されています。
https://docs.deepmodeling.com/projects/deepmd/en/master/index.html
7.4.6. R¶
Rはデータ解析とグラフィックスの為のインタプリタ型プログラミング言語です。
並列処理用にRmpi、GPU用にrpudがインストールされています。
Rの利用方法の例を以下に記します。
$ module load R
$ mpirun -np 2 Rscript test.R
7.4.7. Apache Hadoop¶
Apache Hadoopソフトウェアライブラリは単純なプログラミングモデルを用いて大きなデータセットを分散処理する為のフレームワークです。
Apache Hadoopの利用方法の例を以下に記します。
$ module load hadoop
$ mkdir input
$ cp -p $HADOOP_HOME/etc/hadoop/*.xml input
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'
$ cat output/part-r-00000
1 dfsadmin
バッチキューシステムの場合の利用手順を以下に示します。
#!/bin/bash
#$ -cwd
#$ -l node_f=1
#$ -l h_rt=0:10:0
#$ -N hadoop
module load hadoop
cd $TMPDIR
mkdir input
cp -p $HADOOP_HOME/etc/hadoop/*.xml input
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar grep input output 'dfs[a-z.]+'
cp -rp output $HOME
7.5. 可視化関連ソフトウェア¶
7.5.1. POV-Ray¶
POV-Rayはフリーの光線追跡ソフトです。
POV-Rayの利用方法の例を以下に記します。
$ module load pov-ray
$ povray -benchmark
詳細な説明は以下に記載されています。
7.5.2. ParaView¶
ParaViewはオープンソース、マルチプラットフォームのデータ解析と可視化アプリケーションです。
ParaViewの利用方法の例をを以下に記します。
$ module load paraview
$ paraview
7.5.2.1. 複数GPUを用いて可視化する場合¶
paraview/5.12.0
、paraview/5.12.0-egl
、を用いて複数ノードで複数GPUを用いて可視化することができます。
paraview/5.12.0-egl
にはparaview
コマンドが含まれていないことにご注意ください。
以下はnode_f=2
で8GPUを使う例です。
- wrap.sh
#!/bin/sh
num_gpus_per_node=4
mod=$((OMPI_COMM_WORLD_RANK%num_gpus_per_node))
if [ $mod -eq 0 ];then
export VTK_DEFAULT_EGL_DEVICE_INDEX=0
elif [ $mod -eq 1 ];then
export VTK_DEFAULT_EGL_DEVICE_INDEX=1
elif [ $mod -eq 2 ];then
export VTK_DEFAULT_EGL_DEVICE_INDEX=2
elif [ $mod -eq 3 ];then
export VTK_DEFAULT_EGL_DEVICE_INDEX=3
fi
$*
- job.sh
#!/bin/sh
#$ -cwd
#$ -V
#$ -l h_rt=8:0:0
#$ -l node_f=2
module purge
module load paraview
mpirun -x PATH -x LD_LIBRARY_PATH -npernode 4 -np 8 ./wrap.sh pvserver
wrap.sh
に実行権限を忘れずに付与して下さい。(chmod 755 wrap.sh
)
上記のジョブスクリプトで
qsub -g <グループ名> job.sh
を行い、ジョブを投入します。
qstat
でジョブが流れているのを確認します。
yyyyyyyy@login1:~> qstat
job-ID prior name user state submit/start at queue jclass slots ja-task-ID
------------------------------------------------------------------------------------------------------------------------------------------------
xxxxxxx 0.55354 job.sh yyyyyyyy r 05/31/2024 09:24:19 all.q@rXnY 56
ジョブが流れているノードにX転送でsshし、paraviewを起動します。
yyyyyyyy@login1:~> ssh -CY rXnY
yyyyyyyy@rXnY:~> module load paraview
paraview
※turbovncを用いても可能です。
起動後、「File」->「Connect」をクリックし、「Add Server」をクリックします。
「Name」を適当に入力し(ここでは"test"とします)、「Configure」をクリックします。
その後、「Connect」をクリックします。
接続されると、「Pipeline Browser」の項目にtest(cs://localhost:11111)
が表示されます。
paraviewのサンプルデータはここからダウンロードすることができます。
詳細な説明は以下に記載されています。
7.5.3. VisIt¶
VisItはオープンソースの可視化アプリケーションです。
VisItの利用方法の例を以下に記します。
$ module visit
$ visit
詳細な説明は以下に記載されています。
https://wci.llnl.gov/simulation/computer-codes/visit/
7.6. その他フリーウェア¶
7.6.1. turbovnc¶
turbovncはオープンソースのVNCソフトウェアです。
turbovncの使用方法の例を以下に記します。
※qrshで計算ノードを確保し計算ノード上で実行して下さい。
- 計算ノードを確保する
$ qrsh -g <グループ名> -l <資源タイプ>=<個数> -l h_rt=<時間>
- 確保した計算ノード上で以下を実行し、vncserverを起動する
$ module load turbovnc
$ vncserver -xstartup xfce.sh
You will require a password to access your desktops.
Password: # <-- パスワードを聞かれるので設定する
Verify:
Would you like to enter a view-only password (y/n)? n
Desktop 'TurboVNC: rXnY:1 ()' started on display rXnY:1 # <-- ここのVNCのディスプレイ番号:1を覚えておく
Creating default startup script /home/n/xxxx/.vnc/xstartup.turbovnc
Starting applications specified in /home/n/xxxx/.vnc/xstartup.turbovnc
Log file is /home/n/xxxx/.vnc/rXiYnZ:1.log
画面サイズを大きくしたい場合はvncserver -geometry <WIDTH>x<HEIGHT>
としてサイズを指定します。
- その後https://sourceforge.net/projects/turbovnc/files/から自分のPC用のインストーラをダウンロードし、turbovnc viewerをインストールする
- 計算ノードに接続したターミナルソフトからSSHポート転送の設定でローカルのポート5901を計算ノードのポート5901にポート転送するように設定する(もしディスプレイ番号がrXiYnZ:nだった場合、ポート転送のポート番号は5900+nに設定する)
- 自分のPCからturbovnc viewerを起動し、localhost:5901に接続して設定したパスワードを入力する
Tips
VNCのディスプレイ番号は vncserver が起動されるごとにカウントアップしていきます。SSHポート転送の設定のポート番号は毎回確認してください。
7.6.1.1. MobaXtermからVNCクライアントを利用する方法¶
MobaXtermにはVNCクライアントが内蔵されておりますので、VNCクライアントをインストールしなくてもVNC接続がご利用できます。
- qrshでノードを確保後、MobaXtermから「Sessions」->「New session」->「VNC」を選択する。
- その後、「Basic Vnc settings」の「Remote hostname or IP address」に確保した計算ノードのホスト名、「Port」を5900+nを入力し、「Network settings」の「Connect through SSH gateway(jump host)」をクリックし「Gateway SSH server」にlogin.t4.gsic.titech.ac.jpを入力、「Port」は22のまま、「User」に自分のTSUBAMEのログイン名を入力、「Use private key」にチェックを入れ自分の秘密鍵を入力する。
OKをクリックするとVNCクライアントが起動します。
7.6.1.2. turbovnc + VirtualGL¶
turbovnc用時に、GPUを1つ以上確保する資源タイプ(node_f, node_h, node_q, gpu_1)を用いている場合、VirtualGLを使用してGPUを用いて可視化することができます。
例として、gpu_1の場合のVirtualGLの使用例を以下に示します。
$ qrsh ... -l gpu_1=1
$ module load turbovnc
$ vncserver -xstartup xfce.sh
- VNCクライアントで接続し、以下を実行
$ vglrun -d /dev/dri/card<N> <OpenGLアプリケーション>
<N>
は1~4の番号で、GPU0~3に対応します。
GPU番号とcard<N>
の対応は以下です。
デバイス名 | GPU番号 |
---|---|
/dev/dri/card1 | GPU1(64:00) |
/dev/dri/card2 | GPU0(04:00) |
/dev/dri/card3 | GPU3(E4:00) |
/dev/dri/card4 | GPU2(84:00) |
7.6.2. gnuplot¶
gnuplotはコマンドラインのインタラクティブなグラフ描画プログラムです。
標準機能に加え、X11、latex、PDFlib-lite、Qt4に対応するようにビルドされています。
gnuplotの利用方法の例を以下に記します。
$ gnuplot
7.6.3. Tgif¶
tgifはオープンソースの描画ツールです。
tgifの利用方法を以下に記します。
$ module load tgif
$ tgif
※Cannot open the Default(Msg) Font '--courier-medium-r-normal--14-----*-iso8859-1'.というエラーが出て起動しない場合は、 ~/.Xdefaultsに以下の行を追加して下さい。
Tgif.DefFixedWidthFont: -*-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*
Tgif.DefFixedWidthRulerFont: -*-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*
Tgif.MenuFont: -*-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*
Tgif.BoldMsgFont: -*-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*
Tgif.MsgFont: -*-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*
7.6.4. GIMP¶
GIMPはオープンソースの画像操作プログラムです。
GIMPの利用方法の例を以下に記します。
$ gimp
7.6.5. ImageMagick¶
ImageMagickは画像処理ツールです。
標準機能に加え、X11、HDRI、libwmf、jpegに対応するようにビルドされています。
ImageMagickの利用方法の例を以下に記します。
$ module load imagemagick
$ convert -size 48x1024 -colorspace RGB 'gradient:#000000-#ffffff' -rotate 90 -gamma 0.5 -gamma 2.0 result.jpg
7.6.6. Tex Live¶
TeX Live は TeX の統合パッケージです。
TeX Live の利用方法の例を以下に記します。
$ lualatex test.tex
Info
PDFファイルが作成されます。
7.6.7. Java SDK¶
Java SDKとして、以下のバージョンのOpenJDKがインストールされています。
- openjdk version "1.8.0_402"
- openjdk version "11.0.22" (デフォルト)
- openjdk version "21.0.2"
module コマンドを利用して利用するバージョンを切り替えることが可能です。
切り替え方法は以下の通りです。
module unload openjdk
module load openjdk/バージョン指定
OpenJDKのバージョン | バージョン指定 |
---|---|
1.8.0_402 | 1.8.0 |
11.0.22 | 11.0.22 |
21.0.2 | 21.0.2 |
現在のバージョンは、以下の手順で確認できます。
java -version
Java SDKの利用方法の例を以下に記します。
$ javac Test.java
$ java Test
7.6.8. PETSc¶
PETScはオープンソースの並列数値計算ライブラリです。線型方程式の求解等を行うことができます。
実数用、複素数用の2種類がインストールされています。
PETScの利用方法の例を以下に記します。
$ module load petsc/3.20.4-real ← 実数用
又は
$ module load petsc/3.20.4-complex ← 複素数用
$ mpiifort test.F -lpetsc
7.6.9. FFTW¶
FFTWはオープンソースの高速フーリエ変換用ライブラリです。
FFTW 2x系列と3x系列は非互換な為、バージョン2系と3系の2種類がインストールされております。
FFTWの利用方法の例を以下に記します。
$ module load fftw/3.3.10-intel intel-mpi/2021.11 ← Intel MPIの場合
又は
$ module load fftw/3.3.10-gcc ← Open MPIの場合
$ gfortran test.f90 -lfftw3
7.6.10. Apptainer (旧:Singularity)¶
Apptainer (旧:Singularity) は HPC 向け Linux コンテナです。
Apptainer の使い方については、コンテナの利用をご参照ください。
7.6.11. Alphafold¶
Alphafoldは機械学習を用いたタンパク質構造予測プログラムです。
Alphafoldを利用する例を以下に示します。
- 初期設定 (ログインノードもしくは計算ノード)
module purge module load alphafold cp -pr $ALPHAFOLD_DIR . cd alphafold git pull # 最新版に更新
- 実行時 (alphafold/2.3.2のジョブスクリプトの例)
#!/bin/sh #$ -l h_rt=24:00:00 #$ -l node_f=1 #$ -cwd module purge module load alphafold module li cd alphafold ./run_alphafold.sh -a 0,1,2,3 -d $ALPHAFOLD_DATA_DIR -o dummy_test/ -m model_1 -f ./example/query.fasta -t 2020-05-14
データベースファイルの容量が大きいため、可能な限り個別にダウンロードすることはお避け下さい。
Alphafoldの詳細な説明は以下をご参照下さい。
https://github.com/deepmind/alphafold
7.6.12. miniconda¶
minicondaはpythonの仮想環境作成ソフトウェアです。
minicondaを使用する例を以下に示します。
module load miniconda
eval "$(/apps/t4/rhel9/free/miniconda/24.1.2/bin/conda shell.bash hook)"
conda create -n test
conda acivate test
minicondaの詳細な説明は以下をご参照下さい。
https://docs.anaconda.com/free/miniconda/index.html
7.6.13. spack¶
spackはHPC向けのパッケージマネージャです。
spackを使用する例を以下に示します。
module load spack
spack install tree
spackの詳細は以下をご参照下さい。
https://spack.io/