情報科学部Faculty of Computer and Information Sciences
COT311KA-CS-311(計算基盤 / Computing technologies 300)並列分散処理Parallel/Distributed Processing
八巻 隼人Hayato YAMAKI
授業コードなどClass code etc
学部・研究科Faculty/Graduate school | 情報科学部Faculty of Computer and Information Sciences |
添付ファイル名Attached documents | |
年度Year | 2022 |
授業コードClass code | J0529 |
旧授業コードPrevious Class code | |
旧科目名Previous Class title | |
開講時期Term | 秋学期授業/Fall |
曜日・時限Day/Period | 木5/Thu.5 |
科目種別Class Type | |
キャンパスCampus | 小金井 / Koganei |
教室名称Classroom name | 各学部・研究科等の時間割等で確認 |
配当年次Grade | |
単位数Credit(s) | 2 |
備考(履修条件等)Notes | |
他学部公開科目Open Program | |
他学部公開(履修条件等)Open Program (Notes) | |
グローバル・オープン科目Global Open Program | |
成績優秀者の他学部科目履修制度対象Interdepartmental class taking system for Academic Achievers | ○ |
成績優秀者の他学部科目履修(履修条件等)Interdepartmental class taking system for Academic Achievers (Notes) |
(1) 受講希望者 (受講検討中の者も含む) は、情報科学部学部Googleフォーム(https://forms.gle/ECvwxVe2NcxmrbTK9)で初回講義前までに希望申請をしてください。(※以下URLのご案内があるGoogleフォームとは異なるのでご注意ください。) (2) 以下のURLと教育開発支援機構事務局の案内に従って、履修希望の申請を行ってください。 https://www.hoseikyoiku.jp/risyu/index.html (3) 履修取消については、ご自身の所属学部の履修取消期間内に必ず同時に履修削除を行ってください。 |
実務経験のある教員による授業科目Class taught by instructors with practical experience | |
SDGsCPSDGs CP | |
アーバンデザインCPUrban Design CP | |
ダイバーシティCPDiversity CP | |
未来教室CPLearning for the Future CP | |
カーボンニュートラルCPCarbon Neutral CP | |
千代田コンソ単位互換提供(他大学向け)Chiyoda Campus Consortium | |
選択・必修Optional/Compulsory | |
カテゴリー(2022年度以降入学者)Category (2022~) | |
カテゴリー(2021年度以前入学者)Category (~2021) | |
カテゴリーCategory |
専門教育科目 専門科目 |
すべて開くShow all
すべて閉じるHide All
Outline (in English)
[Course outline]
In recent years, most computer systems, such as mobile phones, PCs, and supercomputers, use technique of parallel and distributed processing for high-speed and multi-task processing. This course introduces the basic techniques of "parallel processing" and "distributed processing" for various layers (from a hardware layer to an OS/application layer).
[Learning Objectives]
The goals of this course are to understand how parallel and distributed systems are realized and performed and to be able to point out problems in these systems.
[Learning activities outside of classroom]
After each class meeting, students will be expected to spend four hours to understand the course content.
[Grading Criteria /Policies]
Final grade will be calculated according to the following process
Mid-term report and in-class contribution (40%), term-end examination (60%).
授業で使用する言語Default language used in class
日本語 / Japanese
授業の概要と目的(何を学ぶか)Outline and objectives
現在、そして今後の情報基盤アーキテクチャの根幹を成す「並列処理」と「分散処理」についてその基礎から学ぶ。
スマートフォンや携帯ゲーム機からパソコン・スーパーコンピュータに至るまで、現在使われている殆どの計算機システムは、複数の処理列を同時に実行させて処理を進める並列分散処理の構成になっている。本講義では、並列・分散システムの基盤技術を俯瞰することにより、ハードウェアからOS・アプリケーションに至るまでの様々なレイヤにおける並列・分散処理について学ぶ。
到達目標Goal
本講義では、並列分散処理に関わるハードウェアやソフトウェアがいかにして並列化を実現しているか、またそれに伴う諸問題についても理解することを最終的な目標とする。その過程で、プロセス・スレッドレベルでの簡単な並列プログミング手法についても修得する。学生は本講義を通じて、OSやプロセッサ、またよりスケールの大きいクラスタレベルの並列化技術について知識を得るだけでなく、プロセス・スレッドのプログラミング技術を身につけることができる。
この授業を履修することで学部等のディプロマポリシーに示されたどの能力を習得することができるか(該当授業科目と学位授与方針に明示された学習成果との関連)Which item of the diploma policy will be obtained by taking this class?
ディプロマポリシーのうち「DP4-1」と「DP4-2」に関連
授業で使用する言語Default language used in class
日本語 / Japanese
授業の進め方と方法Method(s)(学期の途中で変更になる場合には、別途提示します。 /If the Method(s) is changed, we will announce the details of any changes. )
授業は主に配布資料を用いた講義形式により行う。授業で課した課題(小テストやレポート)等を取り上げ、授業内で全体に対してフィードバックを行う。
進み具合に応じて数回の理解度チェック課題を課す。
また中間課題として課す演習においては、並列分散処理ライブラリ等を利用したプログラミングを行うことから、C/C++の基本的なプログラミング知識を有することを前提とする。
試験は期末のみを予定している。
アクティブラーニング(グループディスカッション、ディベート等)の実施Active learning in class (Group discussion, Debate.etc.)
なし / No
フィールドワーク(学外での実習等)の実施Fieldwork in class
なし / No
授業計画Schedule
授業形態/methods of teaching:対面/face to face
※各回の授業形態は予定です。教員の指示に従ってください。
第1回[対面/face to face]:並列分散処理の目的と歴史的経緯
並列分散処理についてのイントロダクション。
それらの歴史的な技術の変遷を辿り技術領域を明らかにする。
第2回[対面/face to face]:OSレベルの並列化1(プロセス、スレッド、仮想メモリ)
OSが行う並列処理技術として、プロセス・スレッドを用いたマルチタスク実行が挙げられる。まずプロセスとスレッドの概念について学ぶ。
第3回[対面/face to face]:OSレベルの並列化2(プロセス、スレッド、仮想メモリ)
第2回に引き続き、プロセスとスレッドを理解する上で欠かせない、OSの仮想メモリ技術について学ぶ。
第4回[対面/face to face]:OSレベルの並列化3(プロセス、スレッド、仮想メモリ)
プロセスとスレッドをユーザが生成するためのプログラミング技術について学ぶ。
際5回[対面/face to face]:命令レベルの並列化1(命令依存、スーパースカラ)
プログラム実行を高速化する技術として、CPUが命令レベルで実行を並列化するスーパースカラ等の技術がある。まず、命令の並列実行と命令依存の関係について学ぶ。
第6回[対面/face to face]:命令レベルの並列化2(命令依存、スーパースカラ)
スーパースカラやVLIWといった複数命令を同時実行する技術、またそれらを効率化するコンパイラ技術等について学ぶ。
第7回[対面/face to face]:プロセッサレベルの並列化1(メモリコンシステンシ、キャッシュコヒーレンシ)
複数のプロセッサを用いて並列処理するマルチプロセッサ環境における問題点として、メモリコンシステンシおよびキャッシュコヒーレンシの概念について学ぶ。
第8回[対面/face to face]:プロセッサレベルの並列化2(メモリコンシステンシ、キャッシュコヒーレンシ)
マルチプロセッサ環境における同時メモリアクセスの問題を解決する、同期やセマフォといった技術について学ぶ。
第9回[対面/face to face]:プロセッサレベルの並列化3(メモリコンシステンシ、キャッシュコヒーレンシ)
マルチプロセッサ環境における複数キャッシュのコヒーレンシ問題を解決するスヌープキャッシュ等の技術について学ぶ。
第10回[対面/face to face]:ネットワークと通信プロトコル1
分散システムで欠くことのできないネットワークとその通信プロトコルについて学ぶ。本回では主にネットワークのトポロジと、それによる性能差について学ぶ。
第11回[対面/face to face]:ネットワークと通信プロトコル2
分散システムで欠くことのできないネットワークとその通信プロトコルについて学ぶ。本回では主に通信プロトコルについて学ぶ。
第12回[対面/face to face]:高信頼化・高性能化技術(RAID)
よりスケールの大きい分散システムとしてストレージ機器の並列分散化であるRAIDを例に挙げ、システムの信頼性について学ぶ。
第13回[対面/face to face]:時刻同期(時計、スナップショット)
分散システムにおける時刻同期の難しさと、それによる問題、解決策について学ぶ。
第14回[対面/face to face]:まとめ
これまでの講義内容を振り返り、並列分散処理に関する様々な技術をまとめる。
授業時間外の学習(準備学習・復習・宿題等)Work to be done outside of class (preparation, etc.)
講義資料は講義前にWeb配布するので、必要に応じて予習しておくこと。
前述したように数回のレポート課題を課す予定なので、その場合にはしっかりとレポートを作成すること。本授業の準備・復習時間は、計4時間を標準とします。
テキスト(教科書)Textbooks
特にテキスト、参考書は指定しない。講義資料は講義前にHoppii上にアップロードする。
参考書References
参考書は必要があれば講義中に紹介する。
成績評価の方法と基準Grading criteria
期末テストを60%,中間レポート・出席レポートを含む平常の学習状態や授業への積極性を40%の配点とし,60点以上を合格とする。
学生の意見等からの気づきChanges following student comments
質疑はいつでも受け付けるので気軽にメールすること。