K.Sasada's Home Page

Diary - 2008 April

研究日記

卯月

_29(Tue)

頭が痛い...。熱はないんだが。

_28(Mon)

合計5時間ミーティング。久々だな、こういうの。

_27(Sun)

(self, cref, class, default の visibility) の関係.

toplevel
(main, Object, Object, private)
class, module 文
(mod, mod を積む, mod, public)
module_eval ''
(mod, mod を積む, mod, public)
module_eval{}
(mod, 変更無し, mod, public)
instance_eval ''
(obj, <<obj を積む, <<obj, public)
instance_eval{}
(obj, 変更無し, <<obj, public)

1.9 ではいくつか出来ていない.ruby_class と ruby_cref を一緒にしていたため.


test-all TESTS=ruby 長すぎ.

_26(Sat)

今日はプチ開発合宿.

_25(Fri)

PLDI と SACSIS がかぶってる.どうしようかな.


電車で忘れ物.昨日は傘を忘れた.そして,買ってから飲み会にいって,外にでたら止んでた.

今日はちょっとやばいものを忘れたので,頑張って追跡.無事だった.よかった.

_あだむ@タマ(Sat Apr 26 08:36:08 +0900 2008)

 「夢」や「希望」かな?

_ささだ(Sat Apr 26 18:24:45 +0900 2008)

 なんだそりゃ!

_なかだ(Sun Apr 27 13:12:02 +0900 2008)

 「愛」でしょ。

_24(Thu)

沖縄からかえるとき,1時間ほど時間があったので,ちょっと首里城に行ってきた.本当に,ぶらっと歩いただけ.800円ということだったので,有料区間には入らなかった.モノレールの駅まではタクシーで戻った.


那覇空港 -> 羽田空港 -> 日吉 -> 京王・矢上キャンパス.遠いよ,矢上.

_23(Wed)

沖縄の御飯が食べたくてひとりで居酒屋に行ったんだが,やはり一人で行くものではないな.ゴーヤーチャンプルーを一年分くらい食べた気がする.


OS研.質問しようかなー,と思うことはだいたい偉い人が聞くので質問出来ない.


やっぱり練習しない発表は駄目だなぁ.質問に関しても,他にも色々言い方があった.うーん.

_とおる。(Thu Apr 24 03:51:21 +0900 2008)

 新宿ですけど、ひとりで沖縄のごはんが食べたいときはここがおすすめ。http://gourmet.livedoor.com/restaurant/3871/

_22(Tue)

19:55現在.20:35 発の沖縄行.知り合いがいるかと思ったら全然いないし.もっと沢山人がいるかとおもったら全然いなかった.やっぱり,23時に沖縄につくような旅程っておかしいよな.


沖縄はとても蒸し暑い.

モノレールも最終だった.

_21(Mon)

ううう,バッタリ orz


この職を辞めないといかんのかなぁ. 両立している人は沢山いるのに,なさけない.

忙しい訳じゃなくて,ただ単に手が動いていないだけなんだよな. 一つでてんぱってると,その他に関して頭が回らない.うーん.


とりあえず今週末はRHGをさぼってデバッグします orz

_19(Sat)

飲み過ぎた.


先月の額面と比べて,今月の給料の額面が少し上がっている.というか,入試手当って何? 俸給の調整額って何(何を調整するんだ)?

ぐぐったら出てきた.

(俸給の調整額) 第20条 俸給の月額が、職務の複雑、困難若しくは責任の度又は勤労の強度、勤務時間、勤労環境その他の勤労条件が同じ職務の級に属する他の職に比して著しく特殊な職に対し適当でないと認めるときは、その特殊性に基づき、適正な調整を行う。

ほぉ.

_18(Fri)

お弁当,サンドイッチが全品100円引き(土曜日まで)ということで,ついうっかりサンドイッチを買ってしまった.しかし,280円のBLTサンドしかないのに笑った.


SICP に,cons, car, cdr を lambda だけで作る,という話があって,その話をすっかり忘れていて,if と eq を使う方法しか思いつかなかった俺は負け組.


本郷には「教授会室」というものがあって驚いた.しかし,教授会というものに初めて出ましたが,なるほど,こういうものなのか,と感心した.かなりスパースだった気がするが,定員が自体が少ないんだろうな.


#!/usr/bin/ruby

LOGFILE = '/tmp/backup-pdumpfs.log'
ELOGFILE = '/tmp/backup-pdumpfs.elog'
BACKUPDIR = '/どっか'

entries = %q{
  /etc
  ... とかなんとか
}.split("\n").map{|line| line.strip}

open(LOGFILE, 'w'){|f| f.puts Time.now}

entries.each{|entry|
  next if entry.empty?
  dir, opt  = entry.split(/\s/, 2)
  backupdir = File.join(BACKUPDIR, dir)

  system("mkdir -p #{backupdir}")
  system("/usr/bin/pdumpfs #{opt} #{dir} #{backupdir} >> #{LOGFILE} 2>> #{ELOGFILE}")
  system("/home/ko1/bin/pdumpfs-clean --keep 3Y12M18W30D #{backupdir}")
}

バックアップを整理していたら,Maildir をバックアップ対象にしていなかったことを発見.衝撃の新事実だった.


"authorized_keys" の先頭には command=ls と書いてはいけないらしい.


バックアップ元からバックアップ先へ接続し,そこへ rsync で飛ばすようなものを書いた.


リモートバックアップは,凄い負荷で,とても時間がかかっているようだ.これを何個も使おうと思っていたんだけど,どうなるかな.とりあえずのメールのバックアップ専用として考えよう.

_17(Thu)

えー,これがー? というものが流行らなかったり,えー,これがー? というものが流行ったりするのは,見る目が足りないんだろうか.悪貨良貨とか,そういうものでもないんじゃないかと思う.


昨日,xbyak の話を聞いた.その前後の,最適化に関する考え方の話が大変面白かった.というか,やっぱふつーじゃないよなー.

xbyak は LLVM をバックエンドにすると色々と面白いんじゃないかと思った.というか,LLVM 自身がそういうものを持っているような気もするが,まだ調べていない.

_16(Wed)

安い航空券を買っていたら,急用が入ってしまった.今後は経費で買うときは,高い航空券を買え,ということなんだろうか.いや,そんな金はやっぱり無い気がする.

_sumii(Wed Apr 16 18:23:22 +0900 2008)

 急用の内容にもよりますが、旅費規程(と部局事務のレベル)によってはキャンセル代が出ることもあります。それで必要経費の期待値が減少するのであれば合理的な方法かと。

_ささだ(Thu Apr 17 21:57:04 +0900 2008)

 確かに.結局,チケットは買い換えることに.

_15(Tue)

大豆のお酒って飲んだこと無いなあ.


学生さんに,あと30分後くらいに,と言われて2時間くらい待っていたら,そいつはどっかに飲みに行っていたという.

サービス業はつらい.


夕飯どうしようかな.とりあえず,選ぶのが面倒くさいんだよな. お腹空いてるんだけど.


凄く腹が減ってきた.ここで我慢すればやせられるんだろうか.

_い(Wed Apr 16 01:34:54 +0900 2008)

 アサヒとかキリンの発泡酒(か雑種)は大豆原料だった気が...

_(Wed Apr 16 13:03:22 +0900 2008)

 本当にすみませんでしたm(_ _)m

_14(Mon)

さすがに今日は帰らないとまずい気がするが,どうにも困った.


困ったので LLVM を見る.

http://llvm.org/docs/LangRef.html

色々すっ飛ばして命令体系を見る.

  • Terminator Instructions
    • ret はいいとして,br は変態だな.switch....なんか,凄いな.
    • invoke って.こんな高級な命令があるのか.下手に invoke 使えないよなぁ.
    • unwind って何するんだ.どこまで unwind するのかわからない.
    • unreachable 命令じゃないだろ,これ
  • Binary Operations
    • あまり面白くない.
  • Bitwise Binary Operations
    • これも.
  • Vector Operations
    • これは面白いな.
    • extractelement, insertelement, shufflevector
    • ... え,これで終わり? 計算はどうするの?
  • Memory Access and Addressing Operations
    • malloc ちょっ うざ OS 依存なのか?
    • ほんとに使うのかよー.確保できなかったらどうするんだろ.
  • Conversion Operations
    • trunc はて? 値の扱いを見ないとわからないな.
    • zext はて?
    • sext はて?
    • fptoui いいなぁ,これは.
  • Other Operations
    • icmp なんかリッチだな.
    • phi なんと,φ関数かよ.えーー.こういうのは人間が使う命令なのか?
    • select は conditional move か.
    • call は invoke と何が違うんだ.
    • getresult ってなんか凄いな.うーん,どう使うんだ.

intrinsic functions も面白い.ざっと見ただけ.


	pushl	%ebp
	movl	%esp, %ebp
	popl	%ebp
	ret

こんな命令列が出てきたんだけど,何の意味があるのかしらん? -fomit-frame-pointer で消えた.消さないんだなあ.gcc 4.1.2.


Continuation Fest,人来すぎ.知った顔も多かった.知らない顔も多かった.oleg さんにロシアの計算機の話を聞いた.面白いなあ.pure な VM だと,部分継続の永続化も容易そうだなぁ,という話も聞いた.

とてもいい経験になりました.でも,英語は全然出来ないのは困ったもんだ.使う機会を増やすしかないんだろうか.


結局3時間半.お疲れ様でした.楽しくて,私はあんまり疲れなかったけど.


要は,使いようなんだよなあ.うまくなりたい.

_13(Sun)

「先生と呼ばれるほどの,〜」で検索すると,色々と面白い記事がヒットした.

とにかく,先生と呼ばれていい気にならないようにしよう.できれば,呼んで欲しくないのだけれど.ただ,呼ばれて恥ずかしくない態度でいないといけないというのは自覚しなければ.それは,呼ばれるということに関係ないのだけれど.


測定の話.

私がベンチマークをとるときには,「N回試行して一番速い結果」を採用します.計算機での評価は,実行時間が(評価対象の結果+擾乱要因)である(ことが多い)からです.

ただし,モノによってはそんなに単純じゃないことがあるので,面倒なこともある.キャッシュ云々は単純なときもあれば,単純じゃないことも.複雑な系になれば,それにともないモデルも変わる.

分散系の評価は,どんなモデルをたてるんだろうなぁ?


ただ,あまりかわんないので細かいことを気にしないというのが最善手かもしれない.


Scheme の書き方を忘れた.うーむ.使わないとさびるな.Ruby の書き方ももうすぐ忘れてしまうかもしれない.


http://www.adm.u-tokyo.ac.jp/office/anzeneisei/admin/smoke.html

なんか大変だな.平木先生とかどうするんだろう.


いかんなぁ.現実逃避し過ぎ.もう学生じゃないんだから.


多少遅くてもちゃんと動く処理系がいいよなぁ.やっぱり.


今日の発表は EURUKO より駄目だったなぁ.せっかくしゃべらせてもらったのに申し訳ない.

しかし,大人数だったな.

_12(Sat)

洗濯と掃除.色々とたまってる.


牛乳を出しっぱなしにして寝てしまった orz


rkhunter が「こんな OS 知らん」と怒るのは,rkhunter --update すれば解決した.気づくまで大変.しかも,cron.weekly で update するようになってるし.あと一日辛抱が足りなかった.


右腕が上がらない.


Cocoa 勉強会.全然 Cocoa を知らなかったんだけど,DTrace のお話を伺えたのは大変助かった.また,他の話も楽しかった.ぜひまた使ってください(俺の都合がいいときに).


「これをもっと知るには」「これは公開されている情報か」など,メタな質問をするのは俺だけだった気がするんだけど,普通と見方が違うってことなんだろうか.


最近,本当に手が遅い.何かと理由を付けて手を動かさない.動かさなきゃ動かさなきゃ動かさなきゃ.


しまった.勉強会で言い忘れてた.創造情報はいいところだよー,という宣伝をしてもらうことを.うん.

あれ,今年の入試案内がまだ出てないな.


また iPod nano を納めるポケットが無い.ガーン.

_11(Fri)

お腹が痛い....牛乳はまずかったか.


higepon さんとかと話していて,なんか話が通じない.と,思ったら YARV なんかでやっていたことについて,再発見してる感じ.論文が全然読まれていない.公開していないからしょうがないか.研究者として,色々と問題があるよな.

どうしたもんかな.


話としては,命令融合は早すぎる最適化ではないか,とかそんな話.

  • Gaku さんは,もっと色々なアプリで評価を取らないといけないから,まだ早い
  • 私は,さっさとやってみて,どれくらい高速化するか見てみれば

という感じ.どちらも必要で,最終的にどちらもやることになる.あとは,優先度付けの問題.私の懸念としては,「実はやってみたけど全然高速化しなかった」とか「やればどれくらい速くなる」とかなんとか,あたりを付けるために,さっさと fib に対応するものだけでもやっておけば,という意見かな.それを実際に取り込むかどうかは別の話.

ちなみに,融合操作の最終形はベーシックブロックを1命令にする,という話ですが,それは AOT コンパイラにも関わってくるような話になります.可能であれば,インライン化すると,それにさらに幅が出ます.


YARV では,命令の頻度について,プロファイルを取れるようにしています.オペランドの頻度については,各命令ごとに表を,命令の連続度についてはバイグラムを用いています.

YARV では,さらに融合操作を自動化する処理が入っています.命令 A と命令オペランド op1 が頻出している場合には,プログラマが「A_op1」という命令を作って,というと,自動的に出来る,という具合です.命令 B と命令 C が連続して現れている場合は「B_C という命令を作って」と言っておくと勝手に作ってくれます.

コンパイラは,融合命令を知っていて,命令列中にそのパターンが現れると勝手に融合命令に置き換えます.

YARV では,当然のことながら,沢山のベンチマークセットを用意しています.ベンチマークセットは,コマンド一発ですべてのベンチマークを実行できるようにしています.また,評価対象の処理系を指定することで,それらに関してもちゃんと測るようにしています.

さて,これらをあわせると,「実行したいプログラム」に関して,適切な融合操作を行った命令セット一覧を自動的に生成することが出来るかもしれないわけですね.まだ,そこまでちゃんとしたものを作っていないのですが.

なんか,数年前の日記に書いた気がする話ですが.俺も成長できてないな....


処理系の最適化の場合,目的に応じたベンチマークは必須になります.fib だけで議論していたので,「とりあえず fib は最強の処理系」という目的も,趣味的にはとてもアリだと思っていたし,とりあえずの目標がそれだと思っていたんだけど,実はそうじゃない,と聞いてびっくりした.

YARV のベンチマークには数値・記号処理が多いと言われています.それは,Ruby が元来苦手としてきた種類のプログラムがそれらだったからで,YARV の主目的がそこにあったからです.逆に言うと,いわゆる Ruby に向いたプログラムと言われてきたものは,「遅くならなければいっかー,早くなったらめっけもん」という姿勢だったというわけです.いや,ベースは速くなるので,やっぱり一般アプリも速くなって欲しかったですが.

ウェブアプリケーションについて高速化を狙うなら,文字列処理なんかを重点的に,たとえば oniguruma に対してなんらかの高速化ハックを行う方が有利だったりするかもしれません,が真面目に調べていないのでなんとも.とりあえず,String 周りの再点検のほうが直接的には効くのかも.


まぁ,なんというか,色々やってみて,何がどれくらいどんなものであるのか,あたりをつけておく,つけるためにどうすればよいか考察する,等々は必要なことというか,shiro さんのいう基礎体力なのかなと思います.


やらないで悩むよりもやって悩んだ方が早いことがあるというか,私が悩んでやらないことが多いので,その自戒もあるんだよな.このあたりは,限りある人生のスケジューリング問題になるんですが.


ちなみに,融合命令に血道を上げるよりは,もっと別のところがボトルネックなのが Ruby.Scheme はそうでもないと思う.いや,もちろん問題領域によりますが.

参考文献:


うまくスルーする力が無い.どうやって学べばいいんだろうなぁ.竹内先生は,その点すばらしい.


メールの対応が出来ていない....なんか,「これについてどうなってんの」ということがあれば,お手数ですが再度メールするなりしていただければと思います.ほんと,処理能力が低い.


冬学期から授業をすることになるらしいのだけれど,だいたい5人くらいを相手にするつもりだった.んだけれど,どうなるんだろうな.何しよう.つーか,とても勉強しないとおっつかない.やっぱYARVだけにしておけばよかったかも orz


今週は洗たくできなかったから,着る服があまりない.今日早く帰ればなんとかなるか?


あとは説得力というか,なんというか.いつもはあまり必要と感じないのだけれど,時々,どうしてもそういうのが.積み重ねだとは思うのだけれど,私は薄っぺらいんだよな.積み重ねないと.どうやって?


うお,higepon さん効果すげぇ.いつもは1日に3人(イメージ)くらいしか読まない日記に,なんか凄い足跡.

今後は higepon さんに粘着すれば,俺もあるふぁぶろがーのなかまいり!(ねーよ)

(論文書けよ)


なんかセンス悪いよな.自分もそう思われてたらどうしよう.

_斎藤ただし(Fri Apr 11 18:46:42 +0900 2008)

全力でスルーしてください…。誰でもワンクリックで読める上記二論文ヘのリンク:

Schemeインタプリタにおける仮想マシンアーキテクチャの最適化 http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-TPRO4413006

Ruby用仮想マシンYARVの実装と評価 http://fw8.bookpark.ne.jp/cm/ipsj/search.asp?flag=6&keyword=IPSJ-TPRO4702006

_ささだ(Fri Apr 11 19:18:42 +0900 2008)

 なんと,もう無料で読めるんだな.

_斎藤(Fri Apr 11 22:34:08 +0900 2008)

 タダで勉強させて頂いてます m(_ _)m

_ささだ(Fri Apr 11 22:59:55 +0900 2008)

 君は図書館があるんじゃ!

_斎藤(Sat Apr 12 22:54:44 +0900 2008)

 一時期(今も)それがないもので m(_ _)m m(_ _)m

_10(Thu)

今日も大失敗(寝ぼう).

_9(Wed)

大失敗をしてしまった.メールの送信先を間違えてしまった.

こういうミスを機械的に防ぐにはどうすればいいんだろうな.yoosee さんに,企業での工夫を聞いた.凄い,と思ったが大学への導入はちょっと難しいと思った.

メールの宛先欄に顔写真を載せるようなインターフェースはどうだろうか.知らない人でない限り,見ればわかりそうな気がする.

_斎藤ただし(Thu Apr 10 16:40:12 +0900 2008)

 X-Face?

_ささだ(Fri Apr 11 09:05:26 +0900 2008)

 X-Face は顔写真を入手する手段で,ここで挙げているのは送信時のインターフェース.

_斎藤ただし(Fri Apr 11 18:33:10 +0900 2008)

 なるほど。

_8(Tue)

しんでるなあ.


OS研のホテル,twin から single へ変更.


http://japan.internet.com/column/developer/20080408/26.html

RubyはJavaより単純でJavaより高速です。

最近の Ruby は進んでるんだなあ.

_みずしま(Tue Apr 08 19:41:47 +0900 2008)

 ひょっとして誤訳なんじゃ…とか思って原文確かめてみたんですが、「Ruby is simpler than Java and faster than Java too.」となっていて、そのまんまでした。

_7(Mon)

土日,ずーーーっと寝ていたおかげか,体調がマシになった.おなかの具合はあまり変わらないのだけれど.

今週は頑張って早く帰ろう.

しかし,やっぱり実家に帰れば良かったような気もする.

_6(Sun)

熱下がった.良かった良かった.


iTunes をアップデートしようとしたら,Safari がインストールされていた.何がおこって(略).

いや本当に驚いた.PDF 閲覧が速くなるかと期待したら,acrobat が起動してがっかり.

_5(Sat)

http://consultant.en-japan.com/html/pr/all/job5/?

年収2000万円貰えたら,今の給料だと1年働けば3年は遊んで暮らせる計算に.3年入院だとしゃれにならんが.一体どんな悪いことをするんだろう.


最近研究してないなぁ.とても駄目すぎる.


何のためにここに居るのかわからなくなってくるな.ただ単にやる気がないだけか.


マジレスすると今の待遇はとても恵まれていると思う.給料以上の部分で.自分のやりたいことを認められているのだから.

しかし,http://alfalfa.livedoor.biz/archives/51267774.html こういうの見ると色々凄いな.


とか,熱で朦朧としながら.寒すぎる.寝たい.RHG のほう,行きたかったんだけど,治るだろうか.

_4(Fri)

しっかり終電を逃しました.なんというか,頭悪いなぁ orz

_3(Thu)

帰宅して4回洗濯した.


結局ワイシャツがないんだけど,どうしたものだか.

_1(Tue)

そろそろ家に帰る.

Sasada Koichi / sasada@namikilab.tuat.ac.jp
$Date: 2003/04/28 10:27:51 $