本輪講の基本的な情報
- 輪講日:毎週水曜日 5限
- 担当:B3のみんな
教科書と参考書
-
教科書:並行コンピューティング技法 -実践マルチコア/マルチスレッドプログラミング、Clay Breshears 著、千住 治郎 訳、2009年12月発行、O'Reilly Japan, Inc.発行
-
原著サイト: The Art of Concurrency: A Thread Monkey's Guide to Writing Parallel Applications, by Clay Breshears, Releas: May 2009, Publisher: O'Reilly Media, Inc.
目標
-
並列プログラミングの基本的な用語や考え方、逐次コードを並列化するイメージが出来るようになること
-
輪講形式で教科書を読む。 各人が割当られた担当部分の講義資料を作成し、プレゼンを行う。 プレゼン中は随時質疑応答を行う。
輪講内容
以下の順番で行きます。
- 第01回(宮島 敬明 ): 1章 速くしたい人、手を挙げて! & 5章 スレッドライブラリ
- 第02回(長谷川 和久): 2章 並行か非並行か?それが問題だ
- 第03回(横田 泰己 ): 3章 正当性の検証と性能測定
- 第04回(相吉 航太 ): 4章 マルチスレッドアプリケーション設計の8つのルール
- 第05回(常井 歩希 ): 6章 並列和とプリフィクススキャン
- 第06回(折原 冴保 ): 7章 MapReduce
- 第07回(菅井 仁志 ): 8章 ソート
- 第08回(山根 開登 ): 9章 サーチ
- 第09回(酒井 宏己 ): 10章 グラフアルゴリズム
本書を読むにあたって必要な知識(序章より)
- 専門用語は最小限ですが、基礎レベルのデータ構造やアルゴリズムの知識は前提としている
- C言語が読めること
- スレッドプログラミングの基本的な知識
著者の紹介
-
Clay Breshears: Intelに16年在籍したあとに、情報工学の大学教員に転職した人。
-
千住 治郎: 『Linux システムプログラミング』や『GBDハンドブック』などの低レイヤのプログラミング関連の書籍をたくさん翻訳している人。
輪講資料で注意すべきこと
- 自分が大切だと思った要点をまとめること
- 先輩の輪講資料を参考にして、図を描くことに注力すること
- 先輩の輪講資料を参考にしてもOKですが、コピペは禁止
- 教科書の全文をコピペする必要はない。例えば、教科書に載っている事例は、輪講資料に載せる必要は必ずしもない
- 分かりやすいように、要点を列挙したり、教科書の文章をまとめ直したりすること
- 時間内に説明できることを心がけること。例えば、教科書に載っている事例を、輪講中に説明する必要は必ずしもない
コードの説明をする時は、以下の流れで説明してね
- コードの挙動のイメージを説明する。ここでは、細かい説明はまだいらない
- コードの処理の大まかな説明をする。関数A->B->C
- 重要そうな関数の説明を詳細にする。関数Aの引数とか、処理の意味とか
輪講資料の作り方
資料を作成する時は、GitLabとMarkdownを使います。
具体的には、ゼミの資料ページをcloneして、自分の担当する章のbranchを作って、docsディレクトリの下の担当の章のディレクトリで作業をして、pushしてマージリクエストをする流れになります。
資料自体はMarkdownで書くこと。
GitLabプロジェクトへのメンバー追加とclone
みなさんを、輪講のGitLabプロジェクト
(CY2023 秋 B3 ゼミ2 - GitLab)
にみなさんをDeveloperとして登録します。
なので、GitLab.comのアカウントを私に教えてください。もし作っていない人は作ってね。
また、以下のコマンドでリポジトリをcloneしてください。
git clone git@gitlab.com:t3840/2023_autamn_b3_seminar2_reading_class.git
作業開始
リポジトリのdocsディレクトリの内部で作業をします。
また、自分の作業用ブランチを必ず切ってください。
main
ブランチは保護されているので、直接コミットができません。
たとえば、第2章を担当する人は、chapter2
ブランチを作成した後、./docs/chapter2/{chapter2.md,figures/}
以下で作業をしてください。
資料作成
cloneできたら資料を作ります。 今回は、markdownからwebページを作成する際には、mkdocsというものを使っています。 Linux環境でmkdocsをインストールして、やってみてください。1
- 数式を囲むときは、
$
ではなくて、$`と`$で囲むので注意してください。 - 画像のサイズ変更は
{: style="height:300px"}
とかやると変更できます。 - 一部使えない拡張があるかもしれません。
- mkdocsの環境構築がつらい、という人はGitLab.comのWebインターフェイスで書くこともできます。
資料作成をマージ
資料が完成したらpushして、
マージリクエストのページ
から自分のブランチをmain
ブランチにマージするリクエストを作成してください。
また、みやじまにSlackなどでマージしてほしい旨を連絡してください。
少しするとページが更新されるますので、できあがりを確認してください。
なお、コミットすると自動的にCIが走る設定ですが、自分のGitLabアカウントでクレカの登録が必要です。 これが原因でCIが失敗になりますが、失敗でも構いません。 課金はされないので、登録できる人はしてください。 CIの結果は、 プロジェクトページのCIの部分 で見られます。
-
https://zenn.dev/mebiusbox/articles/81d977a72cee01 ↩