コンテンツにスキップ

本輪講の基本的な情報

  • 輪講日:毎週水曜日 4限
  • 担当 :B3のみんな

教科書と参考書

目標

  • 並列プログラミングの基本的な用語や考え方、逐次コードを並列化するイメージが出来るようになること

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

輪講内容

以下の順番で行きます。

  • 第01回: 1章 速くしたい人、手を挙げて! & 5章 スレッドライブラリ
  • 第02回: 2章 並行か非並行か?それが問題だ
  • 第03回: 3章 正当性の検証と性能測定
  • 第04回: 4章 マルチスレッドアプリケーション設計の8つのルール
  • 第05回: 6章 並列和とプリフィクススキャン
  • 第06回: 7章 MapReduce
  • 第07回: 8章 ソート
  • 第08回: 9章 サーチ
  • 第09回: 10章 グラフアルゴリズム

担当ワケ

章番号1 章番号2 担当日 担当者1 担当者2
1 2024/10/10 みやじま
2 2024/10/17 ながしま
3 4 2024/10/24 たかはし ふかさわ
6 7 2024/11/7 みずの こまつ
8 9 2024/11/14 おの なかむら
10 2024/11/21 ひおき

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

  • 専門用語は最小限ですが、基礎レベルのデータ構造やアルゴリズムの知識は前提としている
  • C言語が読めること
  • スレッドプログラミングの基本的な知識

著者の紹介

  • Clay Breshears: Intelに16年在籍したあとに、情報工学の大学教員に転職した人。

  • 千住 治郎: 『Linux システムプログラミング』や『GBDハンドブック』などの低レイヤのプログラミング関連の書籍をたくさん翻訳している人。

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

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

コードの説明をする時は、以下の流れで説明してね

  • コードの挙動のイメージを説明する。ここでは、細かい説明はまだいらない
  • コードの処理の大まかな説明をする。関数A->B->C
  • 重要そうな関数の説明を詳細にする。関数Aの引数とか、処理の意味とか

輪講資料の作り方

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

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

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

1
git clone git@gitlab.com:t3840/2024_autamn_b3_seminar2_reading_class.git

作業開始

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

資料作成

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

  • Ubuntu系のディストリビューションであれば、make installで必要なパッケージがインストールできます。
  • 数式を囲むときは、$ではなくて、$`と`$で囲むので注意してください。
  • 画像のサイズ変更は{: style="height:300px"}とかやると変更できます。
  • 一部使えない拡張があるかもしれません。
  • mkdocsの環境構築がつらい、という人はGitLab.comのWebインターフェイスで書くこともできます。

資料作成をマージ

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

なお、コミットすると自動的にCIが走る設定ですが、自分のGitLabアカウントでクレカの登録が必要です。 これが原因でCIが失敗になりますが、失敗でも構いません。 課金はされないので、登録できる人はしてください。 CIの結果は、ビルド→パイプラインで見られます。 失敗しているときは、ここのログを確認してください。

ライセンス

Creative Commons — 表示 - 非営利 4.0 国際 — CC BY-NC 4.0


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