システムソフトウェア技術部会活動報告

堀敦史

システムソフトウェア技術部会 部会長（理研）
清水 正明
システムソフトウェア技術部会 副部会長（日立）
2019/2/22

2• IHK/McKernel• 最新情報• Process in Process (PiP)• 新しい並列実行環境の紹介

3

Linuxカーネルの問題点● Linux はころころ変わる●

頻繁かつ大胆に変わる●●Linux カーネルを改変し，かつ，catch-up するのは非常に大変多様なハードウェア●

次々に現れるデバイスハードウェア●

デバイスドライバの作成にはH/Wの詳細な情報が不可欠● Linux カーネルを改造するのは非常に大変●

プロダクトとしては不可能に近い● しかしながら，言語環境，実行環境は Linux を継承したい●

環境も作るのは大変●Linux API/ABI との互換性をどのように実現するか？

4軽量カーネルの問題点● 軽量カーネル●

必要最小限の機能のみを提供● 利点●

小さいので，改変（カスタマイズ）が容易● 欠点●

独自カーネルなため，ソフトウェアエコシステムがない（独自ABI）●

汎用デバイスドライバ●

ソフトウェアツール●

その他オープンソースソフトウェア

56

7

背景
●

HPCシステムの複雑化への対応●

並列性の増大●●

コア数とノード数●

メモリ階層数の増大●

電力制約

少数のコアをOS専用としても，そのオーバヘッドは無視できる（1/32コアで3パーセント）スケーラブルで安定した性能の提供と新ハードウェアへの迅速な対応がカギ

アプリケーションの複雑化●

新しいプログラミングモデルの導入●●

例：In-situデータアナリティクス、ワークフロー

周辺ソフトの複雑化

これらの要件を同時に満たせるか？

Linux API で開発されることが多いため、Linux との ABI 互換性が重要
既存の膨大なツールチェインがそのまま使えることが重要

89McKernel のアーキテクチャ
Interface for Heterogeneous Kernels (IHK): 複数の異種OSを持つためのフレームワーク

1.
▪

ノード資源のパーティショニング▪

LWKの管理（例：カーネルの起動、停止)▪

LWKとLinuxの間の通信機構（Inter-kernel communication, IKC)の提供
McKernel: スクラッチから開発されたHPC向けLWK

OSノイズ要因のLWKからの隔離

2.
▪

ノイズレス

▪

性能クリティカルなシステムコールのみMcKernelで動作、他はLinuxにオフロード
システムデー
Proxy process
モンLinux
カーネルデーモン
CPUシステムコール…

Delegator
moduleIHK（カーネルモジュール）CPU

HPC アプリケーション

IHK
McKernel システムコー（ライブラリ）
ル
CPU

…

メモリ

割り込み パーティション

パーティションCPU

10

CCS-QCD (Hiroshima University)●Lattice quantum chromodynamics code – weak scaling● Up to 38% improvement

Linux

MFlop/sec/node

9000

IHK/McKernel

6750

4500

2250

01024
OFP上で計測

2048

4096

8192

16k

Number of cores

32k

64k

128k

11miniFE (CORAL benchmark suite)●Conjugate gradient - strong scaling● Up to 3.5X improvement (Linux falls over.. )Total CG MFlops

12000000

Linux3.5X

IHK/McKernel

9000000

6000000

3000000

01024
OFP上で計測

2048

4096

8192

16k

Number of cores

32k

64k

Single node: McKernel outperforms Linux across the board → multi-node Lammps

12suffers from network offloading..

Rela=ve performance

120%

109%

LinuxMcKernel

98%

86%

75%
AMG2013

HACC

Lulesh2.0

miniFEQBOX OFP上で計測• lammps, HACC, QBOX ~4% better, as opposed to being slower than Linux on 8 nodes• OmniPath offload overhead??

IHK/McKernel - まとめ●

Xeon Phi 上でも動作
●

●

●

●

LinuxコアでMapReduce，IHK/McKernelコアで並列アプリという動作でも，Linux だけよりも性能独立性が高い●

Linuxよりはるかに単純なので，変更，機能追加が容易●

IHK/McKernel：約 8 万行●

Linux：2100万行！！（http://news.mynavi.jp/news/2016/04/11/130/）

より高いLinuxコンパチビリティ
Procfs および numa 機能の実装など

実用性
●

●

最新メニーコアCPULinux+IHK/McKernel●●

Knights Landing (KNL)

Linux を reboot せずに IHK/McKernel を boot できる

実戦配備●

Oakforest-PACS（東大・筑波大）で採用●

ポスト京コンピュータでも採用される予定

13

14

Process in Process(PIP)背景● メニーコアの台頭●

これまでのノード内並列モデルのままで良いのか？

●マルチプロセス（MPI）、マルチスレッド（OpenMP）

15

16

壁と線
遮蔽のための壁

区切りの線17

cores out of 16, and the Linux kernel ran on the remaining 2 cores.
Since the current McKernel is unable to handle the clone() �ag
PiP は可搬性が高い
combination described in Section 3.3, the PiP programs ran in thethread execution mode.
● 完全にユーザレベルのライブラリ
We report the results of each experiment by averaging 10 execu● これまでの実装は、特殊なOSカーネルや専用のコンパイラが必
tions, unless otherwise stated.
要Table 2: Experimental platform hardware informationNameCPU# Cores Clock Memory
NetworkWallaby Xeon E5-2650 v2 8⇥2(⇥2) 2.6GHz 64 GiB ConnectX-3
OFP†Xeon Phi 7250 68(⇥4) 1.4GHz 96(+16) GiB Omni-Path
K [44] SPARC64 VIIIfx
82.0GHz 16 GiBTofu

Table 3: Experimental platform software informationNameOSGlibc
PiP Exec. Mode(s)Wallaby Linux (CentOS 7.3) w/ patch process and thread
Wallaby McKernel+CentOS 7.3 w/ patchthread only
OFP†
Linux (CentOS 7.2) w/ patch process and thread
KXTCOS
w/o patch process and thread† Oakforest-PACS (OFP) http://jcahpc.jp/eng/ofp_intro.html. The �at mode was18 othnfaa

SNAPでの評価

19

HPDC’18 で最優秀論文賞

20

PiP – まとめ● 従来の２つのノード内並列実行方式、プロセス並列とスレッド並列のいいとこ取り● これまでに提案された方式と異なり、ユーザレベルで実装される● PiP により、以下の利点が期待される●

より高速なノード内通信●

より低メモリ消費な並列実行環境

21

Githubhttps://github.com/RIKEN-SysSoft

22