|| 英語(English)
学習支援計画書(シラバス) 検索システム
情報工学専攻
対象課程 科目名 単位数 科目コード 開講時期 授業科目区分
博士前期課程(修士課程)
高性能並列処理特論
High Performance and Parallel Processing
2 2478-01 2022年度
前学期
関係科目
担当教員名
授業科目の学習・教育目標
キーワード 学習・教育目標
1.並列処理 2.高性能計算 3.プログラミング 4.性能評価 様々な並列処理技術の基礎概念を説明でき,計算機性能の活用を考慮してプログラム開発す る力を養うことを目標とする.身近に利用できる計算機で実際に並列プログラムを実装し, 性能評価を行う.一度実装したプログラムからさらに性能改善を行う実践的演習を行い,並 列処理を利用して高性能計算を達成するプログラムの提案と実装ができる能力を養う.
授業の概要および学習上の助言
現在の計算機はほとんどがCPUコアを複数搭載したマルチコアプロセッサあるいはメニーコアプロセッサを内蔵しており,実 は並列計算機である.そのため,高性能計算を目指す場合は多くのケースで並列処理を扱う必要がある.一方近年では並列処 理プログラミング環境がある程度成熟しており,通常使用するデスクトップPCやノートPC上でも並列処理プログラムを開発し ,実行することができる.本科目では,高性能計算および並列処理の基本事項を学び,さらに並列プログラミングを体験して 高性能計算の実際を学ぶ. 並列プログラミング演習ではC言語の使用を想定し、C言語のサンプルソースなどを配布する。講義中で指定する並列処理用ラ イブラリ等と組み合わせて使用できれば他のプログラミング言語を使用してもよいが、各自が使用する言語へのサンプルソー スなどの読み替えは各自の責任で行うこと。また、通信時間や計算時間を計測することを本講義の最終提出物の要件とするた め、使用言語の選定では留意すること。並列プログラミング演習が十分行えないと担当教員が判断する場合は、講義期間の途 中でも使用言語を変更するように指示する場合がある。 口頭発表の時期や講義内容の詳細および順番は、担当教員の判断で変更する場合がある。
教科書および参考書・リザーブドブック
リザーブドブック:「スパコンプログラミング入門」          「並列プログラミング入門」
履修に必要な予備知識や技能
1.自分のノートPCにlinuxあるいは類例のOS(Mac OS, Windows上でのCygwinを含む)環境を用意し、基本操作ができること 。 2.基礎的なプログラミングができること。少なくともC言語の学部レベルの知識とプログラミング技能を必要とする。 3.初等関数、行列、アルゴリズム、計算量の評価に関する学部レベルの知識が必要である。
学生が達成すべき行動目標
No.
並列処理における基本概念が説明できる.
現在広く用いられる並列処理用のライブラリ等を使用して、並列に動作するプログラムを作成できる.
プログラムの基礎的な性能評価を行うことができる.
並列プログラムの性能を改善するために考慮すべき事項を説明できる.
並列プログラムの開発方針とその実装結果をまとめた説明文書を作成できる.
達成度評価
評価方法 試験 クイズ
小テスト
レポート 成果発表
(口頭・実技)
作品 ポートフォリオ その他 合計
総合評価割合 0 0 60 40 0 0 0 100
評価の要点
評価方法 行動目標 評価の実施方法と注意点
試験
クイズ
小テスト
レポート レポート1(15点):並列化予定の逐次処理プログラムの性能評価結果を示す。並列処理方針を述べる 。 レポート2(15点):並列処理プログラムの性能評価した結果と性能向上の方針を述べる。 レポート3(15点):性能向上演習結果を示し、最終レポートの追加事項を明確にする。 最終レポート(15点):講義で行った取り組み全体を報告する。
成果発表
(口頭・実技)
口頭発表1(10点):並列化予定の逐次処理プログラムの性能評価結果を示す。並列処理方針を述べる 。 口頭発表2(10点):並列処理プログラムの性能評価した結果と性能向上の方針を述べる。 口頭発表3(10点):性能向上演習結果を示し、最終口頭発表の追加事項を明確にする。 最終口頭発表(10点):講義で行った取り組み全体を報告する。
作品
ポートフォリオ
その他
具体的な達成の目安
理想的な達成レベルの目安 標準的な達成レベルの目安
高性能計算および並列処理の基礎事項を理解し,使用する計算 機で実際に使われている高性能化技術や並列化技術を説明でき る. 並列プログラムを実装でき,性能評価を適切に行うことができ る. 性能評価結果から,性能改善策を提案でき,実装できる. これらの内容について,口頭と文書で適切に説明できる. 高性能計算および並列処理の基礎事項を理解し,説明できる. 簡単な並列プログラムを実装でき,基本的な性能評価を行う ことができる. さらに,性能向上するために考慮すべき事項を挙げることがで きる. これらの内容について,口頭と文書で説明できる.
授業明細
回数 学習内容 授業の運営方法 学習課題 予習・復習 時間:分
1 講義のガイダンス、高性能計算および並列処理の導入 計算機の歴史における高性能計算および並列処理の位 置づけを概観し,並列処理の重要性と利用の実際を学 ぶ.並列プログラミングに使用するPC環境などを確認 する。 講義 復習(講義内容を確認し、開発に 使用するプログラミング言語を決 定する。) 講義中で指定した並列処理ライブ ラリのインストールおよび環境設 定 30 170
2 並列プログラミング(導入、基本的な通信) 各自のノートPCの性能諸元を確認し,さらに各自のノ ートPCでごく基本的な並列プログラムを実行する. 計算機アーキテクチャと並列処理プログラムの関係を 学ぶ. 講義とコンピュータ演習 復習(基礎的な並列プログラムの 実行など) 200
3 並列プログラム(集団通信を用いた集約計算) 講義とコンピュータ演習 復習(講義時に提示したサンプル の理解、コンピュータ演習) 200
4 並列プログラム(実行時間計測とファイルI/O) 講義とコンピュータ演習 復習(講義時に提示したサンプル の理解、コンピュータ演習) 200
5 基礎的な数値計算の並列プログラミングと性能評価の 実際 基礎的な数値計算問題の内容と用途を学び,逐次処理 と並列処理でプログラムを実装する. 性能評価手法を学び,自分で実装したプログラムを各 自の計算機環境上で性能評価する. 講義とコンピュータ演習 復習(講義時に提示したサンプル の理解、コンピュータ演習) 予習(口頭発表1の準備) 100 100
6 口頭発表1:逐次処理プログラムの性能評価 各自が並列処理を行う予定プログラムの、逐次版を実 装し,性能評価した結果を発表する. 今後の並列処理の方針を示すことが望ましい。 口頭発表のための資料を作成し,レポート1とする. 口頭発表と質疑討論 復習(口頭発表の振り返り、並列 プログラムの開発方針の検討) 200
7 並列処理に関する技術情報を検索し、クラス内で報告 しあって共有する。 講義、演習(参考情報の調査 と共有) 復習(参考情報の学習) 200
8 並列プログラムの作成と性能評価演習1 講義とコンピュータ演習 復習(並列プログラム開発) 200
9 並列プログラムの作成と性能評価演習2 講義とコンピュータ演習 復習(並列プログラム開発) 予習(口頭発表2の準備) 100 100
10 口頭発表2 並列プログラムを開発し、その性能評価結果をまとめ て口頭発表を行う. 口頭発表のための資料を作成し,レポート2とする. 口頭発表と質疑討論 復習(口頭発表の振り返り、今後 の性能向上方針の検討) 200
11 並列プログラムの性能向上演習1 口頭発表2の内容に参考情報を加え,各自でこれまで 開発したプログラムの性能向上に取り組む. コンピュータ演習 復習(並列プログラムの制作) 200
12 並列プログラムの性能向上演習2 口頭発表2の内容に参考情報を加え,各自でこれまで 開発したプログラムの性能向上に取り組む. コンピュータ演習 復習(並列プログラムの制作) 予習(口頭発表3の準備) 100 100
13 口頭発表3 得られた結果を簡単に報告し,最終レポートに含める べき情報を確認する.口頭発表のための資料を作成し ,レポート3とする. 口頭発表と質疑討論 復習(口頭発表の振り返り、性能 評価内容の追加、改善 200
14 最終レポートと最終口頭発表におけるまとめ方と含め るべき情報を確認し、最終レポートと最終口頭発表資 料を作成する. 講義とコンピュータ演習 予習(最終レポートの作成、最終 口頭発表の準備) 200
15 最終口頭発表 この講義で各学生が取り組んだ内容をまとめ,最終レ ポートを提示するとともに口頭で発表して討論を行う 。 講義内容を振り返り、本講義で身に着けた技術と知識 の内容を確認する。 口頭発表と質疑討論 復習(講義内容を振り返る) 100