SlideShare ist ein Scribd-Unternehmen logo
1 von 54
Downloaden Sie, um offline zu lesen
2014/01/11 @ DSIRNLP 5

Cache-Oblivious
データ構造入門
秋葉 拓哉 (@iwiwi)
アウトライン
1. B-Tree が何故使われるのか? (復習)

2. Cache-Oblivious の考え方と意義
3. Cache-Oblivious 探索木 (vEB Layout)
4. 世の中の Cache-Oblivious 事例

Cache-Oblivious データ構造入門 (@iwiwi)

3
MySQL の索引のデータ構造は?
http://dev.mysql.com/doc/refman/5.1/ja/mysql-indexes.html

Cache-Oblivious データ構造入門 (@iwiwi)

!!!
4
MySQL の索引のデータ構造は?

B-Tree!
MySQL に限らず多くのデータベースシステムは
B-Tree を使います

Cache-Oblivious データ構造入門 (@iwiwi)

5
MySQL の索引のデータ構造は?

なんで B-Tree?
普通の二分探索木じゃだめ?

Cache-Oblivious データ構造入門 (@iwiwi)

6
なぜ B-Tree?

と
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Memory_module_DDRAM_20-03-2006.jpg

http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Hdd_medalist.jpg

があるから
Cache-Oblivious データ構造入門 (@iwiwi)

7
なぜ B-Tree
メモリは高速
でも小さい
ディスクは遅い
でも大きい
大規模なデータベースは
ディスクに保存されていて
メモリに読み込みながら処理をする.
Cache-Oblivious データ構造入門 (@iwiwi)

8
B-Tree のデータ構造
普通の二分探索木

B-Tree

多分木になってる
(最大の分岐数 m)

Cache-Oblivious データ構造入門 (@iwiwi)

9
なぜ B-Tree の方が良いか?
大事な前提(若干雑)
1. ディスクの読み込み時間 >> 計算時間
2. ディスクである箇所を読み込むと周辺も含
めてそこそこ大きく読まれる

前提より
• ディスクを読み込む回数だけを考える
– 普段の議論:「O(ほげ) 時間」
– 今回の議論:「ディスクI/O 𝑂(ほげ) 回」

• 一度に読み込まれるサイズを 𝐵 とおく
Cache-Oblivious データ構造入門 (@iwiwi)

10
データの探索にかかる I/O 回数
二分探索木
• 𝑂 log 𝑛 回
一回の I/O で 2 分岐

B-Tree
• 𝑂 log 𝐵 𝑛 回

一回の I/O で Θ(𝐵) 分岐!

↑ノードのサイズをブロックサイズ 𝐵に合わせる

B-Tree のほうが log 𝐵 倍ぐらい早い
これは平気で 10 倍とかになるので大違い!
Cache-Oblivious データ構造入門 (@iwiwi)

11
このように

ディスクとメモリを使うなら
そのことを意識したデータ構造を
使う必要がある!

Cache-Oblivious データ構造入門 (@iwiwi)

12
ちなみに
メモリとキャッシュメモリ間でも
似たようなことを考えないといけない
より一般に,「メモリ階層」を意識しないといけない
(↓こういうやつ)
レジスタ
L1
L2
L3
メモリ
ディスク
テープ?

Cache-Oblivious データ構造入門 (@iwiwi)

13
Cache-Oblivious とは

Cache-Oblivious データ構造入門 (@iwiwi)

14
Cache-Oblivious

Cache-oblivious = キャッシュを忘れて
Cache-Oblivious データ構造入門 (@iwiwi)

15
Cache-Oblivious

えっ!?

忘れてしまうの?
Cache-Oblivious データ構造入門 (@iwiwi)

16
Cache-Oblivious

えっ!?

忘れてしまうの?
Cache-Oblivious データ構造入門 (@iwiwi)

17
Cache-Aware vs. Cache-Oblivious
Cache-Aware = 普通
ブロックのサイズ 𝐵 を事前に
知っていて,それを使ってデータ構造を設計する
(例:B-Tree)

Cache-Oblivious = 縛りプレイ
ブロックのサイズ 𝐵 を知らないことにする!
知らないなりに頑張る
𝐵 がどんな値であったとしてもいい感じになるよう頑
張る
※本当はメモリサイズ 𝑀 というパラメータもあって,同様にそれも知らない
ことにする.今回は出てこないので省略
Cache-Oblivious データ構造入門 (@iwiwi)

18
Cache-Aware vs. Cache-Oblivious
計算機の動きの前提は同じ
• 読み込みの回数を計算量とする
• 一回に 𝐵 バイト読み込まれる

やりたいことも同じ (例:探索木)
ただし,Cache-Oblivious データ構造は
𝑩 の値を使ってはいけない
(つまり𝐵の値を事前に知らない)
Cache-Oblivious データ構造入門 (@iwiwi)

19
Cache-Oblivious でない例
B-Tree は Cache-Oblivious ではない

↑ノードのサイズをブロックに合わせる

ブロックサイズ 𝐵 を知らないと
何分木にしていいかわからない!
ブロックサイズ 𝐵 を使ってデータ構造を設計している

Cache-Oblivious データ構造入門 (@iwiwi)

20
なんでそんなことをするのか?
Cache-Oblivious データ構造の利点

1つめ:
ブロックサイズに合わせたパラメータ調整を環境
ごとに行う必要がない!
ポータブル,手軽に使える

Cache-Oblivious データ構造入門 (@iwiwi)

21
なんでそんなことをするのか?
Cache-Oblivious データ構造の利点

2つめ:
全てのメモリ階層ギャップに最適化される
• ディスク ⇔ メモリ・・・ 𝐵Mem
• メモリ ⇔ キャッシュ・・・𝐵Cache
どんな 𝐵 の値でも性能が出る
→ どこのギャップに関しても良い性能!
Cache-Oblivious データ構造入門 (@iwiwi)

22
なんでそんなことをするのか?
Cache-Oblivious データ構造の利点

2つめ:
全てのメモリ階層ギャップに最適化される
データの大きさによってボトルネックは変わる
• メモリに収まる? → 𝐵Cache
• 収まらない? → 𝐵Mem
扱うデータのサイズによらず高性能なプログラム
にできる
Cache-Oblivious データ構造入門 (@iwiwi)

23
そんな都合の良いものが作れるの?
作れるんです!

Cache-Oblivious データ構造入門 (@iwiwi)

24
Cache-Oblivious 探索木
(vEB Layout)
Cache-Oblivious データ構造入門 (@iwiwi)

25
二分探索木があります

Cache-Oblivious データ構造入門 (@iwiwi)

26
以降,三角形を二分探索木と思って下さい

Cache-Oblivious データ構造入門 (@iwiwi)

27
でかい二分探索木をイメージして下さい

𝑛 ノード

Cache-Oblivious データ構造入門 (@iwiwi)

28
このツリーをディスクによさげに保存する

𝑛 ノード

高さ
ℎ = log 2 𝑛

ディスク
Cache-Oblivious データ構造入門 (@iwiwi)

29
高さがだいたい半分のところで切る

高さ ℎ/2

Cache-Oblivious データ構造入門 (@iwiwi)

30
上半分は約

𝒏 ノードの木になる

約 𝒏
ノード

Cache-Oblivious データ構造入門 (@iwiwi)

高さ ℎ/2

31
切れ目(=上半分の木の葉)には約

𝒏 ノード

約 𝑛
ノード

約

𝒏

Cache-Oblivious データ構造入門 (@iwiwi)

32
下半分にぶら下がってる木も約

𝒏 ノード

約 𝑛
ノード

高さ ℎ/2

約 𝑛
ノード

Cache-Oblivious データ構造入門 (@iwiwi)

33
それが約

𝒏 個ある

約 𝑛
ノード

…… 約

𝑛
ノード

……
約

𝒏個

Cache-Oblivious データ構造入門 (@iwiwi)

34
約 𝒏 ノード × 約 𝒏 個

𝑇0
……

𝑇1 𝑇2

𝑇

Cache-Oblivious データ構造入門 (@iwiwi)

𝑛

35
それぞれの木を連続部分に保存!

𝑇0
……

𝑇1 𝑇2

ディスク

𝑇0

𝑇

𝑇1
Cache-Oblivious データ構造入門 (@iwiwi)

𝑛

𝑇2

…

𝑇

𝑛

36
それぞれの木はどうやって保存?

約 𝒏
ノード

ディスク
Cache-Oblivious データ構造入門 (@iwiwi)

37
それぞれの木はどうやって保存?

約 𝒏
ノード

再帰的に同じことをする!
またこのツリーを上下に分割

ディスク
Cache-Oblivious データ構造入門 (@iwiwi)

38
こうやってツリーを保存することを

vEB Layout

𝑇0

(vEB = Van Emde Boas)
と呼びます

……

𝑇1 𝑇2

ディスク

𝑇0

𝑇

𝑇1
Cache-Oblivious データ構造入門 (@iwiwi)

𝑛

𝑇2

…

𝑇

𝑛

39
vEB Layout の性質
Cache-Oblivious である!
再帰してるだけ.ブロックサイズ 𝐵 は出てこなかった.
𝐵 を全く知らずに構築したのに……なんと

要素の探索が I/O 𝑂 log 𝐵 𝑛 回でできる!
↑
𝑩 を知ってて作った B-Tree と性能が一致!
(オーダー記号に隠れた定数倍を除いて)

(𝐵 : ブロックのサイズです ← 忘れた人むけ)
Cache-Oblivious データ構造入門 (@iwiwi)

40
vEB Layout の性質
Cache-Oblivious である!
再帰してるだけ.ブロックサイズ 𝐵 は出てこなかった.
𝐵 を全く知らずに構築したのに……なんと

要素の探索が I/O 𝑂 log 𝐵 𝑛 回でできる!
↑
𝑩 を知ってて作った B-Tree と性能が一致!
(オーダー記号に隠れた定数倍を除いて)

最悪の場合でも I/O 回数は
(𝐵 : ブロックのサイズですlog 𝐵 𝑛 回
2 + 4 ← 忘れた人むけ)
Cache-Oblivious データ構造入門 (@iwiwi)

41
計算量
𝑶 𝐥𝐨𝐠

𝑩

𝒏 回の読み込みでできる理由

ツリーのサイズ:𝑛,

𝑛, 4 𝑛, 8 𝑛, 16 𝑛, … …

いつかサイズは 𝐵 以下になる
そしてその時,少なくとも

𝐵

サイズが 𝐵 以下になったら一気に読み込まれる
→ 結局多分木みたいに動作する( Ω 𝐵 分木)
Cache-Oblivious データ構造入門 (@iwiwi)

42
ちなみに:Cache-Oblivious 関係ない話
木でこういう分割をするのは,
vEB Tree というデータ構造でも使う
vEB Tree はキーの値の範囲の条件下で
• 検索が 𝑶 𝐥𝐨𝐠 𝐥𝐨𝐠 𝒏 時間
でできるおもしろデータ構造です
http://en.wikipedia.org/wiki/Van_Emde_Boas_tree

Cache-Oblivious データ構造入門 (@iwiwi)

43
世の中の Cache-Oblivious 事例

Cache-Oblivious データ構造入門 (@iwiwi)

44
他の Cache-Oblivious データ構造・アルゴリズム

データ構造
• 動的な探索木 (CO B-Tree)

– さっきのは静的な木だったので実際に動的にしようと思うと
もっと複雑なものが必要

• 順位キュー
• リスト
• ……

アルゴリズム
•
•
•
•

ソート (Funnel Sort)
FFT,行列乗算
グラフ探索
……

いっぱい
あります!

Cache-Oblivious データ構造入門 (@iwiwi)

45
Cache-Oblivious は本当に実用的か?
利点もあるけど,浸透しにくい
問題点1:
複雑すぎる物が多い
理論屋さんがオーダー記法での計算量だけを考えて作っている実装し
たくないものが多い

問題点2:
Cache-Aware に中々勝てない
定数倍の差はあり実測では速度で負けてしまう

Cache-Oblivious データ構造入門 (@iwiwi)

46
事例

TokuDB
MySQL, MariaDB 用ストレージエンジン

Fractal Tree™ Index なるものを使うらしい

Cache-Oblivious データ構造入門 (@iwiwi)

47
Fractal Tree™ Index
Wikipedia

公式

Cache-Oblivious データ構造入門 (@iwiwi)

48
事例

𝑇0
……

𝑇1 𝑇2

𝑇

𝑛

確かにフラクタルっぽい(?)
(※実際には Fractal Tree Index は vEB Layout より複雑なことをしています)

Cache-Oblivious データ構造入門 (@iwiwi)

49
論文 (MIT CSAIL)
Cache-Oblivious Streaming B-trees
Michael A. Bender, Martin Farach-Colton, Jeremy T. Fineman, Yonatan
Fogel, Bradley Kuszmaul, and Jelani Nelson
SPAA’07
Cache-Oblivious String B-Trees
Michael A. Bender, Martin Farach-Colton, and Bradley C. Kuszmaul
PODS’06
Concurrent Cache-Oblivious B-Trees
Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C.
Kuszmaul
SPAA’05

Cache-Oblivious データ構造入門 (@iwiwi)

50
論文 (MIT CSAIL)
Cache-Oblivious Streaming B-trees
Michael A. Bender, Martin Farach-Colton, Jeremy T. Fineman, Yonatan
Fogel, Bradley Kuszmaul, and Jelani Nelson
SPAA’07

Chief Scientist

CTO

Chief Architect

Cache-Oblivious String B-Trees
Michael A. Bender, Martin Farach-Colton, and Bradley C. Kuszmaul
PODS’06
Concurrent Cache-Oblivious B-Trees
Michael A. Bender, Jeremy T. Fineman, Seth Gilbert, and Bradley C.
Kuszmaul
SPAA’05

MIT の Cache-Oblivious 研究ガチ勢の起業!
Cache-Oblivious データ構造入門 (@iwiwi)

51
使っているっぽい雰囲気?
TokuDB の公式サイトにあるスライド

http://www.tokutek.com/wp-content/uploads/2011/11/how-fractal-trees-work.pdf

Cache-Oblivious データ構造入門 (@iwiwi)

52
まとめ
• メモリ階層を意識したデータ構造

• Cache-Oblivious の考え方
• 基礎的テク:ツリーの vEB Layout
• 世の中の事例と課題
ありがとうございましたm(__)m
Cache-Oblivious データ構造入門 (@iwiwi)

53
おまけ:van Emde Boas の発音

https://www.youtube.com/watch?v=AjFtTQevtq0#t=14m15

Peter van Emde Boas と友人である Erik D. Demaine (MIT)
による発音が YouTube で聞けます
Cache-Oblivious データ構造入門 (@iwiwi)

54
謝辞
@kumagi さんのご意見をもとに発表時からスライド
を改訂しています,ありがとうございます.
@tmaehara さんに “van Emde Boas” さんの発音情報
を教えてもらいました,ありがとうございます.

Cache-Oblivious データ構造入門 (@iwiwi)

55

Weitere ähnliche Inhalte

Was ist angesagt?

大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法Shunji Umetani
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化yosupo
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性Hibiki Yamashiro
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説tancoro
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~Yuma Inoue
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドMasaki Hara
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話Nagisa Eto
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろKazuma Mikami
 
ICML 2020 最適輸送まとめ
ICML 2020 最適輸送まとめICML 2020 最適輸送まとめ
ICML 2020 最適輸送まとめohken
 
機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論Taiji Suzuki
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門Shuyo Nakatani
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用Yoshitaka Ushiku
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解くshindannin
 

Was ist angesagt? (20)

線形計画法入門
線形計画法入門線形計画法入門
線形計画法入門
 
大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法大規模な組合せ最適化問題に対する発見的解法
大規模な組合せ最適化問題に対する発見的解法
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
色々なダイクストラ高速化
色々なダイクストラ高速化色々なダイクストラ高速化
色々なダイクストラ高速化
 
動的計画法を極める!
動的計画法を極める!動的計画法を極める!
動的計画法を極める!
 
双対性
双対性双対性
双対性
 
競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性競技プログラミングにおけるコードの書き方とその利便性
競技プログラミングにおけるコードの書き方とその利便性
 
Triplet Loss 徹底解説
Triplet Loss 徹底解説Triplet Loss 徹底解説
Triplet Loss 徹底解説
 
LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~LCA and RMQ ~簡潔もあるよ!~
LCA and RMQ ~簡潔もあるよ!~
 
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライドRe永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
 
全域木いろいろ
全域木いろいろ全域木いろいろ
全域木いろいろ
 
Rolling hash
Rolling hashRolling hash
Rolling hash
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
 
文字列検索のいろいろ
文字列検索のいろいろ文字列検索のいろいろ
文字列検索のいろいろ
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
ICML 2020 最適輸送まとめ
ICML 2020 最適輸送まとめICML 2020 最適輸送まとめ
ICML 2020 最適輸送まとめ
 
機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論機械学習におけるオンライン確率的最適化の理論
機械学習におけるオンライン確率的最適化の理論
 
Active Learning 入門
Active Learning 入門Active Learning 入門
Active Learning 入門
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 

Mehr von Takuya Akiba

分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17Takuya Akiba
 
Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsLearning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsTakuya Akiba
 
TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説Takuya Akiba
 
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説Takuya Akiba
 
大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法Takuya Akiba
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-Takuya Akiba
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズムTakuya Akiba
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズムTakuya Akiba
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~Takuya Akiba
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~Takuya Akiba
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端Takuya Akiba
 

Mehr von Takuya Akiba (12)

分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17分散深層学習 @ NIPS'17
分散深層学習 @ NIPS'17
 
Learning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for GraphsLearning Convolutional Neural Networks for Graphs
Learning Convolutional Neural Networks for Graphs
 
TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説TCO15 Algorithm Round 2C 解説
TCO15 Algorithm Round 2C 解説
 
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
ACM-ICPC 世界大会 2015 問題 K "Tours" 解説
 
大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法大規模グラフ解析のための乱択スケッチ技法
大規模グラフ解析のための乱択スケッチ技法
 
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
乱択データ構造の最新事情 -MinHash と HyperLogLog の最近の進歩-
 
平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム平面グラフと交通ネットワークのアルゴリズム
平面グラフと交通ネットワークのアルゴリズム
 
大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム大規模ネットワークの性質と先端グラフアルゴリズム
大規模ネットワークの性質と先端グラフアルゴリズム
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
プログラミングコンテストでのデータ構造 2 ~平衡二分探索木編~
 
大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端大規模グラフアルゴリズムの最先端
大規模グラフアルゴリズムの最先端
 

Kürzlich hochgeladen

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Kürzlich hochgeladen (10)

論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Cache-Oblivious データ構造入門 @DSIRNLP#5