沖縄科学技術大学院大学 HPC 環境へのエンドユーザ向けグラフィカルインタフェース
川井 敦 1) , タユフェール エディ 1)
1) 沖縄科学技術大学院大学学園 研究支援ディビジョン
科学計算及びデータ解析セクション

atsushi.kawai@oist.jp

Graphical Enduser Interface to OIST HPC Environment
Atsushi Kawai1) , Eddy Taillefer1)
1) Scientific Computing and Data Analysis section,
Research Support Division,
Okinawa Institute of Science and Technology Graduate University

概要
沖縄科学技術大学院大学 (OIST, 以降「本学」と記す) は理論性能約 2Pflops の演算クラスタを中核とする HPCシステムを運用している。われわれはこのシステムのエンドユーザに対してグラフィカルなユーザインタフェースを提供する Web アプリケーション、HighSci (ハイサイ) の開発・運用を行っている。
本学の HPC システムは研究者だけでなく院生や研究室のサポートスタッフなどにも幅広く利用されている。すべてのユーザが必ずしも Linux やその上でのコマンドライン操作に慣れ親しんでいるとは限らず、直感的でグラフィカルなインタフェースによる操作と、資源の利用状況の可視化が従来より望まれていた。

HighSci の開発は 2017 年 3 月、運用は同年 11 月にはじまった。以来ユーザからのフィードバックをとりいれながら機能拡張を続け現在に至っている。2020 年 8 月現在、演算クラスタ上にジョブを投入しているユーザのうち約 20% が HighSci を常時利用している。
これまでに実装された HighSci の機能には、例えば以下のものがある: 全演算ノードの利用状況のヒートマッ
プ表示機能; ユーザ自身および所属研究ユニットのストレージ占有量とその内訳、およびその月次変化の表示機能;
ジョブキューの状況やユーザ自身の投入したジョブの状態の表示機能; 各研究室に割り当てられたストレージへのア
クセス権限を、研究室の責任者 (教授等) が自身で管理するための機能;ンが研究ユニットを技術面で支援する (図 1)。

1 背景

原則的には研究ユニットが独自に計算機資源を所有

1.1 OIST の研究体制と HPC 資源の利用者
沖縄科学技術大学院大学 (以降 OIST と表記する)の研究主体は 74 個*1することはなく、すべての研究ユニットは全学に共通の HPC 環境を使用する。この HPC 環境は研究支の研究ユニットである (「研究援セクションのひとつである「科学計算及びデータ解ユニット」は一般的な大学の「研究室」に相当する) 。

析セクション」により提供される。著者らはこのセク各研究ユニットの研究分野は物理学、化学、神経科学、ションのメンバーである。

海洋科学、環境・生態学、数学・計算科学、分子・細1.2

OIST HPC 環境とその特異性胞・発生生物学など多岐に渡る。研究ユニットは学部HPC 環境の中核をなすのは 2020 年 7 月に導入や学科などの階層構造には組み込まれておらず、互いされた比較的新しい演算クラスタで、約 2 Pflops のにフラットな関係にある。

理論性能を持つ。このクラスタの他に GPU クラス

大学院生は各学年につき 40 人程度で、彼ら彼女ら

タ、容量 12 PByte の長期保存用ストレージなどが、は第 2 年次までの基礎過程を経ていずれかの研究ユ

InfiniBand ネットワークで相互接続されている (図ニットに配属される。また約 10 の研究支援セクショ

2)。
OIST における HPC 資源の利用形態には、典型的*1 2020 年 8 月現在

な研究機関のそれとは大きく異なる特徴がある。すな必ずしも計算機や Linux に慣れ親しんでいるわけで研究ユニットユニット
量子システムユニットシステムユニット
流体力学ユニットユニット
計算脳科学ユニットユニット
海洋生態物理学ユニットユニット
神経計算ユニット・・・

研究ユニット支援セクションセクション
実験動物セクション
シーケンシングセクション
イメージングセクション
・・・

HPC システムユーザ

HPC システム管理者

大学ユニット院大学ユニット

科学ユニット計算およびデータ解析セクションデータ解析セクション解析セクションセクション

博士課程学ユニット生 (1, 2 年次 )はない。HPC 環境へのアクセスや状態把握を誰もが容易に行えるような、何らかの直感的・視覚的なツールを、われわれ管理者サイドからユーザに提供することが望ましい。

HPC 環境のモニタリングツールやポータルは数多く知られている [1] [2] [3] [5] [9] [12] が、しかしこれリサーチ・インタ解析セクションーンシップ学生学ユニット生らは管理者専用でエンドユーザの利用を想定していな
図 1 OIST 研究体制。研究ユニットが主体となっかったり、あるいはジョブ管理など特定の機能のみにて行う研究を、研究支援セクションがサポートする。

特化していてそれ以外の情報は得られないものであっ研究支援セクションのひとつ「科学計算及びデータたりと、個々の機能は優れていても、本学のエンド解析セクション」が HPC 資源を提供する。すべてユーザが必要とする機能を総括的には満たしてはいなの研究ユニットと研究支援セクションがこの資源を利用できる。

い。本学の多彩な要求に迅速かつ柔軟に対応するためには、われわれ自身でアプリケーションソフトウェア

Deigo ( 主クラスタク性能ラスタ )S)aion (GPU ク性能ラスタ )演算ノードノード- ピーク性能性能 : 約 2PflopsPflops- 総コア数コア数数 : 66584
うち 88% AMD Epyc 7702Pflops
12Pflops% Intel Xeon 62Pflops30

演算ノードノード- x32Pflops NVIDIA V100 on Intel nodes- x32Pflops NVIDIA P100 on Intel nodes- x8 NVIDIA V100 on IBM Power9- x16 Intel KNL ほか  作業用ストレージストレージ (500TB, Lustre)

作業用ストレージストレージ (2Pflops50TB, Lustre)

InfiniBand ネットワーク性能
共有ストレージストレージを開発するのが最適と考えられる。
以上の動機により、われわれはグラフィカルインタフェースをもつ HPC のエンドユーザ向け Web アプリケーションを開発し、これを HighSci (ハイサイ) を名づけた。以下ではこの Web アプリケーションについて詳細を説明する。

長期保存領域  (12PflopsPB, GPFS))
home ディレク性能トリ

2 HighSci の全体像
2.1

システム構成図 2 OIST の HPC 環境。主となる演算クラスタ

HighSci は Web アプリケーションであるので、クDeigo (デイゴ) は AMD および Intel の CPU からなるクラスタ。2020 年 7 月に運用を開始した。

ライアントプログラムは Web ブラウザ上で動作する。
クライアントプログラムはユーザへグラフィカルなインタフェースを提供し (図:3)、またサーバ機上の Web

わち、学生や研究ユニットのメンバーであれば、原則サーバを介して各種のプログラムや外部サービスにア的に誰でも利用できる。利用申請にあたって利用目的クセスする (図:4)。の妥当性などは審査されない。また CPU コア数やメ

2.2

モリサイズに課せられた上限値を超えない範囲内で、資源を無制限に利用できる。利用量に応じた課金はない。
ユーザは大きな自由を与えられている半面、つねに他のユーザに配慮して資源を利用することが求められユーザに提供する機能

HighSci がユーザに提供する機能は多岐に渡るが、おおむね以下の 3 種に大別される(a) 現在の状態を把握し反応・表示する機能(b) 過去の状態の履歴を解析・表示する機能(c) 現在の状態を変更する機能る。他者への配慮を欠く不適切な利用は、たとえそれが意図せぬ誤操作によるものであっても可能な限り回避されねばならない。

1.3 HPC 向けグラフィカルインタフェース HighSci
上記の理由により、各ユーザが本学 HPC 資源全体の利用状況を正しく把握することが、OIST では他の研究機関にも増して重要である。しかしすべてのユーザが利用状況の把握を Linux のコマンドライン操作によって的確に行えると期待するのは現実的でない。
研究ユニットの研究対象はさまざまで、研究者たちは(a) に分類される機能には例えば以下のものがある:(a1) 演算クラスタの各ノードの現在の CPU コア利用率の表示 (図:5)(a2) 自身の所属する研究ユニットが使用しているストレージサイズ、およびそのメンバーごとの内訳の表示 (図:3 A2)(a3) 自身が投入したジョブの属性 (実行中/待機中、CPU コア数、メモリサイズ等) 表示 (図:3 A3)

図 3 HighSci のダッシュボード (初期画面)。画面内の小さなウィンドウ (以降「パネル」と呼ぶ) それぞれが別個の機能を提供する。ユーザの好みに応じてパネルの順序を入れ替えたり、パネルをアイコン化できる。パネルでは表現の難しい複雑な機能はダッシュボードとは独立したページで扱う (例えば図 5 のヒートマップ)。

(b) に分類される機能には:(b1) 演算クラスタの CPU コア利用率履歴の表示 (図:3B1)(b2) 自身がこれまでに投入したジョブの、週ごとの統計情報 (ジョブ数、CPU time、メモリサイズ) の表示 (図:3 B2)(c1) 自身の研究ユニットのストレージへのアクセス権を、任意のユーザに与える/から剥奪する (図:3C1、図:6)(c2) 全ユーザ向けのアナウンス用メッセージを作成、公開する (図:3 C2)がある。

(b3) 全ユーザが投入したジョブの、ひと月ごとの利用

ただし上記のすべての機能をすべてのユーザが利用

効率 (コア、メモリ、占有時間) 分布の表示 (図:3

できるわけではない。Web クライアント利用時には

B3)

個人認証が行われ (ログイン操作)、利用できる機能が等がある。(c) に分類される機能には:各人のもつ権限に応じて認可される。例えばストレー
ジの使用量を確認できるのは、自分自身かあるいは自用している。

• グラフィクス描画 – D3.js [4]HighSci
Web クライアント
Slurm コマンド

Slurm コントローラ

ファイルサーバ (AD)GPFS, Lustre, ほか )HighSci
Web サーバ

ユーザ認証認証モジュール

IdP (AD)Azure AD))

環境センサ センサ (AD) 温度、電力ほかほか )ディレクトリサービス  (AD)AD))
グループ管理サービス 管理サービス サービス  (AD)Grouper)• Single Sign On の実装 – mod auth mellon [8]• ActiveDirectory 連携 – Grouper [7]• ソース・パッケージ管理 – webpack[13], git, npm
演算クラスタはジョブスケジューラとして Slurm[10] を採用しており、クラスタの状況把握は Slurm のコマンド群をバックエンドの python3 スクリプトが呼び出すことによって行っている。

図 4 HighSci システム構成。ユーザは Web ブラ

ストレージの使用量は現在のところファイルサーバ

ウザを介してサーバ機上のバックエンドプログラムのもつメタ情報から抽出している。大規模ストレージを利用する。バックエンドプログラムは Slurm コマ向けの管理ツール Starfish [11] が最近導入された。こンド、IdP、ファイルサーバ、各種環境センサ、アカのツールとの連携によって使用量のより詳細な把握とウント管理関連サービスにアクセスし、得られた結果を Web サーバ経由でユーザに返す。

管理を行えるよう、準備を進めている。

2.4

稼働状況

HighSci の開発は 2017 年 3 月に始まった。運用は身の所属する研究ユニットの所有するフォルダのみに同年 11 月にはじまった。以来ユーザからのフィード限られる。また現在投入されているジョブのうち、そバックをとりいれながら機能拡張を続け現在に至っての所有者名を確認できるのは、自分自身かあるいは自いる。

身の所属する研究ユニットのメンバーのものに限ら

2020 年 8 月現在、本学 HPC システムには 488 のれる。研究ユニットのストレージへの各ユーザのアクユーザがアカウントを持っている。このうち約 350 のセス権を変更できるのは、そのユニットの責任者 (多ユーザが、過去 1 年間に少なくとも 1 回 HighSci をくの場合は教授) のみに限られる。全ユーザ向けメッ利用した。また演算ノードは典型的には常時 50∼100セージの発信を行えるのは、HighSci 管理者のみに限ユーザ程度に利用されているが、このうち約 20% のられる。このような粒度の細かい利用権限の制御は、ユーザが HighSci を恒常的に利用している。

セキュリティや利便性に配慮して HighSci 管理者が設定する。エンドユーザはこれを意識せずに HighSci を利用できる。

2.3

設計と内部の構成

HighSci の開発にあたっては HPC システムのモニタリングに特化したフレームワークやライブラリ等を

3 HighSci の機能例 — ストレージ管理
HighSci は多くの機能をもち、また現在もその機能は拡張され続けているが、ここでは一例として、主要な機能のひとつであるストレージ管理機能について紹介する。

アプリケーションの根幹部分に採用することは避け、ストレージ管理に関する機能には、使用量を把握すプリミティブな要素の積み上げによってシステムを構るための機能と、アクセス権限を設定するための機築する方針をとっている。具体的にはフロントエンド能がある。前者の機能を実装するにあたっては、物理は palin な JavaScript と HTML5、バックエンドは的実体の異なる複数のストレージ間の差異をどのよpython3 で記述されている (現状では JavaScript コーうに吸収するかが課題となる。後者については、個々

ドの一部に jQuery に依存する部分があるが、plain なのユーザに別個のアクセス権を付与し、それをユーザJavaScript への置き換えをすすめている)。既成のフアカウントデータベースにどうやって反映させるか

レームワークは確かに開発コストを下げるかも知れなが課題となる。以下ではこれら二つの課題について、いが、その代償として本学の環境や要求に合わせた柔HighSci における解決方法を述べる。

軟な機能の実装や変更が難しくなる。

3.1

ストレージ間の差異の隠蔽

ただしユーザ認証やグラフィクス描画など、システ

本学 HPC システムのストレージは用途ごとに異なム内において他の機能からの独立性の高い機能についるハードウェアで実現されており、ファイルシステムては、既存のライブラリや外部サービスを積極的に利もさまざま (GPFS, Lustre, Isilon OneFS) である。

図5

演算クラスタのヒートマップ。マス目ひとつが演算ノードひとつを表す。マス目の色がノード上のCPU コアおよびメモリの利用状況を表わす。マウスポインタをかざすとより詳細な情報がポップアップされる (図中の黒いウィンドウ)。

主要なストレージには以下の 3 種がある。

• データの長期保存用 (HDD, GPFS)• ジョブ実行中の一時データ保存用 (SSD, Lustre)• ホームディレクトリ用 (HDD, Isilon OneFS)に割り当てられたディレクトリが存在する。これらのディレクトリには本学独自の権限割り当てが行われている。
研究ユニットのディレクトリは、そのユニットに対応するグループ (unix group) が所有者として設定さ設定・取得できるメタ情報 (使用サイズ、ファイルれており、このグループに所属するユーザだけがアク数、クオータの設定等) やそのフォーマットはストレーセス権を持つ。研究ユニットの正規メンバー (雇用契ジごとに異なる。HighSci はそれらの差異を吸収し、約に基づくメンバー) は、あらかじめこのグループにいずれのストレージのメタ情報も同一の形式でユーザ所属している。加えて、このグループには他のユニッに提供する。ユーザはハードウェアの差異を意識するトに所属する任意のユーザをも追加することができことなくメタ情報を得られる。

る。この機能は複数の研究ユニットによる共同研究

3.2

アクセス管理の際に、ユニット間でデータを共有することを念頭にストレージ内の各ディレクトリは、それぞれにアクおいて実装されている。ただしグループへのユーザ追セス権が設定されている。ホームディレクトリやシス加を行えるのは、初期設定ではそのグループの管理者

テムディレクトリへのアクセス権は典型的な Linux(通常は教授) のみである。またたとえグループの管理の慣習に従って設定されている。これらのディレク者であっても正規メンバーからアクセス権を剥奪する

トリの他に、ストレージ内には各研究ユニットに専用権限は与えられていない。さらにまた、グループの管図6

研究ユニットの管理者 (通常は教授) は自身の研究ユニット用フォルダへのアクセス権を、自身の裁量で任意のユーザに与えることができる (HPC システムの管理者はアクセス権の変更操作に関与しない)。さらに管理権限自体を他のユーザに与えることもできる。ただし雇用契約上の正規ユニットメンバーに対する操作は行えない。このような複雑な権限管理はミドルゥエア Grouper を利用して実装されている。

理者は自身の管理権限を他のメンバーに委譲することができる。
以上のような複雑で粒度の細かい権限設定を行うた
めに、HighSci は Grouper [7] というミドルウェアを利用している。研究ユニットの正規メンバーの情報はActive Direcotry 上に記録されている。この記録は本学の雇用契約に基づくものであるので、ユーザによる書き換えは許可されていない。いっぽう Grouper は、Active Directory 上に、これとは異なる領域をもっており、この領域はユーザによる書き換えが許可されている。非正規メンバーの情報はこの領域に記録されている。とはいえユーザは記録を無制限に書き換えられるわけではなく、Grouper を介してのみ書き換えが許可されている。ユーザからの書き換え要求に不整合がある場合には Grouper がこれを拒否することで、データの整合性が保証されている。

4 まとめと今後

products-services/trust-identity/grouper/[8] mod auth mellon

まとめ4.1

われわれは OIST の HPC 利用者向けに、グラフィ

https://github.com/latchset/mod auth mellon/[9] OPEN OnDemand https://openondemand.org/

カルな Web インタフェース HighSci を開発・運用し[10] Slurm https://www.schedmd.com/index.phpている。HighSci を用いれば、Linux のコマンドライ[11] Starfish https://starfishstorage.com/

ン操作に不慣れなユーザであっても、演算資源やスト[12] Todd Evans et al.,”Comprehensive Resource

レージ資源の利用量を直感的・視覚的に把握できる。

Use Monitoring for HPC Systems with TACC

さまざまな研究分野のユーザに利用されている OISTStats”, proceedings of “2014 First Internationalの HPC 環境においては、このような直感的インタWorkshop on HPC User Support Too”, pp13-

フェースが特に有用である。

21, 2014.

今後の課題

4.2

[13] Webpack https://webpack.js.org/

HighSci は一定の成功をおさめているが、ごく少数の学内スタッフ (実質 0.5 名未満) によって開発・運用されており、安定性や持続性の面で課題が残る。

HighSci の普及によって、本学 HPC 環境に必要とされるユーザ向け機能やその性能が具体的に洗い出されつつある。この意味で現在の HighSci を HPC 環境
モニタリングツール の Proof of Concept とみなすことができる。将来的には既存の HighSci のもつ機能を要求仕様として定義し、開発や運用を外部に委託すれば、システムのより高い安定性や継続性を得られるだろう。

謝辞
HighSci の開発・運用にあたっては、本学研究支援
ディビジョン 科学計算及びデータ解析セクションのメンバー Jan Moren、Pavel Puchenkov、田仲 康司から、設計方針の選定、動作環境の構築、不具合の報告、改善点の提案など、多方面に渡り多くの貢献があった。
ここに感謝の意を表す。

参考文献[1] Altair Access https://www.altairjp.co.jp/access/[2] Atos Extreme Factory https://atos.net/
en/solutions/high-performance-computing-hpc/bull-extreme-factory[3] Bright Cluster Managr https://www.
brightcomputing.com/brightclustermanager[4] D3.js https://d3js.org/[5] Fujitsu HPC CLuster Suite
https://sp.ts.fujitsu.com/dmsp/Publications/public/ds-hpc-cluster-suite-en.pdf[6] Grafana https://grafana.com/[7] Grouper https://www.internet2.edu/