SlideShare a Scribd company logo
キャッシュコヒーレントに囚われ 
ない並列カウンタ達 
#DSIRLNP 
@kumagi
この発表について 
Data Structure!
キャッシュ? 
• CPUが高速化のためにメモリの一部を切り出 
して複製している物
キャッシュ 
CPUコア 
L1キャッシュ 
L2キャッシュ 
L3キャッシュ 
メモリ
All programmer should know 
• L1 キャッシュ参照......................... 0.5 ns 
• 分岐予測ミス............................ 5 ns 
• L2 キャッシュ参照........................... 7 ns 
• Mutex lock/unlock ........................... 25 ns 
• Main memory 参照...................... 100 ns
キャッシュ 
メモリ
キャッシュコヒーレント? 
• 複数のCPUコアから見えるメモリは同一でな 
いと困る 
• つまり複数のCPUコアのキャッシュは常に最 
新の情報を保持してないと困る 
• だが常に最新の情報を全部のキャッシュに全 
て書き続けるのは速度が出ないので、まるで 
本当に全部のキャッシュにすべて書いてるか 
のように見せかけながらパフォーマンスを出 
す必要がある
キャッシュ 
メモリ 
2つのコアで 
L2キャッシュを共有
キャッシュコヒーレント 
• 複数のL1キャッシュ間で一貫したデータを扱うため 
のキャッシュ間のプロトコル 
• Intel系CPUはMESIFプロトコル 
• AMD系CPUはMOESIプロトコル 
Core1 Core2 
L1キャッシュコヒーレント 
L1キャッシュ 
L2キャッシュ
キャッシュコヒーレントプロトコル 
• キャッシュラインが取る状態名の頭文字が由来 
– Modified: メモリよりもキャッシュの方が新しい(書き換えた) 
– Exclusive: メモリとキャッシュが同一であり、他のコアはこの 
キャッシュラインを持っていない 
– Shared: メモリとキャッシュが同一であり、他のコアもこの 
キャッシュラインを複製している 
– Invalid: 正しいキャッシュを持っていないので読むな 
– Owned: 俺がメモリだ(Shared可能なModified) 
– Forward: Sharedのボス。アクセスする際にはこいつに伺え
L1キャッシュの状態 
• 1ライン64byteで、アドレスの下位バイトが同 
じ物ごとに8wayずつ32KBまで持っている 
• 1ラインごとにMESIFのどれかのステートを 
持っている 
invalid 
shared 
exclusive 
modified 
64Byte 
全部のラインが独立して 
それぞれステートが遷移する 
32KB 
forward
キャッシュコヒーレントプロトコル 
• MESI(F)プロトコルはModifiedなデータを他のコアが読み出す際 
にメモリに書き戻す 
• Sharedなデータを書き換える時にはInvalidation要求をブロード 
キャストするためトラフィックが混む 
Modified 
Exclusive 
共有を要求 
書き換えた 
(1個下のメモリへアクセス) 
新規に読み出した 
Shared Invalid 
Invalidation要求が来た 
他のコアから貰った
キャッシュを汚す事はギルティ 
• 他のスレッドから繰り返し読む値を書き換え続けると、キャッ 
シュラインのステートはModifiedとSharedの間を行ったりき 
たりすることになる。これは激しいトラフィックを起こす。 
• 更にはModifiedからSharedになる度に下層のメモリに書き 
込まなくてはならない 
うぉー! うぉー! 
Core1 Core2 
L1キャッシュL1キャッシュ 
L2キャッシュ 
write 
read 
ぎゃー!! 
write 
Invalidate
キャッシュを汚す事はギルティ 
共有/localデータから 
Readした場合の速度 
localデータにWrite 
した場合の速度 
共有データにWrite 
した場合の速度 
http://www.1024cores.net/home/lock-free-algorithms/first-things-first から
まったくスケール 
しない!!!! 
http://www.1024cores.net/home/lock-free-algorithms/first-things-first から
NUMAでのキャッシュコヒーレント 
• 最近のサーバはマルチソケットCPUがよく使 
われる
cc-NUMA 
• 複数のCPUソケットから同一のメモリ空間が 
見えて欲しい(まるでマルチコアCPUのように) 
• キャッシュ衝突するとQPIアクセスの刑 
– かつては拷問にも使われていたQPI経由のキャッ 
シュコヒーレント
All programmer should know 
• L1 キャッシュ参照......................... 0.5 ns 
• 分岐予測ミス............................ 5 ns 
• L2 キャッシュ参照........................... 7 ns 
• Mutex lock/unlock ........................... 25 ns 
• Main memory 参照...................... 100 ns 
• QPI経由で隣のメモリ参照.............. 200 ns~
キャッシュ 
隣のCPUのキャッシュは 
自分のメインメモリよりも遠い!!! 
メモリメモリ
cc-NUMAの時代 
• キャッシュ衝突をとにかく減らすアルゴリズム 
が望まれている
Combining Tree 
• 以下のインタフェースを備えるカウンタ 
– add(int a):数値aを足す 
– read():現在の数値を読む 
• ただしスケーラブル! 
擬似コード 
class counter { 
public: 
counter() : cnt_(0) {} 
void add(int a) { cnt_ += a; } 
int read() const { return cnt_; } 
private: 
int cnt_; 
};
Combining Tree 
• 1つのキャッシュラインを取り合うのが2スレッ 
ドまでになるようトーナメントを構成する 
• トーナメントでぶつかったスレッドは、先に来 
たスレッドに後に来たスレッドが値を託して待 
つ 
• キャッシュコヒーレントトラフィックを劇的に削 
減!
Combining Tree 
• トーナメントのてっぺんを読めば値が読める 
root
Combining Treeアルゴリズム 
+1 +1 +2 +3 +2 +1
Combining Treeアルゴリズム 
+1 +1 +2 +3 +2 +1
Combining Treeアルゴリズム 
+1 
待 
+3 
+3 
+3 
待
Combining Treeアルゴリズム 
+4 
待 
待 
+6 
待 
待
Combining Treeアルゴリズム 
+10 
待 
待 
待 
待 
待
Combining Treeアルゴリズム 
• 結合法則を用いて計算の合成を行う 
• x + 1 + 1 + 2 + 3 + 2 + 1 
• x + 1 + (1 + 2) + 3 + (2 + 1) 
• x + (1 + 3) + (3 + 3) 
• x + (4 + 6) 
• x + 10
詳細なアルゴリズム 
• 各ノードはIdle, First, Second, Rootのどれかの 
状態を持つ 
– Idle: どのスレッドも触ってない 
– First: 最初のスレッドが既に触った 
– Second: 二つ目のスレッドが触った 
– Root: てっぺん(遷移しない) 
• 更にノードはロックを2つ持っている
Combining Tree 
• 初めに木を登りながらステートの変更を行う 
– Idleな物をFirstにしていく 
– ロックを取ってステートを変えて即アンロック 
Root 
First 
First
Combining Tree 
• 初めに木を登りながらステートの決定を行う 
– Firstを見たらSecondにして第二ロックを獲得 
• こっちのロックはすぐには手放さない 
Root 
First 
Second 
First First 
Second
Combining Tree 
• 初めに木を登りながらステートの決定を行う 
– Secondにしたらそこで木を登るの停止 
Root 
First 
Second 
First 
Second
Combining Tree 
• 木を登るのをやめた所で、自分の過去の経 
路の第二ロックを獲得し直しながら値を清算 
Root 
First 
Second 
First 
Second
Combining Tree 
• 木を登るのをやめた所で、自分の過去の経 
路の第二ロックを獲得し直しながら値を清算 
Root 
First 
Second 
+1 +2 
First 
Second
Combining Tree 
• 清算しきった値を最初に自分が登った一番高 
い所に書き込んでアンロックするのが基本戦 
略 
Root 
First 
Second 
First 
+3 
Second
Combining Tree 
• 清算しきった値を最初に自分が登った一番高 
い所に書き込んでアンロック 
Root 
+3 
SFeicrosntd 
Second 
Second 
First
Combining Tree 
• Secondのステートを見たら他のスレッドが清 
算中なのでそれを待つ(第二ロック獲得待ち) 
Root 
Lock! 
SFeicrosntd 
Second 
Second 
Lock! 
First
Combining Tree 
• 清算し終わった値を持って再帰的に自分の 
値として生産する 
Root 
SFeicrosntd 
Second 
Second 
First 
+4
Combining Tree 
• 平均して木の深さnに対して2*n回のロックと 
アンロックを使うことになる 
– 大丈夫なの・・・? 
• Mutex lock/unlock ........................... 25 ns 
• QPI経由で隣のメモリ参照.............. 200 ns~ 
キャッシュ衝突のペナルティを 
考えると余裕でペイする
Combining Tree 
• 衝突がない場合でも2*n回のロック・アンロッ 
ク 
• レイテンシという点において非常に悪い 
– 改良として1ノードに3スレッド以上ぶら下げて木 
の深さを減らすパターンもあるが、複雑さがマッ 
ハでレイテンシはむしろ悪化
Combining Funnel 
• Funnel = 上戸 
• 乱数ベースで負荷を低減 
– アルゴリズムはEliminationに近い 
– Eliminationと組み合わせることも可能 
Counter
Combining Funnel 
• 配列の中のランダムな箇所にCAS命令で自分 
のタスクを置く 
• ランダム時間の待機後、CASでタスクを引き上 
げて次のレイヤーに進む(ここが上戸っぽい) 
+2 +1
Combining Funnel 
• 置こうと思った場所に先客が居たらそいつと 
操作を結合して次のレイヤーに進む 
+3したい 
+2 +1
Combining Funnel 
• 置こうと思った場所に先客が居たらそいつと 
操作を結合して次のレイヤーに進む 
+5せざるを得ない! 
待+1
Combining Funnel 
• 置こうと思った場所に先客が居たらそいつと 
操作を結合して次のレイヤーに進む 
あっ待てって言われてる 
待+1 
+5 
Counter
Combining Funnel 
• カウンタのレイヤーまで到達したらそいつに 
Compare And Swap 
• 感動的に簡単しかも速い
Combining Funnel 
Combining Funnels A Dynamic Approach To Software Combining より
SNZI 
• 数を数えようとするから残念なことになるん 
や!諦めろ! 
– ゼロかどうか分かればええ! 
• Scalable-Non-Zero-Indicatorの略でSNZI 
– pronounced "snazzy" : (和訳)粋な、おしゃれな、 
優雅な、エレガントな、格好いい
SNZIのセマンティクス 
• 数字が読めないカウンタ 
• これをスケーラブルにする 
擬似コード 
class snzi { 
public: 
counter() : cnt_(0) {} 
void inc() { cnt_ += 1; } 
void dec() { cnt_ -= 1; } 
bool is_zero() const { 
return cnt_ == 0; 
} 
private: 
int cnt_; 
};
SNZIの実装 
• キャッシュラインで木構造を作る 
0 
0 0 
ここが0かどうかを 
見れば良い 
0 0 0 0
SNZIの実装 
• 木の各ノードが1CPU 
– 上から数えてi番目のノードはi番目のCPUに割当 
0 
1 
0 1 
0 
01 0 0 0 
root以外を0から1に増やすときには1個上のノード 
の値をインクリメントする 
rootは常に普通にインクリメントするだけ
SNZIの実装 
• 木の各ノードが1CPU 
– 上から数えてi番目のノードはi番目のCPUに割当 
0 
1 
0 1 
0 
01 0 0 0 
root以外を1から0に減らすときには1個上のノード 
の値をデクリメントする 
rootは常に普通にデクリメントするだけ
SNZIの実装 
• 木の各ノードが1CPU 
– 上から数えてi番目のノードはi番目のCPUに割当 
0 
1 
0 2 
1 
0 
01 0 0 0 
それ以外のときは普通にインクリメントするだけ 
=上のノードのキャッシュラインに触れずに済む
SNZI 
• すごくスケールする!!! 
SNZI: Scalable NonZero Indicatorsより
しかもロックフリー!!
SNZIの実装 
• 厳密には複数のスレッドが同一のノードにア 
クセスしに来た際に0⇔1周りで細かい調停が 
必要 
0から1のときは、先に自分の箇所の値を1/2という値にしてから上のノードをインクリメン 
トしにいき、そのあとで1/2を1にCASを試みる。もし上のノードのインクリメントに成功した 
後に1/2→1のCASに失敗したら上のノードをデクリメントしておく 
• デクリメントの数はその前に行われたインクリ 
メントの数を越えては行けない(Read-Write 
ロックなどに用いるには充分)
SkySTMへの適用 
What kinds of applications can benefit from Transactional Memory? より
時間が無くて書けなかったこと 
• STMの高速化のためにSNZIが必要とかいっと 
きながら実際にSNZIをRead-Write-Lockに用い 
たSkySTMは割とあっさりTLRWに負けている 
– TLRWはByteLockっていうまた別のロックプロトコ 
ルを用いてる(こっちの話はまた今度) 
• SNZIのためにHTMを用いたやつがあって凄い 
速い 
– HTMの使い方についてもまた今度
HTM+SNZI 
HTM 
の力 
What kinds of applications can benefit from Transactional Memory? より

More Related Content

What's hot

できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
Preferred Networks
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
Hibiki Yamashiro
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
terurou
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
Takuya Akiba
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造Takuya Akiba
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)Takeshi Yamamuro
 
Raft
RaftRaft
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法Takuya Akiba
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Hiro H.
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
 
Lockfree Queue
Lockfree QueueLockfree Queue
Lockfree Queue
Kumazaki Hiroki
 
Topological sort
Topological sortTopological sort
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
Gosuke Miyashita
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
Yoshitaka Kawashima
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話Yoshinori Matsunobu
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
 

What's hot (20)

できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
動的なILの生成と編集
動的なILの生成と編集動的なILの生成と編集
動的なILの生成と編集
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造プログラミングコンテストでのデータ構造
プログラミングコンテストでのデータ構造
 
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
LLVMで遊ぶ(整数圧縮とか、x86向けの自動ベクトル化とか)
 
Raft
RaftRaft
Raft
 
プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法プログラミングコンテストでの動的計画法
プログラミングコンテストでの動的計画法
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
 
Lockfree Queue
Lockfree QueueLockfree Queue
Lockfree Queue
 
Topological sort
Topological sortTopological sort
Topological sort
 
イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化イベント駆動プログラミングとI/O多重化
イベント駆動プログラミングとI/O多重化
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
Tackling Complexity
Tackling ComplexityTackling Complexity
Tackling Complexity
 
MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話MHA for MySQLとDeNAのオープンソースの話
MHA for MySQLとDeNAのオープンソースの話
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
 

Viewers also liked

トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
 
Cache obliviousの話
Cache obliviousの話Cache obliviousの話
Cache obliviousの話
Kumazaki Hiroki
 
Lockfree Priority Queue
Lockfree Priority QueueLockfree Priority Queue
Lockfree Priority Queue
Kumazaki Hiroki
 
Jubatus hackathon2
Jubatus hackathon2Jubatus hackathon2
Jubatus hackathon2
Kumazaki Hiroki
 
よくわかるHopscotch hashing
よくわかるHopscotch hashingよくわかるHopscotch hashing
よくわかるHopscotch hashingKumazaki Hiroki
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
Kumazaki Hiroki
 
JITコンパイルはじめの一歩
JITコンパイルはじめの一歩JITコンパイルはじめの一歩
JITコンパイルはじめの一歩
Koichi Sakata
 
What is jubatus? How it works for you?
What is jubatus? How it works for you?What is jubatus? How it works for you?
What is jubatus? How it works for you?Kumazaki Hiroki
 
Bloom filter
Bloom filterBloom filter
Bloom filter
Kumazaki Hiroki
 
AWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップ
AWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップAWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップ
AWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップ
真吾 吉田
 
受託開発時におけるAWSクラウド活用術
受託開発時におけるAWSクラウド活用術受託開発時におけるAWSクラウド活用術
受託開発時におけるAWSクラウド活用術
Hiroshi Koyama
 
Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話
Ryuji Tamagawa
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani
 
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
Satoru Yamamoto
 
Chef環境の闇
Chef環境の闇Chef環境の闇
Chef環境の闇
Akihiro Kuwano
 
困らない程度のJDK入門
困らない程度のJDK入門困らない程度のJDK入門
困らない程度のJDK入門
Yohei Oda
 

Viewers also liked (20)

トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Cache obliviousの話
Cache obliviousの話Cache obliviousの話
Cache obliviousの話
 
Lockfree Priority Queue
Lockfree Priority QueueLockfree Priority Queue
Lockfree Priority Queue
 
Jubatus hackathon2
Jubatus hackathon2Jubatus hackathon2
Jubatus hackathon2
 
MerDy
MerDyMerDy
MerDy
 
What is jubatus (short)
What is jubatus (short)What is jubatus (short)
What is jubatus (short)
 
よくわかるHopscotch hashing
よくわかるHopscotch hashingよくわかるHopscotch hashing
よくわかるHopscotch hashing
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
JITコンパイルはじめの一歩
JITコンパイルはじめの一歩JITコンパイルはじめの一歩
JITコンパイルはじめの一歩
 
What is jubatus? How it works for you?
What is jubatus? How it works for you?What is jubatus? How it works for you?
What is jubatus? How it works for you?
 
SkipGraph
SkipGraphSkipGraph
SkipGraph
 
Bloom filter
Bloom filterBloom filter
Bloom filter
 
null使ったら負け福岡版
null使ったら負け福岡版null使ったら負け福岡版
null使ったら負け福岡版
 
AWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップ
AWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップAWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップ
AWSを利用する上で考えたいHA構成とAWSを活用した既存DCのバックアップ
 
受託開発時におけるAWSクラウド活用術
受託開発時におけるAWSクラウド活用術受託開発時におけるAWSクラウド活用術
受託開発時におけるAWSクラウド活用術
 
Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
ABテスト・LPOのための統計学【社内向けサディスティックエディション】データアーティスト株式会社
 
Chef環境の闇
Chef環境の闇Chef環境の闇
Chef環境の闇
 
困らない程度のJDK入門
困らない程度のJDK入門困らない程度のJDK入門
困らない程度のJDK入門
 

Similar to キャッシュコヒーレントに囚われない並列カウンタ達

凸包
凸包凸包
how-calculate-cluster-coefficience
how-calculate-cluster-coefficiencehow-calculate-cluster-coefficience
how-calculate-cluster-coefficience
Norihiro Shimoda
 
M1 gp_Disco
M1 gp_DiscoM1 gp_Disco
M1 gp_Disco
Takuya Shimojoh
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
MasanoriSuganuma
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
MITSUNARI Shigeo
 
Ordered neurons integrating tree structures into recurrent neural networks
Ordered neurons integrating tree structures into recurrent neural networksOrdered neurons integrating tree structures into recurrent neural networks
Ordered neurons integrating tree structures into recurrent neural networks
Kazuki Fujikawa
 
Graph LSTM解説
Graph LSTM解説Graph LSTM解説
Graph LSTM解説
yukihiro domae
 
JOI-summer-seminar
JOI-summer-seminarJOI-summer-seminar
JOI-summer-seminar
chigichan24
 
1.2新機能と1.2から始めるcql3
1.2新機能と1.2から始めるcql31.2新機能と1.2から始めるcql3
1.2新機能と1.2から始めるcql3
seki_intheforest
 
MMDs 7.3 - 7.4
MMDs 7.3 - 7.4MMDs 7.3 - 7.4
MMDs 7.3 - 7.4
Shota Horii
 
Improving Coreference Resolution by Learning Entity-Level Distributed Represe...
Improving Coreference Resolution by Learning Entity-Level Distributed Represe...Improving Coreference Resolution by Learning Entity-Level Distributed Represe...
Improving Coreference Resolution by Learning Entity-Level Distributed Represe...
Yuichiroh Matsubayashi
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナド
Kousuke Ruichi
 

Similar to キャッシュコヒーレントに囚われない並列カウンタ達 (13)

凸包
凸包凸包
凸包
 
how-calculate-cluster-coefficience
how-calculate-cluster-coefficiencehow-calculate-cluster-coefficience
how-calculate-cluster-coefficience
 
M1 gp_Disco
M1 gp_DiscoM1 gp_Disco
M1 gp_Disco
 
0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)0から理解するニューラルネットアーキテクチャサーチ(NAS)
0から理解するニューラルネットアーキテクチャサーチ(NAS)
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
Ordered neurons integrating tree structures into recurrent neural networks
Ordered neurons integrating tree structures into recurrent neural networksOrdered neurons integrating tree structures into recurrent neural networks
Ordered neurons integrating tree structures into recurrent neural networks
 
Graph LSTM解説
Graph LSTM解説Graph LSTM解説
Graph LSTM解説
 
JOI-summer-seminar
JOI-summer-seminarJOI-summer-seminar
JOI-summer-seminar
 
1.2新機能と1.2から始めるcql3
1.2新機能と1.2から始めるcql31.2新機能と1.2から始めるcql3
1.2新機能と1.2から始めるcql3
 
MMDs 7.3 - 7.4
MMDs 7.3 - 7.4MMDs 7.3 - 7.4
MMDs 7.3 - 7.4
 
Clojure
ClojureClojure
Clojure
 
Improving Coreference Resolution by Learning Entity-Level Distributed Represe...
Improving Coreference Resolution by Learning Entity-Level Distributed Represe...Improving Coreference Resolution by Learning Entity-Level Distributed Represe...
Improving Coreference Resolution by Learning Entity-Level Distributed Represe...
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナド
 

Recently uploaded

FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 

Recently uploaded (14)

FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 

キャッシュコヒーレントに囚われない並列カウンタ達