コンテンツにスキップ

本講義の基本的な情報

  • 講義日:毎週木曜日 3 限
  • 担当 :B4のみんな

教科書と参考書

目標

並列プログラミングの基本的な用語や考え方、パターンを理解すること。 また、パターンと実際のソースコードの対応関係がイメージできる様になるとさらに良い。

輪講形式で教科書を読む。 各人が割り当てられた担当部分の講義資料を作成し、プレゼンを行う。 プレゼン中は随時質疑応答を行う。

本書を読むにあたって必要な知識(序章より)

  • C++が読める書けること
  • アセンブリやシステムプログラミングの知識は必要ありません
  • 特定の OS に関する詳細知識も必要ありません
  • 例題で使用する Intel TBB (Threading Building Block) と Cilk Plus (2021 年時点では開発終了) に関する事前知識もまったく必要ありません

著者の紹介

  • 菅原 清文: インテル Japan KK 社の人。技術書とか ISUS に記事をたくさん書いている。この人の本は信用できる。
  • James Reinders: 米 Intel 社の人。英語の技術書をいっぱい書いている人。この人の本には、Intel 社の CPU のいろいろ細かい話が書いてある。この人の本は信用できる。
  • Michael McCool: 米 Intel 社の人。元 Waterloo 大学の先生で、本書に出てくる ArBB を作った人。元大学の先生ですので、並列計算の教科書っぽい本をたくさん書いている。
  • Arch Robison: 現 NVIDIA 社の人。元米 Intel 社で Intel TBB のアーキテクト、今は Tensor RT の開発者。技術者。
  • エクセルソフト: インテル社のソフトウェアの総代理店。Intel 社のツールとかソフトウェアの解説書もいっぱい出している。

担当分け

担当ワケ

担当箇所 ページ数 担当者 日程
1章 みやじま 2024-05-23
2章前半 ~2.4, 19ページ 常井 2024-05-30
2章後半 2.5~, 30ページ 酒井 2024-06-06
3章前半 ~3.4, 21ページ 長谷川 2024-06-13
3章後半 3.5~, 25ページ 菅井 2024-06-20
4章 山根 2024-06-27
5章前半 ~5.3, 18ページ 折原 2024-07-04
5章後半 5.4~, 18ページ 相吉 2024-07-11
6章 横田 2024-07-18
7章 2024-07-25
8章前半 ~8.8, 25ページ 2024-08-01
8章後半 8.9~, 25ページ 2024-08-08
9章 2024-08-15
10章 2024-08-22
11章 2024-08-29
12章 2024-09-05
13+14章 2024-09-12

輪講資料で注意すべきこと

  • 自分が大切だと思った要点をまとめること
  • 教科書の全文をコピー&ペーストする必要はない。たとえば、教科書に載っている事例は、輪講資料に載せる必要は必ずしもない
  • 分かりやすいように、要点を列挙したり、教科書の文章をまとめ直したりすること
  • たとえば、以下のような形です
    1. 図を描いて説明する。ノートに手書きしたものを写真に撮る形でも OK です
    2. 文章から重要な部分を抜き出して、箇条書きにする
    3. 重要な部分を太字にする
  • 時間内に説明できることを心がけること。たとえば、教科書に載っている事例を、輪講中に説明する必要は必ずしもない

輪講資料の作り方

資料を作成するときは、GitLab と Markdown を使います
具体的には、ゼミの資料ページを clone して、自分の担当する章の branch を作って、docs ディレクトリの下の担当の章のディレクトリで作業をして、push してマージリクエストをする流れになります。 資料自体は Markdown で書くこと。

GitLabプロジェクトへのメンバー追加とclone

みなさんを、輪講の GitLab プロジェクトにみなさんを Developer として登録します。
ですので、GitLab.com のアカウントを私に教えてください。もし作っていない人は作ってね。 また、以下のコマンドでリポジトリを clone してください。

git clone git@gitlab.com:t3840/2024_spring_b4_grad_research_1_reading_class_2.git

作業開始

リポジトリの docs ディレクトリの内部で作業をします。 また、自分の作業用ブランチを必ず切ってくださいmainブランチは保護されているので、直接コミットができません。 たとえば、第 2 章を担当する人は、chapter2ブランチを作成した後、docs/chapter2/{chapter2.md,figures/}以下で作業をしてください。

資料作成

clone できたら資料を作ります。 今回は、Markdown から Web ページを作成する際には、mkdocs というものを使っています。 Linux 環境で mkdocs をインストールして、やってみてください。1

  • make installするとmkdocsのインストールができます。
  • make serveしてhttp://127.0.0.1:8080にアクセスするとmkdocsがリアルタイムでレンダリングされます。
  • 数式を囲むときは、$ではなくて、$`と`$で囲むので注意してください。
  • ![](figures/04_fractal_2023-04-26-15-34-13.png#center){: style="height:150px"}こんな風に書くと画像の表示サイズが調整できます。
  • 一部使えない拡張があるかもしれません。
  • mkdocs の環境構築がつらい、という人は GitLab.com の Web インタフェースで書くこともできます。

資料作成をマージ

資料が完成したら push して、マージリクエストのページから自分のブランチをmainブランチにマージするリクエストを作成してください。 また、みやじまに Slack などでマージしてほしい旨を連絡してください。 少しするとページが更新されるますので、できあがりを確認してください。

なお、コミットすると自動的に CI が走る設定ですが、自分の GitLab アカウントでクレカの登録が必要です。 これが原因で CI が失敗になりますが、失敗でもかまいません。 課金はされないので、登録できる人はしてください。 CI の結果は、プロジェクトページのCIの部分で見られます。


  1. https://zenn.dev/mebiusbox/articles/81d977a72cee01