次世代メニーコア型スパコンのためのシステムソフトウェア

堀敦史

システムソフトウェア技術部会 部会長（理研 AICS）
清水 正明
システムソフトウェア技術部会 副部会長（日立）
2017/12/15

2• McKernel• 最新情報• Processes In a Process (PIP)• 新しい並列実⾏環境の紹介

3

背景

4

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

並列性の増大l

コア数とノード数l

メモリ階層数の増大l

電力制約

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

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

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

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

周辺ソフトの複雑化

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

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

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

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

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

デバイスドライバの作成にはH/Wの詳細な情報が不可欠

l Linux カーネルを改造するのは非常に大変l

プロダクトとしては不可能に近い

l しかしながら，言語環境，実行環境は Linux を継承したいl環境も作るのは大変lLinux API/ABI との互換性をどのように実現するか？

5

6

McKernel のアーキテクチャ
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システムコール

HPC アプリケーション

Delegator
module
IHK（カーネルモジュール）

…

CPU

IHK
McKernel（ライブラリ）
CPU

…

メモリ

割り込み パーティション

パーティション

システム
コール
CPU

7

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

10000
9000

Linux

IHK/McKernel

4096

8192
16k
Number of cores

MFlop/sec/node

8000
7000
6000
5000
4000
3000
2000
1000
01024
OFP上で計測

2048

32k

64k

128k

8miniFE (CORAL benchmark suite)l Conjugate gradient - strong scalingl Up to 3.5X improvement (Linux falls over.. )12000000

Linux3.5X

IHK/McKernel

Total CG MFlops

100000008000000
6000000
4000000
2000000
01024
OFP上で計測

2048

4096
8192
16k
Number of cores

32k

64k

Single node: McKernel outperforms Linux across the board→ multi-node Lammps suffers from network offloading..
125%

Relative performance

120%
115%
110%
105%
100%
95%
90%

LinuxMcKernel

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

9McKernel - まとめl Xeon Phi 上でも動作
lKnights Landing (KNL)

最新メニーコアCPUl Linux+McKernell

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

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

McKernel (+IHK)：約 8 万行

lLinux：2100万行！！（http://news.mynavi.jp/news/2016/04/11/130/）l より高いLinuxコンパチビリティlProcfs および numa 機能の実装など

l 実戦配備lOakforest-PACS（東大・筑波大）で採用

l

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

10

McKernel に関連する論⽂リスト
1)

Balazs Gerofi, Masamichi Takagi, Gou Nakamura, Tomoki Shirasawa, Atsushi Hori and Yutaka Ishikawa "On the Scalability, Performance
Isolation and Device Driver Transparency of the IHK/McKernel Hybrid Lightweight Kernel", IEEE International Parallel & Distributed
Processing Symposium (IPDPS), 2016, Chicago, USA2)

Takagi Masamichi, Norio Yamaguchi, Balazs Gerofi, Atsushi Hori and Yutaka Ishikawa: "Adaptive Transport Service Selection for MPI with
InfiniBand Network", International Workshop on Exascale MPI (ExaMPI), held in conjunction with ACM/IEEE International Conference forHigh Performance Computing, Networking, Storage and Analysis (SC), 2015, Austin, TX, USA Balazs Gerofi, Takagi Masamichi and Yutaka
Ishikawa: "Toward Operating System Support for Scalable Multithreaded Message Passing", In Proc. EuroMPI, 20153)

Balazs Gerofi, Masamichi Takagi, Yutaka Ishikawa, Rolf Riesen, Evan Powers and Robert W. Wisniewski: "Exploring the Design Space ofCombining Linux with Lightweight Kernels for Extreme Scale Computing", In Proc. ROSS, 20154)

Masamichi Takagi, Balazs Gerofi, Norio Yamaguchi, Takahiro Ogura, Toyohisa Kameyama, Atsushi Hori and Yutaka Ishikawa: "Operating
System Design for Next Generation Many-core based Supercomputers", IPSJ SIG Technical Reports，2015-ARC-215(1)，pp. 1­8，20155)

Balazs Gerofi, Akio Shimada, Atsushi Hori, Takagi Masamichi and Yutaka Ishikawa: "CMCP: A Novel Page Replacement Policy for System
Level Hierarchical Memory Management on Many-cores", In Proc. HPDC, 2014

6)

Taku Shimosawa, Balazs Gerofi, Masamichi Takagi, Gou Nakamura, Tomoki Shirasawa, Yuji Saeki, Masaaki Shimizu, Atsushi Hori andYutaka Ishikawa "Interface for Heterogeneous Kernels: A Framework to Enable Hybrid OS Designs targeting High Performance Computing
on Manycore Architectures", In Proc. HiPC, 2014

7)

Balazs Gerofi, Akio Shimada, Atsushi Hori and Yutaka Ishikawa: "Partially Separated Page Tables for Efficient Operating System Assisted
Hierarchical Memory Management on Heterogeneous Architectures", In Proc. CCGRID, 20138)佐伯 裕治，清水 正明，白沢 智輝，中村 豪，高木 将通，Balazs Gerofi，思 敏，石川 裕，堀 敦史，「ヘテロジニアス計算機上のOS機能委譲機構」，情報処理学会，2013-OS-125(15) ，pp. 1-7，20139)

Min Si and Yutaka Ishikawa, “Design of Communication Facility on Heterogeneous Cluster,” 情報処理学会，2012-HPC-133，201210) Min Si, “An MPI Library Implementing Direct Communication for Many-Core Based Accelerators,” SCʼ12, poster, 201211) Yuki Matsuo, Taku Shimosawa and Yutaka Ishikawa, “A File I/O System for Many-Core Based Clusters,” in conjunction with ICS2012, 201212) Min Si and Yutaka Ishikawa, “Design of Direct Communication Facility for Manycore-based Accelerators,” CASS2012 in conjunction withIPDPS2012, 201213) 下沢，石川，堀，並木，辻田，「メニーコア向けシステムソフトウェア開発のための実行環境の設計と実装」，情報処理学会，2011-OS-118(1), 1-7,201114) Taku Shimosawa and Yutaka Ishikawa, “Inter-kernel Communication between Multiple Kernels on Multicore Machines,” IPSJ Transactions
on Advanced Comuting Systems Vol.2, No.4 (ACS 28), pp. 64-82, 200915) Taku Shimosawa, Hiroya Matsuba and Yutaka Ishikawa, “Logical Partitioning without Architectural Supports,” 32nd IEEE Intl. Computer
Software and Applications Conference (COMPSAC 2008), pp. 335-364, 2008

1112

Processes in Process(PIP)13

背景l メニーコアの台頭l

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

l

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

Address Space
Isolated
Variables

Multi-Process
Privatized(MPI)
Shared??

Shared
3rd Exec.
Model
Multi-Thread(OpenMP)アイデア
l プロセス間でデータを互いに直接アクセスできるようにしよう！
l 既存研究lllSmartmap (米SNL)l

Kitten OSl

X86 アーキテクチャに依存

Xpmem (SGI ?)lLinux カーネルモジュールl

直接アクセスするためにシステムコールが必要

PVAS (理研)llLinux カーネルに約 5,000 行のパッチ

MPC (CEA＠仏)l

独自のコンパイラが必要

14

15

PiP is very PORTABLE
Partitioned Virtual Address Space
CPUOS

x86_64

Linuxx86_64

McKernelthe K and FX10SPARC64

XTCOS

ARM (Opteron A1170)

Aarch64Linux

PiP:thread

Vfork&Exec

PosixSpawn

Pthread0000# Tasks -- Xeon

# Tasks -- Aarch64

10020011101100200
10.1

100.1

121002002

100.2# Tasks -- KNL

Task Spawning TimeArm HPC Workshop@Akihabara 2017

100200Fork&Exec10

PiP:preload
0.2

1Time [S]

Xeon and Xeon Phi# Tasks -- KXMPICHでの評価

SNAPでの評価

17

PIP – まとめl 従来の２つのノード内並列実行方式、プロセス並列とスレッド並列のいいとこ取り
l これまでに提案された方式と異なり、ユーザレベルで実装される
l PIP により、以下の利点が期待されるlより高速なノード内通信lより低メモリ消費な並列実行環境

l 今後l

論文発表の後、オープンソースとして公開

l

MPICH、Open MPI の PIP による実装

l 共同研究l

ANL、テネシー大学、UIUC、仏CEA など

18