コンテンツにスキップ

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

詳細な説明は以下に記載されています。

http://www.gromacs.org/

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 -pk gpu 0 -in in.gk.2d
cp -rp $TMPDIR/VISCOSITY $HOME

詳細な説明は以下に記載されています。

http://lammps.sandia.gov/

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

詳細な説明は、以下に記載されています。

https://www.cp2k.org/

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_60,code=sm_60 -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_60,code=sm_60 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_60,code=sm_60 -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 はユーザ環境にインストールします。

詳細な説明は以下に記載されています。

https://www.tensorflow.org/

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
lmp -i 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 -x PYTHONPATH  -x LAMMPS_PLUGIN_PATH -npernode 4 -np 8 lmp -i 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

詳細な説明は以下に記載されています。

http://www.povray.org/

7.5.2. ParaView

ParaViewはオープンソース、マルチプラットフォームのデータ解析と可視化アプリケーションです。

ParaViewの利用方法の例をを以下に記します。

$ module load paraview
$ paraview

7.5.2.1. 複数GPUを用いて可視化する場合

paraview/5.12.0paraview/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のサンプルデータはここからダウンロードすることができます。

詳細な説明は以下に記載されています。

https://www.paraview.org/

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.t3.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として、Open JDK 1.8がインストールされています。

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

Apptainer は HPC 向け Linux コンテナです。

Apptainer の使い方の例を以下に記します。 Ubuntu の最新 Docker イメージを使用します。

  • 使用イメージ: ubuntu_latest.sif
  • -nv : GPUを使用
  • -B : ファイルシステムをマウント
$ mkdir $HOME/apptainer
$ cd $HOME/apptainer
$ apptainer pull docker://ubuntu:latest
$ apptainer shell --nv -B /gs -B /apps -B /home ubuntu_latest.sif
Apptainer> uname -a
Linux r1n11 5.14.0-362.18.1.el9_3.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jan 3 15:54:45 EST 2024 x86_64 x86_64 x86
_64 GNU/Linux
Apptainer> cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
Apptainer>

7.6.11. Alphafold

Alphafoldは機械学習を用いたタンパク質構造予測プログラムです。
Alphafoldを利用する例を以下に示します。

  • 初期設定 (ログインノードもしくは計算ノード)

    module purge
    module load alphafold
    
    cp -pr $ALPHAFOLD_DIR .
    cd alphafold
    git pull # 最新版に更新
    # 特定のバージョンを使用したい場合(この場合はv2.3.3)は以下を追加してください。
    # git checkout -b v2.3.3 v2.3.3
    

  • 実行時 (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/2.1.1のジョブスクリプトの例)

    #!/bin/sh
    #$ -l h_rt=24:00:00
    #$ -l f_node=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/ -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/