分散コンピューティング

科目基礎情報

学校 仙台高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 分散コンピューティング
科目番号 1113 科目区分 専門 / 選択
授業形態 講義 単位の種別と単位数 学修単位: 2
開設学科 総合工学科Ⅰ類 対象学年 5
開設期 後期 週時間数 2
教科書/教材 授業中に適時資料を配布する
担当教員 千葉 慎二

到達目標

・並列・分散処理の概念,種類や仕組みについて説明できる.
・並列・分散処理の基本的なプログラムを記述できる.
・あるソフトウェア課題に対して並列・分散処理を適切に適用した処理フローを提案できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
並列・分散処理の概念,種類や仕組みについて説明できる.並列・分散処理の概念について説明でき,授業で学習した全ての処理手法の種類や仕組みについて説明できる.並列・分散処理の概念について説明でき,授業で学習した処理手法の種類や仕組みについて理解し,一部説明できる.並列・分散処理の概念について説明できず,処理手法の種類や仕組みについて理解できない.
並列・分散処理の基本的なプログラムを記述できる.授業で説明した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

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
後期
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

評価割合

小テスト実習課題合計
総合評価割合6040100
基礎的能力50050
専門的能力104050