到達目標
・並列・分散処理の概念,種類や仕組みについて説明できる.
・並列・分散処理の基本的なプログラムを記述できる.
・あるソフトウェア課題に対して並列・分散処理を適切に適用した処理フローを提案できる.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
並列・分散処理の概念,種類や仕組みについて説明できる. | 並列・分散処理の概念について説明でき,授業で学習した全ての処理手法の種類や仕組みについて説明できる. | 並列・分散処理の概念について説明でき,授業で学習した処理手法の種類や仕組みについて理解し,一部説明できる. | 並列・分散処理の概念について説明できず,処理手法の種類や仕組みについて理解できない. |
並列・分散処理の基本的なプログラムを記述できる. | 授業で説明したpythonプログラムを理解し,各並列・分散処置手法を実現するプログラムを自力で記述できる. | 授業で説明したpythonプログラムを理解し,各並列・分散処置手法を実現するプログラムを一部サポートを受けて記述できる. | 授業で説明したpythonプログラムを理解できない. |
あるソフトウェア課題に対して並列・分散処理を適切に適用した処理フローを提案できる. | 与えられた課題に対して適切な並列・分散処理手法を選択し,効果的な処理フローを自力で提案できる. | 与えられた課題に対して理解している並列・分散処理手法を用いて,一部サポートを受けて処理フローを提案できる. | 与えられた課題に対して並列・分散処理手法を提案できない. |
学科の到達目標項目との関係
教育方法等
概要:
近年のIoT,AI技術の発展により,膨大なデータ,複雑な問題に対して高速処理する要求が高まっている.高速処理にはCPUのクロック数アップ,マルチコア化などのハードウェア性能の向上だけでなく,ソフトウェアによる処理方法も重要である.本授業では並列・分散処理による高速処理について,ハードウェア,ソフトウェア両面からその仕組みを理解し,pythonを用いたプログラミングにより,具体的な並列・分散処理の記述方法を実習を通して理解する.
授業の進め方・方法:
授業はスライドを用いた講義のあと,理解度を確認するための小テスト,理解度を深めるための演習を適時実施する.演習にはpythonを用いたプログラミングを行うため,授業ではpythonの開発環境を整備したPCを使用する.14週目以降では,これまでに学習した知識の応用力を養うための実習を行う.
事前学習:次回の講義スライドが提示されている場合は,一通り講義スライド内容を確認し,要点を把握しておくこと.
事後学習:講義スライドを見直して学習内容を振り返り,理解が不足しているポイントを復習し,わからないところは整理してメール等で教員に質問すること.演習,実習に関しては締切前に提出するように自宅等でも取り組むこと.
注意点:
授業で使用するpython開発環境は無償で準備できるものを使用するので,各自所有のPC,研究室のPC等でも開発環境を整え,事後学習でも演習,実習に取り組めるようにすること.
参考図書:"Python Parallel Programming Cookbook - Second Edition", Giancarlo Zaccone, Publisher(s): Packt Publishing, ISBN: 9781789533736
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
ガイダンス,並列・分散処理概要(1) |
集中処理システム,分散処理システムの違い,それぞれの特徴や代表的なシステムについて説明できる.
|
2週 |
並列・分散処理概要(2) |
並列・分散処理の種類と各処理の特徴を説明できる.
|
3週 |
スレッドによる並列処理(1) |
マルチコアシステムによる計算処理能力を向上させる代表的なシステム構成について説明できる. スレッドの特徴について理解できる.
|
4週 |
スレッドによる並列処理(2) |
Pythonによるスレッド処理の記述方法を理解できる.
|
5週 |
プロセスによる並列処理(1) |
プロセスの特徴について理解し,スレッドとの違いを説明できる.
|
6週 |
プロセスによる並列処理(2) |
Pythonによるプロセス処理の記述方法を理解できる.
|
7週 |
MPIによるメッセージ通信(1) |
MPIの構造を理解し,用途について説明できる.
|
8週 |
MPIによるメッセージ通信(2) |
PythonによるMPI処理の記述方法を理解できる.
|
4thQ |
9週 |
非同期処理(1) |
非同期処理の特徴を理解できる.
|
10週 |
非同期処理(2) |
Pythonによる非同期処理の記述方法を理解できる.
|
11週 |
分散処理(1) |
分散処理の特徴を理解し,並列処理との違いを説明できる.
|
12週 |
分散処理(2) |
Pythonによる分散処理の記述方法を理解できる.
|
13週 |
クラウドコンピューティング |
クラウドコンピューティングの仕組みを理解し,代表的なシステムについて説明できる. クラウドサービスを活用することができる.
|
14週 |
並列・分散処理実習(1) |
これまでに学んだ並列・分散処理を活用したプログラムを記述できる.
|
15週 |
並列・分散処理実習(2) |
これまでに学んだ並列・分散処理を活用したプログラムを記述できる.
|
16週 |
並列・分散処理実習(3) |
これまでに学んだ並列・分散処理を活用したプログラムを記述できる.
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | コンピュータシステム | ネットワークコンピューティングや組込みシステムなど、実用に供せられているコンピュータシステムの利用形態について説明できる。 | 3 | 後2 |
デュアルシステムやマルチプロセッサシステムなど、コンピュータシステムの信頼性や機能を向上させるための代表的なシステム構成について説明できる。 | 3 | 後6 |
集中処理システムについて、それぞれの特徴と代表的な例を説明できる。 | 4 | 後13 |
分散処理システムについて、特徴と代表的な例を説明できる。 | 4 | 後13 |
評価割合
| 小テスト | 実習課題 | 合計 |
総合評価割合 | 60 | 40 | 100 |
基礎的能力 | 50 | 0 | 50 |
専門的能力 | 10 | 40 | 50 |