タグ

並列処理に関するKazumi007のブックマーク (2)

  • スピンロックによる並列処理の高速化 - 豪鬼メモ

    C++標準のstd::shared_mutexを自前のスピンロックによる実装に置き換えたところ、スループットが激烈に向上した。その経緯と実装と性能評価について説明する。 Tkrzwはマルチスレッドによる並列処理性能を重視したデータベースライブラリである。ところで、GitHubにて、TkrzwのGoインターフェイスを6倍高速化するというアイデアを報告いただいた。ボトルネックがC++のコアライブラリ内のstd::shared_timed_mutexにあるということを突き止め、それをサードパーティの実装に置き換えると高速化するという話であった。Goだから高速化するというより、ファイル層でスレッド同士がブロックしやすいような条件でテストをすると差が出やすいということらしい。 そのサードパーティの実装とはobject_threadsafeというパッケージにあるcontention_free_shar

    スピンロックによる並列処理の高速化 - 豪鬼メモ
  • ソフトウェアトランザクショナルメモリ - Wikipedia

    計算機科学において、ソフトウェアトランザクショナルメモリ(英: software transactional memory, STM)は、データベーストランザクションに似た並行性制御機構であり、並列計算を行う際の共有メモリへのアクセス法である。この機構はロックベースの同期を用いた並行性制御の代替手段として機能し、ノンブロッキングな方法で実装される物もある。ここでいうトランザクションとは、共有メモリに対する一連の読み出しと書き込みを実行するコードを意味する。論理的にはこれらの読み出しと書き込みは、時間的なある一点で行われ、他のトランザクションからはその間の状態は見えない。トランザクションを行うためにハードウェアにサポートさせるアイデア(ハードウェアトランザクショナルメモリ)は、1986年に Tom Knight により論文と特許として出された。そのアイデアを普及させたのが Maurice H

  • 1