TUTクラスタ計算機で好きな言語を動かす

この記事はTUT Advent Calendar 2016の17日目の記事です.

豊橋技術科学大学には,2つのHPCクラスタがあります. 一つは次世代シミュレーション技術者教育用クラスタ(以下,次世代クラスタ),もう一つは広域連携教育用クラスタ(以下,広域クラスタ)です.

  • 次世代クラスタでは,Xeon E2680(8コア)を2個,メモリを64GB搭載したノードが28ノードあります.
  • 広域クラスタでは,Xeon E5-2680 v2(10コア)を2個,メモリを100GB搭載したノードが30ノードあります.

クラスタの詳細はTUT HPC Cluster Wikiを参照してください.

情報系の研究室や,分子計算だったり電磁界解析などを行っている研究室では,活発にクラスタを利用しているようです. 私も,去年くらいから,コンピュータクラブの友達からクラスタ計算機の利用についていろいろ聞いていて,興味がありました. そこで,今年度初めに研究室の先生に利用申請を頼みました. 先生としても,

  • 研究室所有の計算用PC群がだいぶ古くなっており(10年前とかのが7台とか),近いうちに更新しなければいけない
  • 上記PCなどの管理は学生が行っているが,手間であること
  • 学生一人あたり年間実質1000円しかかからず,現状の何倍もの実行速度が得られる

などなどのため,すぐに了承して頂けました.

利用申請方法

計算機利用申込書に記入して,指導教員の先生にお願いしましょう.

Linuxbrewをクラスタ計算機につっこむ

クラスタ計算機の環境ではgitが古かったり,D言語コンパイラがなかったり,いろいろと不便なことが多く, そのままでは研究できませんでした. なので,私の研究室ではLinuxbrewというパッケージ管理システムをクラスタ計算機につっこみ,利用しています.

Linuxbrewは,OSX(MacOS)のHomebrewのLinux版で,Homebrewをフォークする形で開発が進められています. そのため,基本的にはHomebrewと全く同じで,利用可能なパッケージも一部を除きHomebrewと同じです.

Linuxbrewのインストールは簡単です. SSHクラスタの開発ノードに接続し,以下を実行します.

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)"

TUTクラスタでは,ホーム領域が5GBしか割り当てられていないため,/gpfs/work/{user-id}領域を使用するように,Linuxbrewのフォルダを移動しましよう. ここで,{user}の部分はイニシャル+学籍番号(例:a123456)です.

$ mv ~/.linuxbrew /gpfs/work/{user}/.linuxbrew
$ mv ~/.cache /gpfs/work/{user}/.cache
$ mkdir /gpfs/work/{user}/tmp
$ ln -s /gpfs/work/{user}/.linuxbrew ~/.linuxbrew
$ ln -s /gpfs/work/{user}/.cache ~/.cache
$ ln -s /gpfs/work/{user}/tmp ~/tmp

また,Linuxbrewの各ディレクトリにパスを通しておきます. .bashrcなどに次の記述を追加します.

export PATH=$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH
export MANPATH=$HOME/.linuxbrew/share/man:$MANPATH
export INFOPATH=$HOME/.linuxbrew/share/info:$INFOPATH
export HOMEBREW_TEMP=$HOME/tmp

また,~/.linuxbrew/Library/Homebrew/brew.shの91行目を次のように編集し,/usr/bin/curlの代わりにLinuxbrewで入れたcurlが利用できるようにしておきます.

- HOMEBREW_CURL="/usr/bin/curl"
+ HOMEBREW_CURL="curl"

以上でLinuxbrewの使用準備が整いました. brew doctorを実行し,warningしか出なければ成功です.

$ brew doctor

古いコマンドを更新する

クラスタ環境のcurlgitが古いので,早速brewで新しいものをいれてみましょう.

$ brew install curl
$ brew install git

好きな言語のコンパイラを入れる

これでもうD言語だろうが,コンパイラさえbrewで提供されていればクラスタ上で動かすことができます.

$ brew install dmd dub

D言語LDCを入れる場合,2016年12月現在ではllvm3.9.0のビルドに失敗するので,.linuxbrew/Library/Taps/homebrew/homebrew-core/Formula/llvm.rbここのファイルに置き換える必要があります. その後,ldcを次のようにしてインストールできます.

$ brew install ldc --devel

こうした方がいいよって情報

があれば教えてください.

明日は

明日はコンピュータクラブのfoldoriくんです. TUTイス(物理)ということで,どんな記事なのか期待大です.