タグ

mutexに関するyassのブックマーク (4)

  • Comparing the performance of atomic, spinlock and mutex

    Comparing the performance of atomic, spinlock and mutex I was curious in benchmark of different synchronization mechanisms: atomic, spinlock, mutex. Without synchronization #include <future> #include <iostream> volatile int value = 0; int loop(bool inc, int limit) { std::cout << "Started " << inc << " " << limit << std::endl; for (int i = 0; i < limit; ++i) { if (inc) { ++value; } else { --value;

  • 最近のCPUの同期性能を調べてみた - maropuのメモ墓場

    この前調べごとをしているときにpthread_spinlockなるものがあることを知った. その時にpthread_mutex_lockとどちらを使えばいいんだろう?と疑問に思ったので少し調べてみた. 結果から言えば,たいていの場合はpthread_mutex_lockで良い,という安易な結果になってしまった. /*--- 以下詳細 ---*/ 一般論ではロック期間が短いときにspinlockのほうが良い、といわれるので期間が短いロックにおける簡単な性能評価を行った. 使ったプログラムは以下. https://github.com/maropu/lockbench 単一アドレス上に存在する値を同期的にインクリメントするだけの簡単なプログラム.評価指標はthread数(# of threads/x-axis)を変化させた場合の,clock()が返す単体tickあたりの平均インクリメント回数(

    最近のCPUの同期性能を調べてみた - maropuのメモ墓場
  • 並列プログラミングにおけるロックの効率的な使用 | iSUS

    この記事は、インテル® ソフトウェア・ネットワークに掲載されている「Using Locks Effectively in Parallel Programming (http://software.intel.com/en-us/articles/using-locks-effectively-in-parallel-programming-v4/)」の日語参考訳です。 ********************************************** 研究論文のタイトル: 並列プログラミングにおけるロックの効率的な使用 研究分野: 並列プログラミングにおけるロックの効率的な使用 チーム ID: TC2009028 著者名: Rishabh Rao 6th semester, Department of Information Science & Engineering (ri

    並列プログラミングにおけるロックの効率的な使用 | iSUS
    yass
    yass 2012/12/29
    " スピンロックの長所は、スレッドが実行状態のままとなるため、コンテキストスイッチとスレッドの再スケジューリングが必要ないことです。/ ロックが短時間だけ保持されると予想される場合、スピンロックは効率的 "
  • 京都収納棚:DBMの率直な壱実装 - mixi engineer blog

    飲み屋に行くとかなりの確率で荷物を忘れて帰るmikioです。さて、今回はここ2ヶ月ほどで急ピッチで開発した軽量データベースライブラリ「Kyoto Cabinet」について紹介します。 開発の動機 以前から軽量データベースライブラリとしてご好評いただいているTokyo Cabinetですが、DBMとして必要十分な機能と性能を備えていてなかなか良いものだと自負しております。ただ、開発を進める中でいくつか不満な点があったのも事実です。端的に言えば、全てC言語で記述して、標準ライブラリ(とzlib/bzip2)以外の機能は全て自作しているので、最適化がしやすい反面、メンテナンスの難易度が高くなってしまっているというのが不満です。 そこで、多少性能が悪くなってもいいから、私自身としてお気楽に開発およびメンテナンスができて、移植性も高いような実装を作ってみようと思い立ったのが昨年10月頃。様々な検討を

    京都収納棚:DBMの率直な壱実装 - mixi engineer blog
    yass
    yass 2010/01/13
    " TCやKCではPthread(POSIXスレッド)パッケージでマルチスレッドの排他制御を行っています。例えばデータベースファイルのサイズというメタデータを更新するためには、mutexでロックをかけて、更新を行って、ロックを解除
  • 1