Microsoft PowerPoint ppt [互換モード]

Similar documents
Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード]

Microsoft PowerPoint ppt [互換モード]

本文ALL.indd

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

Microsoft Word - openmp-txt.doc

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

cmpsys15w07_os.ppt

NUMAの構成

はじめに Web アプリケーションの発展と普及の勢いは弱まる兆しがありません 弱まるどころか 加速し続けています これは これまでの ERP CRM Web 2.0 などの Web ベースアプリケーションが提供してきたメリットを考えると 不思議なことではありません Web アプリケーションの爆発的拡

POSIXプログラミング Pthreads編

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

Microsoft PowerPoint - 03_What is OpenMP 4.0 other_Jan18

PowerPoint プレゼンテーション

スライド 1

Microsoft PowerPoint ppt [互換モード]

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

出 アーキテクチャ 誰が 出 装置を制御するのか 1

TopSE並行システム はじめに

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

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Pervasive PSQL v11 のベンチマーク パフォーマンスの結果

VXPRO R1400® ご提案資料

PowerPoint プレゼンテーション

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

Microsoft PowerPoint - OpenMP入門.pptx

Insert your Title here

スライド 1

Microsoft PowerPoint - ICD2011TakadaSlides.pptx

特集新世代マイクロプロセッサアーキテクチャ ( 後編 ) 3. 実例 3 ユビキタス コンピューティング時代の組み込みマイクロコンピュータ, SuperH と M32R 清水徹 * 1 長谷川淳 * 2 服部俊洋 * 3 近藤弘郁 * 4 ( 株 ) ルネサステクノロジシステムソリューション統括本部

科学技術振興調整費 中間成果報告書 若手任期付研究員支援 組込みアーキテクチャ協調型実時間 OS 研究期間 : 平成 13 年度 ~ 平成 15 年 6 月 北陸先端科学技術大学院大学田中清史

ルネサス半導体セミナースケジュール

N08

CSPの紹介

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No02\201i\224z\225z\227p\201j.pptx)

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

スライド 1

PowerPoint プレゼンテーション

SafeG 高信頼組込みシステム向けデュアル OS モニタ Daniel Sangorrín, 本田晋也, 高田広章 名古屋大学 2010 年 12 月 3 日 この研究の一部は文部科学省のサポート受けて実施しています Daniel Sangorrín ( 名古屋大学 ) ET 横浜 2

この方法では, 複数のアドレスが同じインデックスに対応づけられる可能性があるため, キャッシュラインのコピーと書き戻しが交互に起きる性のミスが発生する可能性がある. これを回避するために考案されたのが, 連想メモリアクセスができる形キャッシュである. この方式は, キャッシュに余裕がある限り主記憶の

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

PowerPoint プレゼンテーション

White Paper 高速部分画像検索キット(FPGA アクセラレーション)

新技術説明会 様式例

計算機アーキテクチャ

openmp1_Yaguchi_version_170530

2015_collabo_04

< B8CDD8AB B83685D>

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

POSIXスレッド

Microsoft PowerPoint - 11Web.pptx

並列・高速化を実現するための 高速化サービスの概要と事例紹介

ハード・ソフト協調検証サービス

Microsoft Word - TestReport_PRIMEPOWER250_ doc

PNopenseminar_2011_開発stack

Microsoft PowerPoint - ICD-ARCパネル

TRQerS - Introduction

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

複数の Nios II を構成する際の注意事項

富士通セミコンダクターのプラットフォームSoCとJavaへの取り組み概要

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

Microsoft PowerPoint - ARC2009HashiguchiSlides.pptx

Monthly Research / セキュアハードウェアの登場とその分析

ic3_cf_p1-70_1018.indd

研究報告用MS-Wordテンプレートファイル

01-introduction.ppt

ムーアの法則に関するレポート

目次 1. はじめに SSL 通信を使用する上での課題 SSL アクセラレーターによる解決 SSL アクセラレーターの導入例 SSL アクセラレーターの効果... 6 富士通の SSL アクセラレーター装置のラインナップ... 8

Microsoft PowerPoint - No6note.ppt

スライド 1

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

Microsoft PowerPoint - ARCICD07FukumotoSlides.pptx

Microsoft Word - r0703.doc

Microsoft Word - SSTC_Intel_Core.doc

演習1: 演習準備

Microsoft PowerPoint - sp ppt [互換モード]

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

Windows Server 2008 R2とPRIMERGYによる消費電力削減効果

富士通セミコンダクター株式会社発表資料

PowerPoint Presentation

この手の問題を診断する際に Simics は完璧なツールなのですが 実行するためには 問題が発生するプログラムを Simics に取り込まなければなりません すなわち Simics 上で Simics を実行するのです まず Simics 内部に開発ホストの複製を作成します これは何も難しいことでは

車載マイコンの動向

CLEFIA_ISEC発表

PowerPoint プレゼンテーション

Microsoft PowerPoint - OS02.pptx

スライド 1

HPE Integrity NonStop NS2300 サーバー

TFTP serverの実装

Oracle Real Application Clusters 10g: 第4世代

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

Presentation Title

04-process_thread_2.ppt

【Cosminexus V9】クラウドサービスプラットフォーム Cosminexus

V8_教育テキスト.dot

Microsoft PowerPoint Quality-sama_Seminar.pptx

memcached 方式 (No Replication) 認証情報は ログインした tomcat と設定された各 memcached サーバーに認証情報を分割し振り分けて保管する memcached の方系がダウンした場合は ログインしたことのあるサーバーへのアクセスでは tomcat に認証情報

Microsoft PowerPoint - GPGPU実践基礎工学(web).pptx

スライド 1

Transcription:

計算機アーキテクチャ特論 2016 年 10 3 枝廣 前半 ( 並列アーキテクチャの基本 枝廣 ) 10/3, 10/17, 10/24, 10/31, 11/7, 11/14( 程は予定 ) 内容 ( 変更の可能性あり ) 序論 ( マルチコア= 並列アーキテクチャ概論 ) キャッシュ コヒーレンシ メモリ コンシステンシ 並列アーキテクチャモデル OSモデル スケーラビリティに関する法則 並列プログラミングモデル 語 資料置場 : http://www.pdsl.jp/class/ ( 次回から紙配布なし ) 後半 ( 先端トピックス 本 ) 11/21 内容 ( 変更の可能性あり ) 組込みアーキテクチャ 再構成可能アーキテクチャ Page 1

前半の進め 講義 + 理解度テスト ( およそ半分の時間 ) 理解度テストが終われば帰ってよい 理解度テストの配点 : 出席 =5, 問題 =5 ( 提出 =1, Q1=3, Q2=1) アンケート1 回 (10 点 ) 単位が欲しいのに 席が多い場合 要相談 ( 基本的に前半部に関しては試験もレポートもない ) インターンシップなどは配慮する ( 注 ) 後半の進め は異なる 第 回アンケート 第 回講義 ( 概要 ) 理解度テストはなし Page 2

次 マルチコア化の背景 マルチコア アーキテクチャとソフトウェアのモデル マルチコア向けソフトウェア開発 Page 3

あらゆる機器にマルチコア シングル : 性能向上に限界 半導体の微細化は継続 低電 または 性能 ( 従来は両 達成 ) あらゆる機器にマルチコア 厳しい電 制約 マルチ 低電 サーバー パソコン 性能組込機器 ( 携帯 載 情報家電 etc.) ソフトウェアに きな課題 : 並列性がなければ今後性能向上しない ( 従来は が新しくなれば勝 に性能向上した ) Page 4

背景 : 周波数向上だけには頼れない時代に ハイエンド MPU の回路は 9FO4 ( インバータ 9 段 ) に到達 最高速動作回路 (e.g. ALU) では 4FO4 も出現 Page 5

背景 : リーク電流の増大 リーク電流 酸化膜 トランジスタの微細化により 漏れ ( リーク ) が発生 動作していないトランジスタでも電流消費 高速トランジスタほどリーク電流大 ゲート リーク電流削減 シリコン基板 低電力 ( 低速 ) トランジスタを用いたプロセッサをマルチコア化し ゲートリーク高速動作時には全プロセッサを動作させ 待機時等にはサブスレッシュホールドリーク不要なプロセッサの電源を OFFすることが有効 6

マルチコアプロセッサの必要性 ( 性能電 ) ある単一機能を低電力化したい場合 汎用 よりもヘテロジニアス マルチコアが有利 MPEG4 CODEC 実行時の性能 / 電力 MPEG4 専用 HW 性能電力比においてヘテロジニアス マルチコアが有利! DSP 他アプリケーションへの適用可能性 Page 7

Pollack の法則 プロセッサの性能はその複雑性の平 根に 例する ( 経験則 ) Multi-core 8

処理時間の見通し : 難 Page 9 マルチコアプロセッサの必要性 ( リアルタイム性能 ) マルチコアにより リアルタイム性を向上させ 性能保証を容易に シングルプロセッサ方式 MPEG-4 CODEC 割込み処理 MPEG-4 CODEC 割込み等予測不能要因 キャッシュミス等予測不能要因 ( 性能保証のため大きな 性能マージンが必要 ) マルチプロセッサ方式 専用エンジン 起動処理 他からの割込み処理 終了処理 MPEG-4 CODEC 処理時間の見通しが悪いシステムは組込みで使いにくい! 時間処理時間の見通し : 易

マルチコアプロセッサの必要性 ( 性能 電 スケーラビリティ ) 同じソフトウェアプラットフォームで様々な製品対応 今後リーク電流が増大する時代に 電力制御容易 ハイエンド Page 10 TV ミドルレンジ ローエンド SMP 対応 OS x4 SMP 対応 OS x2 SMP 対応 OS x1 専用HW DSP DSP 消費電力 ( 正規化 ) 低負荷時 ( 電源遮断 ) 6 5 4 3 2 1 0 Better 高負荷時 1 2 3 シングルプロセッサ 3 s 1 2 sマルチコア 性能 ( 正規化 ) シングルプロセッサとの性能 電力スケーラビリティ比較

ここまでのまとめ マルチコアは広まっている 組込みシステムの性能向上に対し 電 や リアルタイム性能の から考えると DSP や専 ハードウェアの追加が有利であり LSI の微細化と共にヘテロジニアス マルチコアとして進化している ところが組込みシステムであっても 携帯電話関連等において様々なアプリケーションが実 されるようになり い 性能が要求される分野が出てきた このような要求に対して い動作周波数の で対応すると電 の で 合わなくなるため パソコンと同様 ホモジニアス マルチコアの時代に りつつある Page 11

次 マルチコア化の背景 マルチコア アーキテクチャとソフトウェアのモデル マルチコア向けソフトウェア開発 Page 12

マルチコアプロセッサの分類 ( ハードウェアの AMP vs. SMP) ヘテロジニアス vs. ホモジニアス ヘテロジニアス : 異種コアによるマルチプロセッサ ホモジニアス : 同種コアによるマルチプロセッサ ( システムの )AMP vs. SMP AMP (Asymmetric Multi-Processor 対称型 ) 各コアが別々のソフトを実 ( 機能分散 ) SMP (Symmetric Multi-Processor 対称型 ) OS が複数ソフトウェアを複数コアに負荷分散しながら実 (SMP はホモジニアス型のみ ) DSP HW ヘテロジニアス ホモジニアス ただし組込み向け SoC では様々な専 エンジンを搭載するため 全体はヘテロジニアス AMP になり その中の 部の やメディアエンジンがホモジニアス AMP/SMP になることが多い Page 13

SMP 型の定義 様々な定義がある ここでは以下のように考える SMP 型 = つの OS で管理され, すべての処理 ( タスク, プロセス, スレッドなど ) がすべての において対称的に実 可能であるようなマルチプロセッサによる並列処理 式 AMP 型 =SMP 型以外のもの 同じバイナリがすべての で動作する必要がある ( 少なくとも命令セットは ) 同じ である必要がある = ホモジニアス ホモジニアス AMP 型と SMP 型とはキャッシュ 貫性に対するハードウェアサポートに違いがある Page 14 SW1 SW2 SW3 SW4 SMP OS 1 2 3 4 ポイント 2: ポイント 1: 一つの OS 対称的に実行可能 = 別の に移すことが可能 (1 で動作させ中断していたものを 2 で再開することが可能 問題はキャッシュに一時保存しているデータの扱い )

三種類のシステムモデル (1) ヘテロジニアス AMP ヘテロジニアス AMP SMP ホモジニアス ホモジニアス AMP ホモジニアス SMP ただし 最近の組込みシステム向け SoC では様々な専用エンジンを搭載しつつ複数 を持つため 混在している場合が多い 15

三種類のシステムモデル (2) ヘテロジニアス AMP SW1 OS SW2 OS DSP SW3 HW1 SW4 HW2 ホモジニアス AMP SW1 SW2 SW3 SW4 OS OS OS OS ホモジニアス SMP SW1 SW2 SW3 SW4 SMP OS HW&SW 一体でサブシステム最適化 サブシステム内変更が他に影響しにくい リアルタイム性確保や テストで有利 ヘテロジニアスでは電力 性能 コスト面で最適な HW を選択 ホモジニアスでは HW を同一化 SW 環境を同じにしつつサブシステム分離性確保 SW-HW の割り当ては固定的 HW 能力に分割損が発生しがち OS が SW モジュール ( スレッド ) を動的に HW へマッピング SW モジュール変更が全体性能に影響 リアルタイム性確保やテストで不利 SW 機能のマッピング自由度が大 HW 能力の分割損は発生しにくい 16

ホモジニアス AMP とホモジニアス SMP の違い ハードウェア アーキテクチャの違い SMP 型システムでは 対称的実行を効率よく行うための キャッシュ一貫性 ( 次頁参照 ) のハードウェア支援機構を搭載したものが多い プログラムモデルの違い AMP 型は単体プロセッサ向けプログラム + 同期 通信 SMP 型はスレッドプログラミング 機能的な違い リアルタイム性能 スケーラビリティ 17

キャッシュの一貫性とは? 複数 が個々にキャッシュを持っている場合 キャッシュ間でのデータ整合性が問題となる この問題をキャッシュの一貫性と呼ぶ キャッシュ一貫性を保証するハードウェア支援機構があるものをコヒーレント キャッシュ ソフトウェアでの対応が必要なものをノンコヒーレントキャッシュと呼ぶ SW1 SW2 SW1 SW2 SW1 SW2 1 2 1 2 1 2 3? 3 キャッシュ 3 4 キャッシュ 3 4 キャッシュ 3 1.SW1 があるメモリ番地から値 3 を読む メモリバス 3 2.SW1 が値を 4 に書き換える メモリバス 3.SW2 が同じメモリ番地からデータを読んだとき キャッシュに正しいデータがないので正しく動作しない 3 18

AMP 型と SMP 型の違い ( ハードウェア ) シングルプロセッサ AMP 型 : ノンコヒーレント キャッシュSMP 型 : コヒーレント キャッシュ ( ハードウェアサポートなし ) (Snoop( 盗み見 ) 機構 ) SW1 SW2 SW1 SW2 SW1 SW2 1 1 2 3? 1 2 3 4 キャッシュ 3 4 キャッシュ 3 4 4 キャッシュ メモリバス メモリバス 3 共有メモリ シングルプロセッサの場合 SW1 も SW2 も同じキャッシュから読むので オーバーヘッドなく正しい値が読める 19 3 ノンコヒーレント キャッシュの場合 SW2 でメモリ上の同じデータを使いたい場合 SW1 はキャッシュの内容を一度共有メモリに戻した後 SW2 に通知する必要があり 大きなオーバーヘッドとなる 共有メモリ 3 コヒーレット キャッシュでは隣の のキャッシュの内容を盗み見る (Snoop) ハードウェア機構を持つ ソフトでは気にせずに SW1 と SW2 のデータ共有ができるため オーバーヘッドが小さい

AMP 型と SMP 型の違い ( プログラムモデル ) 1 向けプログラム 2 向けプログラム 3 向けプログラム 並列化プログラム タスク 1 タスク 4 タスク 6 タスク 2 タスク 7 タスク 3 タスク 5 タスク1 タスク2 タスク4 タスク 3 タスク 5 タスク 7 タスク 6 OS OS OS SMP OS 1 2 3 1 2 3 AMP 型 SMP 型 AMP 型はプロセッサごとの ( 別々の OS 上の ) プログラムとなり プログラム間の同期 通信を記載する へのタスク ( スレッド ) 割り当てはプログラム時に静的に行われる SMP 型は SMP OS 上の一つのプログラムとなり 同期 通信も含め 並列化支援言語 API として記載する SMP OS が負荷分散を考慮しながら動的にタスク ( スレッド ) をプロセッサに割り当てる 20

AMP 型マルチコアシステムのリアルタイム性 Delay from Scheduled Time (= Points above 40ms) Discontinuity of Audio & Video Execute Time for Periodical Processes Time a) 1 b) 3 Many Delays NO DELAY 21

SMP 型マルチコアシステムのスケーラビリティ ぶれ補正処理 シャッタースピードを遅くすると ぶれ発 速くすると暗くなる (I, II) シャッタースピードを速くしつつ 複数枚撮影し 画像補正 (III) 画質を くすればするほど い 性能が必要 並列性能向上率 (1 対 4) --- VGA: 2.94 倍, QVGA: 3.15 倍 Speedup 3.5 3 2.5 2 1.5 1 0.5 0 QVGA VGA 1 2 3 4 Number of Processors (I) slow shutter: bright but blurry (II) fast shutter: dark but not blurry Image Stabilizer (III) bright and not blurry Page 22

タスク並列のメリットを生かしながらスケーラビリティも実現 SMP LinuxのAffinity: タスクを固定的に特定 に割り付け可能 AMP-SMPハイブリッド リアルタイム系連携タスクと 度なマルチメディアタスクが混在する今後の組み込みシステムに適合 Task A Task C Task B Task F Task D Task E MMタスクを自動負荷分散 Task A Task C D Task B Task 固定割付 タタススククEF Snoop Cache Cache スレッド化されたタスク A~D Task E 制御系連携タスク Task F OS シングル, マルチタスク SMP Linux RTOS MPCore マルチ, マルチタスク マルチスレッド Page 23

マルチコアプロセッサの事例 TI OMAP5 ルネサスエレクトロニクス 東芝 Venezia EX Intel MIC R Car H1 24

TI OMAP5( 携帯機器向け SoC) 2 個の ARM Cortex-A15 がホモジニアス SMP 構成 2 個の ARM Cortex-M4 がホモジニアス AMP 構成 ARM, TI DSP, グラフィックプロセッサ等がヘテロジニアス AMP 構成 25

ルネサスエレクトロニクス R Car H1( 車載情報機器向け SoC) 4 個の ARM Cortex-A9 がホモジニアス SMP 構成 ルネサスエレクトロニクス SH-4A と 様々なプロセッサ群がヘテロジニアス AMP 構成 26

東芝 Venezia EX 携帯機器向けメディア処理 SoC メディア処理エンジン 8 個がホモジニアス AMP 構成 ソフトウェアによるキャッシュ コヒーレンシであるが メディア処理 ( ストリーミング処理 ) では高い性能を達成する 27

Intel MIC (Many Integrated Core) アーキテクチャ 32 コアがコヒーレント キャッシュで接続されたホモジニアス SMP 構成 28

次 マルチコア化の背景 マルチコア アーキテクチャとソフトウェアのモデル マルチコア向けソフトウェア開発 Page 29

マルチコア活かすも殺すもソフト次第 ソフトが複数のコアを有効利 しなければマルチコアの意味が無い システム ソフトウェアの並 処理 並列処理 並 並列化の種類 複数ソフトウェアの並 処理 ( 機能分割 ) 単 ソフトウェアの並列処理 ( スレッド化など ) アルゴリズム システムロジックが並列 並 実 可能 分割可能 依存がない プログラムが並列 並 実 可能に記述 Page 30

アルゴリズムが並列実行可能 (1) アルゴリズムが並列実 可能でなければマルチコア上で性能向上しない 例 : 総和 (1 から 1000000 までの和を求める ) int i, sum; for (i=1,sum=0; i<=1000000; i++) { sum += i; } return sum; i=k-1 の時の sum の値を いて i=k の時の sum を計算するため 並列化は難しい Page 31

アルゴリズムが並列実行可能 (2) 並列実行可能なアルゴリズム 例 : 総和 (4 コアで 1 から 1000000 までの和を求める ) int i, j, p, sum; for (p=0,sum=0; p<4; p++) { for(i=0,j=p*250000+1,s=0; i<=250000; i++, j++) { s += j; } sum += s; } return sum; 4 コアで並列実行可能 変数 i, j, s をコアごとの局所変数として割り当てて計算し 最後にそれぞれのコアの結果 s を集計 ( 注意 : 現状の自動並列化コンパイラでは 前頁のプログラムから自動的に上記のような並列化は行われる 従ってアルゴリズム変更が必要な場合は より複雑な例となる ) Page 32

システムロジックが並行実行可能 並行実行で性能向上する例並行実行で性能向上しない例 START START 処理の依存関係 処理 A 処理 B 処理 C 処理 D 処理 A 処理 B 処理 C END 処理 D END Page 33

プログラムが並列 並行実行可能に記述 AMP 型と SMP 型 AMP 型はプロセッサごとの ( 別々の OS 上の ) プログラムとなり プログラム間の同期 通信を記載する へのタスク ( スレッド ) 割り当てはプログラム時に静的に行われる SMP 型は SMP OS 上の一つのプログラムとなり 同期 通信も含め 並列化支援言語 API として記載する SMP OS が負荷分散を考慮しながら動的にタスク ( スレッド ) をプロセッサに割り当てる 1 向けプログラムタスク1 タスク 4 タスク 6 2 向けプログラム タスク 2 タスク 7 3 向けプログラムタスク3 タスク 5 並列化プログラム タスク1 タスク2 タスク4 タスク 3 タスク 5 タスク 7 タスク 6 OS OS OS SMP OS 1 2 AMP 型 3 1 2 3 SMP 型 Page 34

プログラムが並列 並行実行可能に記述 AMP 型のプログラム 同期 通信以外は通常のソフトウェア SMP 型のプログラム スレッド プログラミング その他 ヘテロジニアス マルチコア向け OpenCL GPU 向け CUDA Page 35

AMP 型マルチコアの同期 通信 ( 起動 終了 ) 起動 : から専 エンジンのレジスタに書き込み 終了 : 専 エンジンから への割込み 専 エンジンのレジスタを からポーリング 起動 終了に多少の時間オーバーヘッドがある 変数共有を考えなくても数 数百サイクル必要 (SMP 型のような ) 変数共有を考えるならば 1 変数を 1 回共有するのにさらに数 数百サイクル必要 時ソフトウェアモデルハードウェアモデル (AMP 型 ) 間 専用エンジン 起動処理 他からの割込み処理 終了処理 MPEG-4 CODEC Reg. MPEG-4 専用 HW Page 36

AMP 型マルチコアの同期 通信 ( 共有メモリ ) AMP 型ではデータ共有オーバーヘッドが大きいため 画像データ転送などを除き 可能な限りメモリ共有しない 共有メモリを用いたプロセッサ間データ授受 専用エンジンでデータを使う前に 必要なデータが のキャッシュからメモリに戻されている必要あり キャッシュ無効化などの処理が必要となり 同一プロセッサでのデータ授受より時間オーバーヘッドがある データ書込後 起動 終了または割り込みなどで通知 Page 37 時間ソフトウェアモデル 専用エンジンデータ書込起動処理データ読込 MPEG-4 CODEC データ書込終了処理データ読込 ハードウェアモデル Mem Reg. MPEG-4 専用 HW

スレッド化プログラミング スレッドライブラリの例 pthread IEEE の POSIX Section 1003.1c 規格 POSIX: Portable Operating System Interface Linux などで標準的にサポート Java Thread Java 言語の中に標準で定義 OpenMP C/C++/FORTRAN を並列プログラム可能にするために米国コンパイラベンダグループによって作られた指示文 パソコン向けの開発環境などで標準的にサポート TBB Intel 社が開発した言語 OpenMP と似ているレベルであるが 動的な負荷分散などをランタイムで行う TPL Microsoft 社の言語 同様のレベル.NET に含まれる参考文献 : Nichols, Buttlar, and Farrell( 榊訳 ): PThreads プログラミング オライリー ジャパン 1998 : Oaks and Wong( 戸松 西村訳 ): Java スレッドプログラミング オライリー ジャパン 1997 : http://www.openmp.org/ : James Reinders ( 菅原訳 ): インテルスレッドビルディングブロック オライリー ジャパン 2008 Page 38

スレッド化プログラミング (OpenMP) OpenMPでの記述例 ( 銀 系サーバの例 ) sections 指 されたブロック内の各 sectionは並列実 可能 #pragma omp parallel sections { #pragma omp section main(); #pragma omp section withdraw(); #pragma omp section deposit(); #pragma omp section balance(); } sections の } において同期する ( つまりすべての section が終了後に待ち合わせる ) 客リクエスト残高スレッド顧銀行系サーバ main() メインスレッド withdraw() 支払スレッド deposit() 預金スレッド balance() -39-

スレッド化プログラミング (OpenMP) OpenMPでの記述例 ( 画像復号処理の例 ) for 指 されたループは並列実 可能 #pragma omp parallel for for(i=1; i<=n; i++) 復号処理 #i; 複号処理 #1 画像復号処理 複号処理 #2 複号処理 #3 複号処理 # 4 複号処理 #5 複号処理 #8 複号処理 #7 複号処理 #5-40-

作順は基本的に保証されないどう動くか? #pragma omp parallel for for(i=1; i<=n; i++) 復号処理 #i; 画像復号処理動複号複号複号複号処理処理まず ばらばらの実 体にする処理処理 # #1 #2 #3 4 複号複号 複号処理処理 # 複号 #2 4 複号処理 #1 複号処理 #3 OS と動くスケジューラが空いたプロセッサに割付け 処理 #5 複号処理 #8 処理 #7 複号処理 #5-41-