• 検索結果がありません。

発表資料 150818 hayashi

N/A
N/A
Protected

Academic year: 2018

シェア "発表資料 150818 hayashi"

Copied!
22
0
0

読み込み中.... (全文を見る)

全文

(1)

NEC のFortranへの取組み

並列化を中心として

2015 年8月18日

NEC 林 康晴

(2)
(3)

内容

Fortran 利点

Fortran ン イ SX シ ー

最新 型 ー ー ン ュータSX-ACE

SX Fortran ン イ

自動 化・自動共有並列化

SX 半自動分散並列化

次世代 ー ー ン ュータ Fortran

(4)

Fortran 利点

膨大 資産 相 ,科学技術計算分野 ,今後

く ,主要 言語 一

( 多次元)配列 記述 やすい

各次元 上下限値 合わ 自由 宣言

科学技術計算向 組込 関数 豊富 用意

ー 向け 最適化 関数を手軽 利用可能

総称名 ,引数 型 応 呼び分け 不要

ン イ 最適化 やすい場合 多い

•多次元配列記述 ほう , ン イ 最適化 容易

規格上 け く,慣例上,aliasを無視出来 場合 多い

その他, 意識すれば C 回避可能な場合が多いが…

C 例:

unsigned int i; long k;

for(i=0; i < n ; i++){

k = i*2;

a[k] = sin(b[i]) + cos(b[i]);

Fortran ,sin・cosを同時 計

算 自動最適化を行う ,C ,

規格上 引数 ーチ ッ 必要

i*2 ー ー ー 可能性 あ

, ー 制御変数 認識

,自動ベ 化 い

(5)

Fortran ン イ SX シ ー

SX シ ー 高性能を 誰 簡単

自動化 + 必要 応 ー 指示 (指示行,翻訳時 ン)

SX ー 最適化 C/C++ 及び MPI 提供

HPF/SX V2

(HPF2.0+HPF/JA+F95)

半自動分散並列化

FORTRAN90/SX

SMP

(SX-3~)

自動共有並列化

ベ 命令

(SX-1/2~)

HPF/SX

(HPF1.0+F77)

FORTRAN77/SX

SMP

(SX-4~)

1985 1990 1994

Fortran 2003

自動ベ 化

(6)

高い実効性能 低消費電力・省 ー を両立

低消費電力

世界 ップ スの省エネス コン

省スペ ス

お客様フロアコス の削減

ビッ コアによる高い実効性能

世界 ップ スの CPU コア性能 64GFLOPS

世界 ップ スの ン 幅 64256GB/s

従来機比

同演算性能で

1

10

従来機比

同演算性能で

1

5

SX-DNA

の継承

最新 型 ー ー ン ュータSX-ACE

(7)

SX-ACE 用意す Fortran ン イ

自動 化・自動共有並列化

GUI イ ・ ッガ

SX-ACE 最適化 科学技術計算 イ を多数用意

ASL ( 数値計算),ASLSTAT (統計計算),MathKeisan (線型代数,FFT,固有値)

FORTRAN90/SX

Fortran 95 規格

NEC Fortran 2003

Fortran 2003 規格

Fortran 2003 規格 一部

例外 及び IEEE算術,

C 相互利用可能性,

一部 組込 手続等,

指向関連を除く機能

Fortran 2008 規格 一部

BLOCK 構文,型束縛手続,

一部 組込 手続等

(8)

GUI イ Ftrace Viewer

ネッ を効率的 抽出可能

例) 実行時間(棒 ) 化率(折 線 ) 表示

 手続calc2 実行時間 長く,ベ 化率 低い事 わ

(9)

Fortran ン イ 最適化

各種最適化を多段階 適用後, 化・共有並列化

例) 配列式 化・共有並列化

a(1:n,1:m) = b(1:n,1:m)*c(1:n,1:m) s = sum(b(1:n,1:m)*c(1:n,1:m))

配列式 ー 化

組込 関数 イン イン展開

do j=1,m do i=1,n

a(i,j) = b(i,j)*c(i,j) s = s + b(i,j)*c(i,j) enddo

enddo

共通式削除

do j=1,m do i=1,n

a(i,j) = b(i,j)*c(i,j) s = s + a(i,j) enddo

enddo

共有並列化 ー 変形( ー 交換,アン ー

ン , ー 一重化等) や 行列

積 ー イ へ 置換

共通式削除,演算順序変更,不

変式 ー 外追出 等 最適

化 ,各 ー 繰返 実施

do j=1,m do i=1,n

a(i,j) = b(i,j)*c(i,j) enddo

enddo do j=1,m do i=1,n

s = s + b(i,j)*c(i,j) enddo

enddo

ー 融合

(10)

Fortran ン イ 自動

効率的 演算 最適化を継続的 強化

例) 配列 隣接要素を引用 回数を削減

... 254 255 256 3

2

1 ...

b(i-1)

do i = 2, nx-1

a(i) = p * b(i-1) + q * b(i) + p * b(i+1) enddo

-pvctl neighbors オ ション指定時

b(1:256) b(2:257) b(3:258)

b(i) b(i+1)

ベ タ

配列b

• 256要素 3

長256 ベ 演算

... 254 255 256 3

2

1 ...

b(i-1)

b(1:256) b(2:256) b(3:256)

b(i) b(i+1)

配列b

• 256 要素 1

長254 ベ 演算

VMOVE命令 VMOVE命令

a(2:257) (256 要素 ) を計算 a(2:255) (254 要素 ) を計算

既定値

(11)

© Nどで でorporatろon 2ごさす

Fortran ン イ 自動共有並列化

実用的 自動共有並列化を,黎明期(SX-3; 1990年発売)

) SX 最適化 条件並列化

SX-5 (1998 年発売) 以降 ,OpenMP 手動並列化 ー

do i = 1,nx aa = a bb = b do j = 1,ny aa = aa + x(i+1) * g(j-1) bb = bb + x(i-1) * g(j-1) enddo

y(ic+i) = -aa y(id+i) = -bb enddo

if((nx*ny > n) .and. (id-ic==0 .or. abs(id-ic)>=nx))then call para$sub() ! 並列 ー

else

do i = 1,nx ! 非並列 ー aa = a

bb = b do j = 1,ny aa = aa + x(i+1) * g(j-1) bb = bb + x(i-1) * g(j-1) enddo

y(ic+i) = -aa y(id+i) = -bb enddo

endif

閾値n ,SX上 性能向上 す 場合 並列化

並列化可能 を判定

(12)

SX 半自動分散並列化

High Performance Fortran (HPF)

産学協同 ー ン 拡張仕様HPF/JA ー

全自動

自動

× 手動

半自動

×

×

×

HPF

+ 指示文

手動

×

× ×

MPI

ータ ッ ン

並列化・処理分担

通信

Coarray

(Fortran 2008)

言語拡張

XMP

+ 指示文

(13)

HPF 利点

ー 改変 容易 Fortran( 物理 逐次処理) ・ア 変更 可能

並列化方法 変更 容易 1 次元分割→2次元分割 並列化 分離

ッ 比較的容易 Fortran( 逐次処理) ベ 可能

ー 並列化 容易 煩雑 通信・同期を記述 く 良い

必要 応 ,指示行・代入文 記述可能

(14)

HPF/SX V2 特徴

自動分散並列化機能

集計計算(SUM, MAXLOC等)を含 ー 自動並列化・通信生成

袖領域 自動割付け,通信情報再利用 高速化

HPF2.0 仕様 加え、 拡張仕様を

主要 HPF公認拡張仕様、HPF/JA拡張仕様

部分的 袖通信,不規則問題(有限要素法等)向け独自拡張仕様等

HPF 向け ッ 、チューニン 機能

分散並列化情報 、 ッ ー

HPF 向け ッ 用 ン

上級者向け機能

部分的 MPI を利用 チ ーニン 可能

SX3 階層 並列性を利用可能( イ ッ 並列化)

化,共有並列化( ー 内),分散並列化( ー 間/ ー 内)

(15)

HPF 利用成果 2002年 ー ン 賞 言語賞 受賞

“さじ.9TなばOPS Tれrらら-dimensional Fluid Simulation for Fusion Science

with HPF on tれら どartれ Sろmu」ator”, Hろtosれろ Sakagami, et al.

ソース規模 1334 対し、 HPF 指示文 45 (3.4%) を挿入し、並列化

 14.9TFLOPS ( 実効効率 45%) 、自動並列化言語 驚異的 評価

ー ン・ベ 賞

・IEEE ン ータ部会 運営

・並列 ン ータを実用的 科学技術計算 応用 、

性能を含 最 優 成果を出 者を毎年表彰

核融合3次元

流体 ー ン

坂上仁志先生ほ

HPF/ES

初代地球 ータ

14.9 TFLOPS

大規模並列計算

HPF 有効 あ を実証

(16)

HPF 普及 い い主 理由

初期 ン イ 未成熟 → 成熟

HPF1.0 機能不足 → HPF2.0 + HPF/JA仕様 強化

互換性 欠如

 ー ン イ ,HPFPC配布 fhpf

HPF 使用 い場合,逐次 実行可能

向 ・不向

 ータ構造 不規則 適用 い

向い う 分 くい

チューニン

う く並列化 い う 分 い

 うチ ーニン い 分 くい

(17)

分散並列化情報 提供

ソー 、分散並列化状況・通信発生状況を確認可能

デ機能: “だS>”等 ー をgrepす こ ,問題箇所を ッ ッ 可能

デ教育: 利用者講習会 ,チューニン 方法を解説

( 1 ) subroutine sub(a,inew,iold) ( 2 ) real a(100,100,2)

( 3 ) !HPF$ DISTRIBUTE a(*,BLOCK,*) ( 4 ) <S>--- do j=1,100

COMM: SFT [a] [LINO: 5 in sample.F] ( 5 ) <N>--- do i=1,100

( 6 ) | a(i,j,inew)=a(i,j-1,iold)+a(i,j,iold) ( 7 ) +--- enddo

( 8 ) enddo ( 9 ) end

並列化可能 並列化 ー (<N>)

並列化 い 判定 ー (<S>)

並列化可能 場合、INDEPENDENT指示文を指定

並列化 可能性あ

通信発生箇所(COMM:)

ータ ッ ン を変え 、並列化 可能性あ

多く 場合 性能低下 主因

ON指示文等 指定 通信を

削減 可能性あ

(18)

SX-ACE 主 強化項目(1) ータ分散指定オ ション

例)

2

3 1

DISTRIBUTE (*,BLOCK,BLOCK)

ータ分散を指定 翻訳時オ ション

3次元配列の2次元目 3次元目をBLOCK分散する場合

%> sxhpf -Mautodist=rank3:011 sample.hpf

既定値 ,全配列を最後 次元 BLOCK分散 ( 分散指定 い配列 )

=rank? を指定 場合,?次元配列を最後 次元 BLOCK分散

=rank?:n を指定 場合,2進整数n 1 対応 次元をBLOCK分散

書式 -Mautodist[=rank?[:n]]

い い ータ分散を気軽 試

規則的 ータ構造 ー , ン 並列化 場合

(19)

SX-ACE 主 強化項目(2) HPFソー 生成オ ション

HPF ソー を自動生成す 翻訳時オ ション

例)

real, dimension(100,100) :: a,b,c

!hpf$ distribute (*,*) :: a ! 非分散 do j=1,100

do k=1,100 do i=1,100

c(i,j) = c(i,j) + a(i,k)*b(k,j) enddo

enddo enddo

real, dimension(100,100) :: a,b,c

!hpf$ distribute a(*,*) ! 非分散

!hpf$ distribute b(*,block)

!hpf$ distribute c(*,block) do j=1,100

do k=1,100 do i=1,100

c(i,j) = c(i,j) + a(i,k)*b(k,j) enddo

enddo enddo

sample.hpf

sample.hpf.src

%> sxhpf -Mautodist -Mhpfout sample.hpf

配列 最後 次元を分割す HPF指示文を挿入 ソー を生成

-Mhpfout

書式

出力さ たソースをベース ,チューニングを行うこ

データ分散 指定し忘 ミス防止 も有効

-Mautodist ン 指定 ータ分散入 ソー を出力

(20)

小規模~大規模 対応

構成

省電力・省

SX シ ー 高性能 使い勝手を継承・発展

性能・高 ータ 性能(高 ン 幅)

オー ン技術 融合

次世代 ー ー ン ュータ( ー 名: Aurora) 開発 着手

領域 ン

ー 領域

領域を拡大

(21)

次世代 Fortran ン イ

P e rf o rm a n c e

1990 2000 2010

SX-1/2

SX-3

SX-4

SX-5

SX-6

SX-8/8R

SX-9

チ ッ

チ ー

ECO チ ア

SX-7

分散並列化

ES

自動ベ 化

自動共有並列化

科学技術計算 主力言語 ,

SX 使い易 を継承 ,

標準 規格を ー ン

イ をAurora ー 予定

FORTRAN77/SX FORTRAN90/SX Fortran 2003

compiler

HPF/SX HPF/SX V2

FORTRAN90/ES HPF/ES

ADB

Aurora

(22)

参照

関連したドキュメント

であろう.これは,1992 年に「Five-step “mi- croskills” model of clinical teaching」として発表 さ れ た 2) が,そ の 後「One-Minute Preceptor

が有意味どころか真ですらあるとすれば,この命題が言及している当の事物も

Sabbah, Equations diff´ ´ erentielles ` a points singuliers irr´ eguliers et ph´ enom` ene de Stokes en dimension 2, Ast´erisque, 263, Soci´et´e Math´ematique de France,

前項では脳梗塞の治療適応について学びましたが,本項では脳梗塞の初診時投薬治療に

が多いところがございますが、これが昭和45年から49年のお生まれの方の第二

静岡大学 静岡キャンパス 静岡大学 浜松キャンパス 静岡県立大学 静岡県立大学短期大学部 東海大学 清水キャンパス

ⅱろ過池流入水濁度:10 度以下(緩速ろ過の粒子除去率 99~99.9%を考 慮すると、ろ過水濁度の目標値を満たすためには流入水濁度は 10

先ほどの事前の御意見のところでもいろいろな施策の要求、施策が必要で、それに対して財