openmp1_Yaguchi_version_170530

Similar documents
ÊÂÎó·×»»¤È¤Ï/OpenMP¤Î½éÊâ¡Ê£±¡Ë

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£±¡Ë

演習1: 演習準備

OpenMP¤òÍѤ¤¤¿ÊÂÎó·×»»¡Ê£²¡Ë

演習準備

I I / 47

PowerPoint プレゼンテーション

コードのチューニング

Microsoft PowerPoint _MPI-01.pptx

演習準備 2014 年 3 月 5 日神戸大学大学院システム情報学研究科森下浩二 1 RIKEN AICS HPC Spring School /3/5

OpenMPプログラミング

OpenMP (1) 1, 12 1 UNIX (FUJITSU GP7000F model 900), 13 1 (COMPAQ GS320) FUJITSU VPP5000/64 1 (a) (b) 1: ( 1(a))

スライド 1

Microsoft PowerPoint - 演習2:MPI初歩.pptx

スパコンに通じる並列プログラミングの基礎

Microsoft Word - openmp-txt.doc

スパコンに通じる並列プログラミングの基礎

(Microsoft PowerPoint \215u\213`4\201i\221\272\210\344\201j.pptx)

AICS 村井均 RIKEN AICS HPC Summer School /6/2013 1

スパコンに通じる並列プログラミングの基礎

I

NUMAの構成

コードのチューニング

Microsoft PowerPoint - OpenMP入門.pptx

±é½¬£²¡§£Í£Ð£É½éÊâ

内容に関するご質問は まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤セ

01_OpenMP_osx.indd

supercomputer2010.ppt

VXPRO R1400® ご提案資料

Slides: TimeGraph: GPU Scheduling for Real-Time Multi-Tasking Environments

Microsoft PowerPoint - 阪大CMSI pptx

新スーパーコンピュータ 「ITOシステム」利用講習会

<4D F736F F F696E74202D D F95C097F D834F E F93FC96E5284D F96E291E85F8DE391E52E >

develop

スライド 1

enshu5_4.key

情報処理概論(第二日目)

Microsoft PowerPoint - 講習 _kido.pptx[読み取り専用]

02_C-C++_osx.indd

GROMACS実習

スライド 1

Microsoft PowerPoint - 演習1:並列化と評価.pptx

Oakforest-PACS 利用の手引き 2 ノートパソコンの設定 : 公開鍵の生成 登録

Microsoft PowerPoint 知る集い(京都)最終.ppt

FX10利用準備

Microsoft PowerPoint _MPI-03.pptx

スライド 1

資料3 今後のHPC技術に関する研究開発の方向性について(日立製作所提供資料)

サイバーメディアセンター 大規模計算機システムの利用

サイバーメディアセンター 大規模計算機システムの利用

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc

05 I I / 56

untitled

Platypus-QM β ( )

27.\..

PowerPoint プレゼンテーション

Microsoft PowerPoint - 阪大CMSI pptx

修士論文

(Microsoft PowerPoint \211\211\217K3_4\201i\216R\226{_\211\272\215\342\201j.ppt [\214\335\212\267\203\202\201[\203h])

Microsoft Word - 計算科学演習第1回3.doc

XcalableMP入門

並列プログラミング入門(OpenMP編)

PowerPoint プレゼンテーション

untitled

040312研究会HPC2500.ppt

2 A I / 58

Microsoft PowerPoint - sales2.ppt

地球シミュレータ開発の現状 平成 14 年 2 月 22 日 横川三津夫 地球シミュレータ研究開発センター 1

次世代スーパーコンピュータのシステム構成案について

2 I I / 61

最新の並列計算事情とCAE

Microsoft Word - koubo-H26.doc

平成17年度 マスターセンター補助事業

統計数理研究所とスーパーコンピュータ

Microsoft PowerPoint - 阪大CMSI pptx

ohpr.dvi

Microsoft PowerPoint - stream.ppt [互換モード]

Microsoft PowerPoint _5_8_f95a_usui.pptx

Microsoft PowerPoint ppt

TSUBAME2.0 における GPU の 活用方法 東京工業大学学術国際情報センター丸山直也第 10 回 GPU コンピューティング講習会 2011 年 9 月 28 日

H28 年度 SX-ACE 高速化技法の基礎 ( 演習用資料 ) 2016 年 6 月 16 日大阪大学サイバーメディアセンター日本電気株式会社

Microsoft PowerPoint _4_26_f95a_usui.pptx

Microsoft PowerPoint - scls_biogrid_lecture_v2.pptx

nakao

2012年度HPCサマーセミナー_多田野.pptx

I I / 68

スライド 1

Microsoft Word - HOKUSAI_system_overview_ja.docx


0.45m1.00m 1.00m 1.00m 0.33m 0.33m 0.33m 0.45m 1.00m 2

生物情報実験法 (オンライン, 4/20)

九州大学学術情報リポジトリ Kyushu University Institutional Repository 将来 (2010 年前後を想定 ) のペタフロップス超級スパコンセンターとの連携について 村上, 和彰九州大学大学院システム情報科学研究院 九州大学情報基盤センター

4.7講義.key

IPSJ SIG Technical Report Vol.2014-HPC-144 No /5/26 ES2 1,a) 1,b) 1,c) (ES2) The system architecture and operation results of the Earth Simulato

CPU Levels in the memory hierarchy Level 1 Level 2... Increasing distance from the CPU in access time Level n Size of the memory at each level 1: 2.2

内容 イントロダクション スカラチューニング OpenMPによる並列化 最近のHPC分野の動向 まとめ

インテル(R) Visual Fortran Composer XE 2013 Windows版 入門ガイド

目次 LS-DYNA 利用の手引き 1 1. はじめに 利用できるバージョン 概要 1 2. TSUBAME での利用方法 使用可能な LS-DYNA の実行 4 (1) TSUBAMEにログイン 4 (2) バージョンの切り替え 4 (3) インタラ

Transcription:

並列計算とは /OpenMP の初歩 (1)

今 の内容

なぜ並列計算が必要か?

スーパーコンピュータの性能動向 1ExaFLOPS 次世代スハ コン 京 1PFLOPS 性能 1TFLOPS 1GFLOPS スカラー機ベクトル機ベクトル並列機並列機 X-MP ncube2 CRAY-1 S-810 SR8000 VPP500 CM-5 ASCI-5 ASCI-4 S3800 T3E-900 SR2201 天河 1 号 Jaguar Roadrunner 地球シミュレータ 1MFLOPS IBM360/95 CDC6600 スカラー / ベクトル機 並列機 (104times faster / 20 years) 1960 1970 1980 1990 2000 2010 年

TOP500 によるスーパーコンピュータ性能 較

2016 年 11 のリスト ( 上位 8 システム )

TOP500 で るアーキテクチャの変遷 100 50 0 1995 2000 2005 2010

頑張って勉強しましょう!

並列計算機のアーキテクチャ

SIMD と MIMD

共有メモリ型と分散メモリ型

共有メモリ型と分散メモリ型 ( 続き ) PU0 PU1 PU1 メモリメモリメモリ インターコネクト ネットワーク

ホモジニアス型とヘテロジニアス型

計算科学演習 I で使う並列計算機

π コンピュータ SPARC64 IXfx SPARC64 V9 + HPC-ACE コア数 16 コア 動作周波 数 1.65GHz キャッシュ L1-I L1-D 32KB/コア L2 12MB/ソケット メモリバンド幅 85GB/s 40nm CMOS, 21.9 mm 臼井英之 21.9 mm 並列計算とは/OpenMP の初歩 1

共有メモリ型並列計算機における並列 式

OpenMP

OpenMP の実 モデル :Fork Join モデル

OpenMP の構成要素

演習 1( 準備 ):Hello World を並列化してみよう! % mkdir enshu openmp1 % cd enshu openmp1 program hello world imp lic it none prin t, Hello World! end program % frtpx hello. f90 注意 : 計算ノードで計算を うのでコンパイル 実 法が変わります

型計算機上でのプログラム実 : キューイングシステム

演習 1( 続き ): ジョブスクリプトの作成 #!/bin/bash #PJM -N jobname #PJM -L rscgrp=small #PJM -L node=1 #PJM -L elapse=2:00 #PJM -j export OMP_NUM_THREADS=1. / a. out シェルを指定ジョブ名を指定投 先のキュー名を指定使 ノード数を指定 スレッド数を指定実 プログラム名を指定

演習 1( 続き ): ジョブの投 演習 pjsub ( ジョブスクリプト名 ) pjstat JOB ID JOB NAME MD ST USER START DATE ELAPSE LIM NODE REQUIRE 17583 jobname NM RUN user (05/19 16:23) 0000:02:00 1 17584 jobname NM QUE user (05/19 16:33) 0000:02:00 1 pjdel ( ジョブ番号 ) % pjsub hello.sh [INFO] PJM 0000 pjsub Job 17583 submitted. cat

演習 1( これで最後 ):OpenMP を いた Hello World の並列化 program hello world imp lic it none integer :: omp_get_thread_num!$ompparallel p r i n t, My id is, omp_get_thread_num(), Hello World!!$omp end parallel end program % frtpx Kopenmp hello. f90 % pjsub hello.sh

プログラムの解説 program hello im plic it none!$ompparallel 並列リージョン end program

OpenMP 並列化プログラムの基本構成例 program main imp lic it none ( 逐次実 部分 )!$ompparallel ( 並列化したい部分 )!$omp end parallel ( 逐次実 部分 ) end program

マルチスレッドでの実 のイメージといくつかの 語

計算の並列化 (Work-Sharing 構造 ) a (1 :n) = a (1:n ) + 1

DO ループの分割 (!$omp do) programmain implicit none integer, parameter :: SP = kind(1.0) integer, parameter :: DP = selected_real_kind(2*precision(1.0_sp)) real(dp), dimension(100000) :: a, b integer :: i!$omp parallel!$omp do 直後の DO ループを複数のスレッド do i=1,100000 で分割して実 せよ, という意味 b(i) = a(i) (!$omp end do は省略可 ) end do!$omp end do!$omp end parallel 2 スレッドで実 した場合 スレッド 0 do i=1,50000 b(i) = a(i) end do スレッド 1 do i=50001,100000 b(i) = a(i) end do ( 分割の仕 はコンパイラ依存 ) end program

演習 2:omp do を使ってみよう!

演習 2 のプログラム program axpy i mp l ic i t none integer, parameter : : SP = kind (1. 0 ) integer, parameter : : DP = selected_ real_kind (2 precision ( 1. 0_SP )) r e a l (DP), dimension ( 100000 ) : : x, y, z re al (DP): : a integer : : i!! a,x,y の値を各 で 由に設定.!!$omp parallel!$omp do do i = 1, 100000 z ( i ) = a x ( i ) + y ( i ) ベクトルの加算 z = a x + y end do!$omp end do!$omp end parallel!! 経過時間の確認! p rin t, z ( 1 ) end program

時間計測 ジョブスクリプトの例

演習 3:!$omp parallel do!$ompparallel!$omp parallel do!$ompdo do i=1,100000 do i=1,100000 b(i) = a(i) b(i) = a(i) end do end do!$omp end parallel do!$omp end do!$omp end parallel!$omp end parallel do

注意 omp do は並列実 できない場合も 動的に分割してしまう! program i n v l i mp l ic i t none integer, parameter : : n = 100 integer, dimension ( n ) : : a integer : : i a ( 1 ) = 0!$omp parallel do do i =2,n a ( i ) = a ( i 1) + 1 end do! $omp end paralleldo p rin t, a (n ) end program 正しい結果 :99 2 スレッドで実 スレッド 0 do i=1,50 a(i) = a(i-1) + 1 end do スレッド 1 do i=51,100 a(i) = a(i-1) + 1 end do 本当は a(50) の結果がないと実 できない!

do ループの並列化のまとめ do i =2,100 x ( i ) = a x ( i 1) + b end do

omp workshare!$ompdo do i=1,100000 z(i) = a x(i) + y(i) end do!$omp end do!$omp end parallel!$omp workshare z(:) = a x(:) + y(:)!$omp end workshare (!$omp end workshare は省略不可 ) C = matmul(a, B)!$omp end workshare

mail s 自分のアカウント名 kobeuniv.compra1@gmail.com < result.txt

mail s 自分のアカウント名 kobeuniv.compra1@gmail.com < result.txt