2011-01-01から1年間の記事一覧

Lock-free スナップショットの撮り方を説明してみる

マルチスレッドなどの環境下で時間経過によって勝手に変化する複数の変数を読みたい場面は多くあります。 しかしCPUは一度に一つしか値を読み書きできないので、簡単には出来ません。何故なら読んでるそばから値が変動してでたらめな値を読むかも知れないか…

Karesansuiを試す

この記事はカーネルVM Advent Calendarの12/21日分の記事です。前日分はid:rti7743さんのなのは完売 とある関数の電脳戦 (じょうほうせん とある関数のバトルプログラム) - お前の血は何色だ!! 4です。 Karesansuiって? ものすごく大雑把に言うとEC2のオー…

DSIRNLP勉強会で発表しました

@overlastさんのお誘いにより招待講演という形でDSIRNLP勉強会で発表をしました。IRともNLPとも関係のない話ですが、冬のLock-free祭りという題目でお腹いっぱい話せました。 発表資料はこちら 冬のLock free祭り safe View more presentations from Kumazak…

ノンブロッキングでマルチリーダーでserializableなSTM戦略

前回ノンブロッキングなSTMに付いて説明したのですが、トランザクション中での読み出しに関してはあまりに適当な説明しかしていなかったです。 そこをもう少しまともに説明しようと思います。 読み出しトランザクション? 複数の箇所の読み出しをatomicに行う…

LevelDB雑感

LevelDBが公開されて少し経ちました。 全体ではLog Structured Merge Treeという物を実装しているようですが詳しいところは知りません。実装を少し読んだのですが内部で使われているSkipListにいくつも思い切った設計がありました。(参考)togetter「LevelDB…

Non-blocking STMについて頑張って説明してみる

STMはソフトウェアトランザクショナルメモリの略です。 ↓とりあえずwikipedia http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E…

Pythonで使えるLRUを比較する

高速化の為にローカルにキャッシュを設けたい、でもメモリを無駄遣いする気はない、といった場合にLRU(Least Recentry Used)キャッシュを使うのはよくあるパターンです。 pythonでLRUキャッシュをさがすといくつか選択肢が見つかります。 $ pip search lru p…

PythonでThriftを通してHibari

HibariというErlangによる分散KVSがあるようです http://hibari.github.com/hibari-doc/hibari-app-developer-guide.ja.html 流行りのEventualConsistencyではなく、高い一貫性を守りつつスケールするという代物です。 インストールする http://hibari.githu…

MicrosoftAcademicSearchのすゝめ

Microsoft Academic Searchみなさん使ってますよね! Microsoft Academic Researchではありません。 研究する上で知らないわけにはいかない情報をまとめて知ることが出来るお役立ち検索サイトです。 http://academic.research.microsoft.com/ こんなトップペ…

深いこと考えずにpypyを揉む

pypyという大変coolなプロジェクトが有ります。「PythonそのものによるPython処理系」という、一見よくわからない取り組みですが驚く事にJITコンパイルを搭載しています。 お陰でC実装のPythonよりも高速に実行できるという驚きの処理系です。動かすには htt…

perfでぺろぺろしていたら詰まった

perfという大変優秀なプロファイラがあります。どう優秀かというと ・gprofと違い、-pgなど付けなくとも既存のバイナリに対して実行できます ・バイナリに対して実行できるという事はあらゆる言語の実行を観察できます sudo apt-get install linux-tools ま…