トップページへ戻る
過去の日記へ


予定


12月12日(火)

 最近、ずっとある問題に取り組んでて、ずっと式変形してるんだけど、何をやっても自分の思うように行かない。 ある量が厳密に保存する手法を考案したんだけど、その手法の近似になっているはずの手法でも、 ちゃんと保存量が保存されてしまう。それがなぜかまっっっったくわからない。保存しないはずのものが 保存している。ずっと近似的に保存しているのかと思って調べていたのだが、数値的には厳密に保存されてしまっている。 なぜだ?まったくわからん。


12月11日(月)

 長いこと詰まっていた理論の、最後の一本が通った気がする。まだ油断できないが、長かったな・・・。

 とある人の退職エントリを読んだ。そういえば自分もそういうの書いたな、と思って過去ログをあさってみた。 これまでに3回就職しているので2回退職しているのだが、その2回とも所謂「退職エントリ」を書いたようだな。

 3回目の退職エントリがなかなか書けませんね。苦戦中。


12月10日(日)

 NOP

 ある技術についてあまり知識のない人が、その技術について断定的なことを言って、 専門家たちに総ツッコミを受けているが、ますます意固地になる、という 過去幾千と繰り返された現象を見た。

 多くの場合において、間違いを指摘された時に謝意とともに修正する人は最初から断定意見を言わない。 そもそも断片的な知識から断定的な意見を言う人は、すでに頭のなかにストーリーができあがっており、 そのストーリーを補強する情報のみ摂取し、それ以外は(アレルギー反応のごとく)拒否する。 これは理屈ではなく、アレルギーに近いものなので、外からはもうどうしようもないわけだ。

 断片的な知識で何かいい加減なことを言って専門家からツッコミを受ける、というのは僕も何度も経験があるから 人のことは言えないんだけれども、それでも、そういう「ストーリー固定」の人の相手をするのは 費用対効果の観点からあまりよくないのではないかな・・・という気はする。


12月9日(土)

 NOP


12月8日(金)

 TwitterとかのSNSで、エンジニアが「転職します。こんなスキルあります」とかつぶやいたら採用のオファーが殺到するの見てると「いいなぁ」と思う。なんか僕も「こんなスキルあります」とか「これ作ったの僕です」みたいな「名刺スキル」「名刺プロダクト」「名刺論文」が欲しい・・・。

 ちょっと前に、「○○さんなら履歴書はいりません。GitHubアカウントで十分です」みたいなのあったけど、 研究者でも、この人なら応募書類とかいらないんじゃないかとか思う人、いるよなぁ・・・。


12月7日(木)

 なんか曰記の曜日がおかしいと思ってたら、1日から曜日を間違ってて、 それからずっとずれてた。今日は木曜日か。一日損した気分。

 昨日気がついちゃったんだけど、僕はMPIをまったくもってわかってない。本当に知らない。 もっと言えばOpenMPはMPIよりもっとわからない。C++もわからない。 SIMDはそれらよりはわかってるつもりだが、まだその知識は十分ではない。

 つまり、僕のコードはC++で書かれたMPI/OpenMPのハイブリッド並列で、ホットスポットはSIMD化しているけど、 ここに出てくる構成要素4つとも(C++,MPI,OpenMP,SIMD)全て僕はよくわかってない、ということが分かってしまった。

 分かっていないもので組んでるんだから、「僕の書いているコードは僕にわからないもの」になっていることになる。 なので「僕のコードがちゃんと動いている」というのは僕の幻想かもしれない。 確実にわかることは「そこにコードがある」ということだけだ。我思う故にコードあり。

 メールサーバの設定がどうしてもうまくいかないので、opensslで手で認証してみた。 SMTPに465で接続し、AUTH LOGINして、base64変換したユーザ名とパスワードを渡してみる・・・認証成功するなぁ・・・。 なんでクライアントはうまくいかないんだ・・・。

 こうしてtelnet芸はopenssl芸として引き継がれていくのであった。


12月6日(水)

 VimにALE(非同期Lintツール)をいれる。

$ mkdir -p ~/.vim/pack/git-plugins/start 
$ git clone https://github.com/w0rp/ale.git ~/.vim/pack/git-plugins/start/ale

おしまい。簡単。

 使用イメージはこんな感じ。リアルタイムにソースのチェックがされる。 コンパイラの警告なども全部表示されるので、未使用変数の指摘やprintfのフォーマットとの不一致も 全部リアルタイムに指摘してくる。エラーが赤、警告が黄色。なれないとちょっと鬱陶しいかなぁ・・・。

 上記の画面キャプチャはLICEcapで行った。 最初ttyrec使おうとしたが、Macではうまくインストールできなかった。

 DAOKOとのコラボシングルの「ステップアップLOVE」の岡村靖幸、 シティハンターのエンディングテーマ「SUPER GIRL」を書いた人か。すげー昔な気がしたけど、 SUPER GIRLが1988年で、ステップアップLOVEが2017年。20年近く前。確かにすげー昔だ・・・。


12月5日(火)

 なかなか調子が出ない。

 マルチスレッド環境下で、ローカル変数としてstd::vectorを使うと性能がブレる件、完全に理解した。 完全に理解した(大事なことなので二回書いた)。

 これ、何が起きるかというと「マルチスレッド環境で関数ローカルなstd::vectorを使うと、 マルチスレッド環境を抜けた後のstd::vector宣言部で遅くなる」というもの。わけわかんないでしょ? さらに環境変数で「速度優先」にすると、二倍遅くなる。メモリアロケーションは 「メモリ効率優先」と「速度優先」があるんだけど、「速度優先」の方が遅くなるんだよ。 わけわかんないでしょ!(若干キレ気味)。

 性能ブレについては試用期間中(2011年頃)から気づいたけど原因がわからなくて、ゴードン・ベルに挑戦する時に(2015年頃) 本腰を入れて調べて、性能ブレが「マルチスレッド環境下を抜けた後のシリアル実行部のstd::vectorにある」ことがわかって、 でもそれ以上はわからなかった。今回、とあるワーキンググループに参加することになって、この問題をもう一度本気で取り組んだ。 malloc動画も見た。 gdbで追いかけた。mallocのソースもstd::vectorのソースも読んだ。苦節1ヶ月、上記の観測事実の理由が全部説明できるようになった。 最初にこの問題を認識してから6年か・・・。

 詳しい内容はワーキンググループで話すけど、これ、公開できるのかなぁ。せっかく調べたから公開したいんだけど。


12月4日(月)

 記憶喪失。


12月3日(日)

 NOP


12月2日(土)

 NOP


12月1日(金)

 SubversionとGitの混在、諦めた。これは無理。 pushした後にrebaseみたいなことが多発しちゃうし、git-svnがsubmoduleを扱えないのが致命的。 メインプロジェクトはGit一本で行く。バックアップは別途考えよう。

 来月の萌芽的課題合同ワークショップのアブスト書いて提出した。 若い人中心とのことで、僕はおそらく老人の部類。単なる研究発表してもしょうがないと思うので、AVX2とかAVX-512の話をします。 若い人の役に立つといいんだけど。

 これまで技術系のアドベントカレンダーとか参加したことなかったんだけど、今年は4本も書いちゃった。 どれもレベルは低いし、特にChainerの記事は他のレベルが高すぎて僕だけ浮いてる気がしないでもないが、 まぁこういうのは書くことに意義がある、ということで。

 久しぶりに京にジョブ投げた。そろそろスパートかけていかないと。


トップページへ戻る