2025年度 (最新) 学院等開講科目 情報理工学院 情報工学系
並列プログラミング
- 開講元
- 情報工学系
- 担当教員
- 齋藤 豪 / MA YOUMI
- 授業形態
- 講義/演習 (対面型)
- メディア利用科目
- -
- 曜日・時限
(講義室) - 火3-4 (W9-323(W932)) / 金3-4 (W9-323(W932))
- クラス
- -
- 科目コード
- CSC.T354
- 単位数
- 110
- 開講時期
- 2025年度
- 開講クォーター
- 2Q
- シラバス更新日
- 2025年3月31日
- 使用言語
- 日本語
シラバス
授業の目的(ねらい)、概要
並列プログラミングは近年の計算機で効果的に高速に演算させるためには必須の技術である。本講義及び演習では並列プログラミングのための基礎知識と具体的な実装法を習得する。
並列プログラムでは、非並列プログラムでは生じない不具合が起きる。不具合がなぜ起きるのかの理由や不具合を発生させないための手法を講義では学び、具体的なプログラミングを演習では体験する。そのためプログラミングの知識は事前に身につけた上で受講されたい。使用言語は主に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分を目安に行うこと。
教科書
なし
参考書、講義資料等
講義資料はT2SCHOLAにアップロードします。データ、サンプルコードはウェブサイトにアップロードします。
成績評価の方法及び基準
演習レポートの点数を主として評価する。
関連する科目
- CSC.T263 : 関数型プログラミング基礎
- CSC.T273 : オブジェクト指向プログラミング
- CSC.T344 : システムプログラミング
- CSC.T363 : コンピュータアーキテクチャ
履修の条件・注意事項
演習用計算機の台数を越えた受講生が居る場合には、情報工学系の学生を優先します。