憂鬱な午後のひととき

7月19日_

『光の場, 電子の海―量子場理論への道』(吉田伸夫)

読みごたえがあった. 非常に面白かった. これはすばらしいテキスト. 大学生のとき, 量子力学はともかく, 第二量子化やゲージ理論のあたりから分からなくなった. 「生成・消滅演算子の作用する空間はなんですか」と聞いたら「後で構成する」みたいな返事で, 順序が逆ではと思ったのを思い出す.

数学のゲージ理論も勉強したが結局自分の中では素粒子理論とくっつかなかった.

ボーア, ハイゼンベルグ他多数の学者があれこれ悩みながらあーだこーだとやっていたのだった(当たり前だが). 論文に対する姿勢が人それぞれなのが楽しい. というか中性子の発見の前によくこんなこと考えていたな. 今もう一度教科書で勉強すればもっと分かるようになるかもしれない. お盆に教科書を持って帰ってみるか.

7月8日_

寝てる

朝早く起きて作業してから夕方ぐらいまで寝てる. 体が動かん. 土曜日出かけるとしんどいな.

7月7日_

IPA未踏キックオフ参加

いろ面白い発表を聞いた. 終わってから「かんだやぶそば」で久しぶりに蕎麦を食べた. この店は15年位前に来たな.

7月6日_

ライブ観察で解く脳皮質形成のメカニズム

いろんな分野の最先端の話を気軽に聞けてとてもいい.

ニューロンは互いにぶつからないように伸びたり縮んだりしながら隙間なく伸びていくそうな. うまいことできてる. 日本神経科学会 市民公開講座と大体似た内容だったもよう.

7月3日_

体がだるい

ここ1, 2週間おっそろしくだるくて辛い. しんどすぎる. 夏ばてかな.

7月2日_

Microsoft MVP

受賞できた. もう1年Visual Studio使える.

7月1日_

無理数時計

先日のtcfm meetupのLTで紹介されていたもの.

C++のfind使ってるけど遅いので「Boyer-Moore法など使えば速くなるかも」みたいな話がされていたけど, Intel系CPUでBM法使って速くなるケースってあまりないよなと思ってコードを見てみた.

C++に慣れてない人なのかな, stringを値渡ししていた.

まず中間結果を表示しないようにしてデフォルトで円周率でのベンチマーク. 時間がかかるので1/6の4時間だけやってみる.

オリジナル ; 45秒. CPUはi7-7700

const参照に変更 ; 14秒. これだけで3倍速くなった.

次に昔作ってたSSE4.2によるfindStrを使ってみる(cf SSE4.2の文字列処理命令の紹介).
use mie::findStr ; 2秒 ; (要xbyak)

7倍速くなった. オリジナルの21倍速. 24時間分計算しても12秒ちょいで出来た.

他も気になるところはあるけどまあこんな程度で.

# 実はmie::findStrの前にmemmem()を使ってみたけど速くならなかった. これはちょっと意外.

(加筆)ちょっとミスリーディングだった. memmemでしか確認してないのはうっかりだった. strstrを使うと14秒だった. つまりstd::findじゃなくてstrstrを使うべき. これはstd::findは単なるforループをコンパイラが頑張って最適化するのに対してstrstrは職人さんがアセンブラで実装してるから(標準関数だしね).


御意見は光成滋生<herumi@nifty.com>までお願いします