コンテンツにスキップ

本講義の基本的な情報

  • 講義日:毎週木曜日 4 限
  • 担当 :M1,M2のみんな

教科書と参考書

目標

CPUがどう動いているかのイメージを掴む。プログラマーとして知っておくべきCPUの構造を理解する。

輪講形式で教科書を読む。 各人が割り当てられた担当部分の講義資料を作成し、プレゼンを行う。 プレゼン中は随時質疑応答を行う。 プログラムがある場合は、それを動かす。

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

担当分け

担当箇所 ページ数 担当者 日程
第1章 CPUは如何にしてソフトウェアを高速に実行するのか
第2章 命令の密度を上げるさまざまな工夫
第3章 データ依存関係
第4章 分岐命令
第5章 キャッシュメモリ
第6章 仮想記憶
第7章 I/O
第8章 システムコール、例外、割り込み
第9章 マルチプロセッサ
第10章 キャッシュコヒーレンス制御
第11章 メモリ順序付け
第12章 不可分操作
第13章 高速なソフトウェアを書く際には何に注目すべきか

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

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

輪講資料の作り方

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

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

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

1
git clone git@gitlab.com:t3840/2025_sprint_m12_master_research1_reading_class_1

作業開始

リポジトリの 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