2021年度 並列プログラミング   Parallel Programming

文字サイズ 

アップデートお知らせメールへ登録 お気に入り講義リストに追加
開講元
情報工学系
担当教員名
齋藤 豪  宇都 有昭 
授業形態
講義 / 演習     
メディア利用科目
曜日・時限(講義室)
火3-4(W321)  金3-4(W321)  
クラス
-
科目コード
CSC.T354
単位数
2
開講年度
2021年度
開講クォーター
2Q
シラバス更新日
2021年3月19日
講義資料更新日
-
使用言語
日本語
アクセスランキング
media

講義の概要とねらい

並列プログラミングは近年の計算機で効果的に高速に演算させるためには必須の技術である。本講義及び演習では並列プログラミングのための基礎知識と具体的な実装法を習得する。
並列プログラムでは、非並列プログラムでは生じない不具合が起きる。不具合がなぜ起きるのかの理由や不具合を発生させないための手法を講義では学び、具体的なプログラミングを演習では体験する。そのためプログラミングの知識は事前に身につけた上で受講されたい。使用言語は主にJavaである。

到達目標

並列プログラムを正しく組み立てるための、正しいデータ資源の共有、同期化、計算資源適切な分配、遅延実行と開始などの知識と技術を身につけることを目標とする。

代表的な題目としては
1)データの実体の格納されている領域の理解
2)スレッドプログラミング
3)イベントドリブンプログラミング
4)GPUプログラミング

キーワード

スレッドプログラミング、GPUプログラミング、GUIプログラミング、可視性、同期、モニタ、アトミシティ

学生が身につける力(ディグリー・ポリシー)

専門力 教養力 コミュニケーション力 展開力(探究力又は設定力) 展開力(実践力又は解決力)

授業の進め方

教室での講義回と情報工学系計算機室での演習回をほぼ交互に行い、知識と実践力をつける

授業計画・課題

  授業計画 課題
第1回 導入、イベント駆動 イベントとイベントハンドラ
第2回 演習1 JavaFX プログラム
第3回 イベント駆動(2) スレッド イベント転送 スレッド, モニタ
第4回 演習2 JavaFX プログラム2
第5回 スレッド安全 復習:データとその格納法 非共有、不可変、同期 浅いコピーと深いコピー、実体と参照
第6回 演習3 実体と参照の復習、多型性の利用 競合状態
第7回 スレッドと複雑な同期 アトミック ウェイト、ジョイン、ノーティファイ 飢餓
第8回 演習4 並行サーバ
第9回 遅延実行 ストリーム ストリーム、ラムダ式、スレッドプール
第10回 演習5 ラムダ式とストリーム
第11回 GPU プログラミング OpenCL
第12回 演習6 OpenCL
第13回 GPUプログラミング 画像処理 データ並列計算
第14回 演習7 画像処理 総合応用プログラム

授業時間外学修(予習・復習等)

学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ概ね100分を目安に行うこと。

教科書

なし

参考書、講義資料等

講義資料はOCWにアップロードします。データ、サンプルコードはウェブサイトにアップロードします。

成績評価の基準及び方法

演習レポート及び、筆記試験。演習レポートの点数を主として評価する。ただし筆記試験の出席は必須。

関連する科目

  • CSC.T263 : 関数型プログラミング基礎
  • CSC.T273 : オブジェクト指向プログラミング
  • CSC.T344 : システムプログラミング
  • CSC.T363 : コンピュータアーキテクチャ

履修の条件(知識・技能・履修済科目等)

演習用計算機の台数を越えた受講生が居る場合には、情報工学科生を優先します。

このページのトップへ