タグ

2013年10月17日のブックマーク (4件)

  • Lock-freeデータ構造で使用されるABA避けカウンタについて

    くまぎ @kumagi boost.atomicは64bit幅の時に上位16bitにカウンタを埋め込むっていうのが賛否あるみたいだけれど、反対意見の人はそのbit数まで必要なメモリを使うんでしょうか。48ビットあれば262テラバイトまで行けるはず…。 2011-11-04 22:48:06 やまさ @yamasa @kumagi 私はカウンタが16bitである点が気になりますね。たとえば3000クロックに1の割合でカウントアップされると仮定すると、16bitカウンタが一周するのに196Mサイクル、2GHzのCPUだと100ms弱です。 2011-11-05 00:13:25

    Lock-freeデータ構造で使用されるABA避けカウンタについて
  • HTMはメモリ管理の為に生まれてきたんだよ! ΩΩ<な、なんだってー - Software Transactional Memo

    HTMの第一人者にして、obstruction-freeやwait-freeなどの厳密な定義や、CAS命令の数学的な意義を証明し、The Art of Multiprocessor Programmingの著者で、ロックフリーでもSTMでも八面六臂の活躍をしているMaurice Herlihy先生が連名している最近の論文を流し読み。 Aleksandar Dragojevic, Maurice Herlihy, Yossi Lev, Mark Moir: On the power of hardware transactional memory to simplify memory management. PODC 2011: 99-108 「トランザクショナルメモリのパワーでメモリ管理を簡略化する」という感じ。 GCを使わない環境下においてメモリ管理は鬼門になってて、そのせいでC++のロ

    HTMはメモリ管理の為に生まれてきたんだよ! ΩΩ<な、なんだってー - Software Transactional Memo
  • Quiescent State Based ReclamationとRCUの話とHTMの話

    くまぎ @kumagi ブログ書いた 「userspace RCU(QSBR)の使い方と解説」 http://t.co/mvjPoU6M51 安全にロックフリーするための局所的なガベージコレクタとも言える。 Sadayuki Furuhashi @frsyuki @kumagi 全スレッドがrcu_quiescent_stateを定期的に呼ばないと成立しない気がしますが、データの読み出しを行わないスレッドとか、たまに行わなくなるスレッドは、どういうタイミングでrcu_quiescent_stateを呼んでいるんでしょ? くまぎ @kumagi @frsyuki ぉ、その欠点に気づいてしまうとはさすがですね。他のUserspaceRCUがみんなRW-Lockの代わりにも使える(しかも位置やシグネチャも一致するのでバイナリのリンク先を変えるだけで良い)一方でQSBRはアルゴリズム中に侵入的に変

    Quiescent State Based ReclamationとRCUの話とHTMの話
  • userspace RCU(QSBR)の使い方と解説 - くまメモ

    http://lttng.org/urcu|Userspace RCU という大変クールなプロジェクトがあります。 「RCU(リードコピーアップデート)をユーザースペースで行うもの」という事で、そこだけ聞くとなんのこっちゃという感じ。 リードコピーアップデートって何よ リードコピーアップデートそのものの正しい説明はWikipedia*1 でも読んでもらうとして、Wikipediaを読むのすら面倒な人の為に説明すると「みんなで共有してるデータをfree()しても良いタイミングを見極める技術」です。 特定の構造体をみんなで共有して書き換えたりしたいな → Lockとればよくね? すごく頻繁にアクセスするし読み出しの方が多いからLockはやだな → Read-Write Lockでよくね? Read-Write LockだとAtomic命令多すぎてパフォーマンスでないな → Lock無くしてデー

    userspace RCU(QSBR)の使い方と解説 - くまメモ