giantneco’s blog

技術メモ

システムパフォーマンス勉強会第8回

www.slideshare.net

社内で行ったシステムパフォーマンス勉強会の第8回。 下半期で終わらせるつもりだったので、一通り重要そうなところはよんだということでとりあえず終わり。

全体としてコードを書く時に知っておくと良いことも多々あったが、全体としてはパフォーマンスエンジニア向けの内容だった。 正直作った後のチューニングとか、機器選定とかインフラ周りとか自分はあまりやらんだろうし。

また社内でやった意味もあったと思う。メモリとかCPUとか低レイヤだが知っておいたほうがいい知識と、並列処理まわりのパフォーマンス関連の話が多少でも共有できたのは良かったと思う。 もうちょっと人を集められるとよかったが…

4月からはなにやろうか?

システムパフォーマンス勉強会第7回

社内で行っているシステムパフォーマンス勉強会のメモ。

今回は詳解システムパフォーマンスの 9 章ディスクを対象にしている。

勉強会中に出た話としては:

  • ディスクのモデル
    • シンプルディスクとキャッシングディスク
  • コンセプト
    • 計測時間
  • サービス時間、待ち時間、応答時間
  • キャッシング
  • ランダムI/OとシーケンシャルI/O
  • 飽和
    • ディスクデバイスの場合はOSのデバイス待機キューの平均長になる
  • 同期I/O と非同期I/O
  • アーキテクチャ
  • メソドロジ
    • ツールメソッド
      • 使用するツールは iostat, iotop, stap, perf など
    • USE メソッド
      • 使用率はデバイスがビジーだった時間
      • 飽和はI/Oがキューで待機している度合い
      • エラーはデバイスのエラー
      • 最初にエラーをチェックする
        • ディスクはエラーがあった場合に縮退運転するのが一般的なため

これまであまり知らなかった点がある一方で、 普段アプリを作る上で意識する点がそれほど多くなさそう。

最新コンパイラ構成技法 #1

色々復習したいことがあり、最新コンパイラ構成技法を読むことにした。

ここしばらくの作業だとコンパイラのフロントエンド部分しかしていないし、 さらに言うと機能追加が主な作業で既存のコードにちょくちょく修正を入れるだけで それほどコンパイラ屋らしい仕事はしてない。 (仕事としては一区切りついたので、この件についてもそのうちまとめたい)

かなり怪しい部分もあるので一通り読みたいところではある。

第1章では次のようにおおまかなコンパイルの流れについて説明している。

  • 字句解析
  • 構文解析
  • 意味動作
  • 意味解析
  • フレーム割り付け
  • 翻訳
  • 正準化
  • 命令選択
  • 制御フロー解析
  • データフロー解析
  • レジスタ割付け
  • コード生成

この分類だと、ここ最近の仕事ではいわゆるコンパイラフロントエンドと呼ばれる字句解析から意味解析までを中心に扱っていた。 また意味解析はあまり聞き慣れない用語で、構文解析に含まれるんじゃなかろうかとも思う。 フレーム割付けからは下は概念としては知っているが、実際に手を動かしたことがあったかどうか。 動くものが作れれば嬉しい。

実装に使う言語をどうしようかちょっと考え中。本は ML 使っているが、OCaml にするか、それともいっそ Haskell にしてみるか…

社内機械学習勉強会#5

www.slideshare.net

社内で行っている機械学習勉強会の自分担当回。 内容はタネ本にしている詳解ディープラーニングの4.5という狭い範囲なので楽だと思っていたが、 本に書いてある説明だとよくわからないことが多く結局元の論文読んでみるなどして結構詰まった。

数式のこの部分がどういう意図でそうなっているのか、というのは未だによくわからない部分がある、 あと指摘されたのは: - アイディアの元になったアナロジーを理解しておくと理解に役立つ - 二階微分は難しいので近似していることに注意

一応コードも書いて、手元では実験もしていたがあまり見せる機会がなかった。 MNISTを対象にしていると大抵それなりの精度が出るので、 この手法じゃないとうまく行かないデータとかがあったりするといいんだろうか。

システムパフォーマンス勉強会第 5 回

www.slideshare.net

  • 社内で行っているシステムパフォーマンス勉強会
  • 次回メモリの話なので、Meltdownの話も含めたらいいんじゃないかという話があった
  • 勉強会とは関係ないが、TLBのLookasideの意味することがよくわからなかったが、どうも「索引」という意味で使われているみたい

システムパフォーマンス勉強会第4回

www.slideshare.net

社内で行ったシステムパフォーマンス勉強会の第4回。 発表時はグリーンスレッドについて説明していたが、後々見ると的外れなことを書いていたのでその部分は削除した。