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

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

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

3

4

背景
z HPCシステムの複雑化への対応
z

並列性の増大z

コア数とノード数z

メモリ階層数の増大

z

電力制約

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

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

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

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

周辺ソフトの複雑化

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

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

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

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

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

z

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

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

z しかしながら，⾔語環境，実⾏環境は Linux を継承したいz

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

5

6

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

1.


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

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

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

2.


ノイズレス



性能クリティカルなシステムコールのみMcKernelで動作、他はLinuxにオフロード

OSノイズ要因のLWKからの隔離システムデーモン

Proxy process

Linux
カーネルデーモン
CPUシステムコール

HPC アプリケーション

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

IHK（ライブラリ）

CPU

CPU

McKernel

…

メモリ

割り込み

パーティション

パーティション

システム
コール
CPU

7

McKernelの評価 (1)z ノイズの計測（FWQ）
7.E+04%
6.E+04%

7.E+04%

Linux (+cgroup)

6.E+04%

4.E+04%

4.E+04%

3.E+04%

3.E+04%

2.E+04%

2.E+04%

1.E+04%

1.E+04%0.E+00%0.E+00%

1%
40%
79%
118%
157%
196%
235%
274%
313%
352%
391%
430%
469%

5.E+04%

1%
40%
79%
118%
157%
196%
235%
274%
313%
352%
391%
430%
469%

5.E+04%

McKernelz MapReduce on Linux
7.E+04%

Linux (+cgroup)
6.E+04%

7.E+04%

Linux (+cgroup+isolcpus)
6.E+04%

7.E+04%
6.E+04%

4.E+04%

4.E+04%

4.E+04%

3.E+04%

3.E+04%

3.E+04%

2.E+04%

2.E+04%

2.E+04%

1.E+04%

1.E+04%

1.E+04%0.E+00%0.E+00%0.E+00%

1%
40%
79%
118%
157%
196%
235%
274%
313%
352%
391%
430%
469%

5.E+04%

1%
40%
79%
118%
157%
196%
235%
274%
313%
352%
391%
430%
469%

5.E+04%

1%
40%
79%
118%
157%
196%
235%
274%
313%
352%
391%
430%
469%

5.E+04%

McKernel

8

McKernelの評価 (2)z Linux 側にMapReduce を⾛らせ，McKernel 側で HPCプログラムを実⾏した時の HPC プログラムの実⾏時間
Linux#+#cgroup#

Linux#+#cgroup#+#isolcpus#

McKernel#

90#
85#
80#
75#
70#
65#
60#
55#
50#
45#
40#

4#

8#

16#

(b) HPC-CG

32#

64#

IPDPS16での発表論⽂から

9

HPC向けOS⽐較 – 合わせ技が主流

Argo (nodeOS), led by Argonne National Laboratory

mOS @ Intel Corporation

Leviathan Node Manager
Opera ng
SystemVendor Linux(e.g., Cray Linux)

Ki en Co‐Kernel

XEMEM

ADIOS

Analysis Tool
TCASM

XEMEM

ADIOS

TCASM

Simula on B

TCASM

ADIOSHobbes
Run meSimula on A
XEMEM

Applica on

Full Linux VM
Palacios VMM
Ki en Co‐Kernel

PiscesCompute Node Hardware

Hobbes, led by Sandia National Laboratories

FFMK, led by TU Dresden

Property/Project

Unmodified Linux
KernelDevice Driver
Transparency in LWK

Kernel Level
Workload Isolation

Full POSIX Support
on LWK

Development Effort

Argo

No

Yes

No

Yes

Ideally small

mOS

No

Yes

Yes/No?

Yes

Ideally small

Hobbes (a.k.a.,
Pisces+Kitten)
FFMK (L4+Linux)

Yes

No

Yes

No

Significant

No

No

Yes

NoSignificant

IHK/McKernel

Yes

Yes

Yes

YesSignificant

McKernel - まとめz Xeon Phi 上でも動作
zKnights Landing (KNL)

最新メニーコアCPUz Linux+McKernelzLinuxコアでMapReduce，McKernelコアで並列アプリという動作でも，Linux だけよりも性能独⽴性が⾼いzLinuxよりはるかに単純なので，変更，機能追加が容易
z

McKernel (+IHK)：約 8 万⾏

zLinux：2100万⾏！！（http://news.mynavi.jp/news/2016/04/11/130/）z より⾼いLinuxコンパチビリティz

Procfs および numa 機能の実装など

z 実戦配備z

Oakforest-PACS（東⼤・筑波⼤）で採⽤

z

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

10

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

3)
4)
5)
6)
7)
8)
9)
10)
11)
12)
13)
14)
15)

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, USATakagi 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 for High 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, 2015
Balazs Gerofi, Masamichi Takagi, Yutaka Ishikawa, Rolf Riesen, Evan Powers and Robert W. Wisniewski: "Exploring the Design Space of Combining Linux withLightweight Kernels for Extreme Scale Computing", In Proc. ROSS, 2015
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，2015
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
Taku Shimosawa, Balazs Gerofi, Masamichi Takagi, Gou Nakamura, Tomoki Shirasawa, Yuji Saeki, Masaaki Shimizu, Atsushi Hori and Yutaka Ishikawa "Interface for
Heterogeneous Kernels: A Framework to Enable Hybrid OS Designs targeting High Performance Computing on Manycore Architectures", In Proc. HiPC, 2014
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, 2013佐伯 裕治，清水 正明，白沢 智輝，中村 豪，高木 将通，Balazs Gerofi，思 敏，石川 裕，堀 敦史，「ヘテロジニアス計算機上のOS機能委譲機構」，情報処理学会，
2013-OS-125(15) ，pp. 1-7，2013
Min Si and Yutaka Ishikawa, “Design of Communication Facility on Heterogeneous Cluster,” 情報処理学会，2012-HPC-133，2012
Min Si, “An MPI Library Implementing Direct Communication for Many-Core Based Accelerators,” SC’12, poster, 2012
Yuki Matsuo, Taku Shimosawa and Yutaka Ishikawa, “A File I/O System for Many-Core Based Clusters,” in conjunction with ICS2012, 2012
Min Si and Yutaka Ishikawa, “Design of Direct Communication Facility for Manycore-based Accelerators,” CASS2012 in conjunction with IPDPS2012, 2012
下沢，石川，堀，並木，辻田，「メニーコア向けシステムソフトウェア開発のための実行環境の設計と実装」，情報処理学会，2011-OS-118(1), 1-7, 2011
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, 2009
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 a Process(PIP)- PVAS のユーザレベル実装 -13

背景並列実行モデル

データ利点

欠点

プロセス

アクセス
出来ない

排他制御少

低速な通信

スレッド全て共有

高速な通信

排他制御多アイデアz プロセス間でデータを互いに直接アクセスできるようにしよう！
z 既存研究zzzSmartmap (⽶SNL)z

Kitten OSz

X86 アーキテクチャに依存

Xpmem (SGI ?)z

Linux カーネルモジュールz

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

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

14

Partitioned Virtual Address Space

15

直接アクセスすることの利点
z 共有メモリ経由z

コピー２回
Proc-A

Proc-B

Shared Memoryz カーネル経由
z

コピー１回

z

システムコールが必要
KernelProc-A

Proc-Bz PVASz

コピー１回z

システムコール不要

16

17

ユーザレベルでの実装
z 新しいOS開発（Smartmap)やLinuxへのパッチ(PVAS)を避ける
zz

普及が難しい保守が⼤変

Smartmap &PVAS

PIP

TEXT

z ユーザレベルでの実装
zzLinux の clone() システムコールと glibc の dlmopen() 関数で実現できることが判明した
Processes In a Process (PIP)

BSS&DATA
HEAP

PVAS
Task 0STACK
TEXT
BSS&DATA

PVAS
Task 1

TEXT

PIP 1

BSS&DATA

PIP 1

STACK

PIP 0

STACK

ROOT

HEAP
STACK

PIP 1

STACK

TEXT

PIP 0

TEXT

BSS&DATA

PIP 0

TEXT

ROOT

BSS&DATA

ROOT

HEAP

BSS&DATA
HEAP

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

z 今後z

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

z

MPICH、Open MPI の PIP による実装

z 共同研究z

ANL、テネシー⼤学、仏CEA など

18

19

MPI規格書の翻訳

One more thing…
z MPI企画書の⽇本語訳
z

MPI 2.2 ⽇本語訳初版（652ページ）
zz

http://www.pccluster.org/ja/mpi.html

MPI 3.1(?) の翻訳は近々開始する予定

ダウンロード実績（2016年３⽉まで）

20