The History of I/O Models Erik Demaine

Size: px
Start display at page:

Download "The History of I/O Models Erik Demaine"

Transcription

1 The History of I/O Models Erik Demaine MASSACHUSETTS INSTITUTE OF TECHNOLOGY

2 Memory Hierarchies in Practice CPU 750 ps Registers 100B Level 1 Cache 100KB Level 2 Cache 1MB 10GB 14 ns Main Memory 1EB-1ZB 4 ms Disk Internet 1TB Outer Space < 10 83

3 Models, Models, Models Model Year Blocking Caching Levels Simple Idealized 2-level Red-blue pebble External memory HMM 1987 BT 1987 ~ (U)MH 1990 Cache oblivious

4 Idealized Two-Level Storage [Floyd Complexity of Computer Computations 1972] PDP-11 ( s) Dennis Ritchie 2.4MB RK03 disks Ken Thompson 8KB core memory

5 Idealized Two-Level Storage [Floyd Complexity of Computer Computations 1972] RAM = blocks of BB items Block operation: Read up to BB items from two blocks ii, jj Write to third block kk Ignore item order within block CPU operations considered free Items are indivisible CPU BB items ii jj kk

6 Permutation Lower Bound [Floyd Complexity of Computer Computations 1972] Theorem: Permuting NN items to NN BB (full) specified blocks needs BB items ii Ω NN BB log BB CPU jj block operations, in average case kk Assuming NN BB > BB (tall disk) Simplified model: Move items instead of copy Equivalence: Follow item s path from start to finish

7 Permutation Lower Bound [Floyd Complexity of Computer Computations 1972] Potential: Φ = nn iiii log nn iiii ii,jj BB items ii # items in block ii destined for block jj Maximized in target configuration of full blocks (nn iiii =BB): Φ = NN log BB Random configuration with NN BB > BB jj kk has E nn iiii = OO(1) E Φ = OO(NN) Claim: Block operation increases Φ by BB Number of block operations NN log BB OO(NN) BB

8 Permutation Lower Bound [Floyd Complexity of Computer Computations 1972] Potential: Φ = nn iiii log nn iiii ii,jj BB items ii # items in block ii destined for block jj Maximized in target configuration of full blocks (nn iiii =BB): Φ = NN log BB Random configuration with NN BB > BB jj kk has E nn iiii = OO(1) E Φ = OO(NN) Claim: Block operation increases Φ by BB o Fact: xx + yy log xx + yy xx log xx + yy log yy + xx + yy o So combining groups xx & yy increases Φ by xx + yy

9 Permutation Bounds [Floyd Complexity of Computer Computations 1972] Theorem: Ω NN BB log BB Tight for BB = OO(1) Theorem: OO NN BB log NN BB Similar to radix sort, where key = target block index CPU BB items ii jj kk Accidental claim: tight for all BB < NN BB We will see: tight for BB > log NN BB

10 Idealized Two-Level Storage [Floyd Complexity of Computer Computations 1972] External memory & word RAM: BB items ii jj kk

11 Idealized Two-Level Storage [Floyd Complexity of Computer Computations 1972] External memory & word RAM: BB items ii CPU jj Foreshadowing future models: kk

12 Red-Blue Pebble Game [Hong & Kung STOC 1981] TRS-80 [ ] CPU cache MM items disk 4KB RAM Apple II [ ] 5KB RAM VIC-20 [ ] 4KB RAM

13 Pebble Game [Hopcroft, Paul, Valiant J. ACM 1977] View computation as DAG of data dependencies Pebble = in memory Moves: Place pebble on node if all predecessors have a pebble Remove pebble from node inputs: outputs: Goal: Pebbles on all output nodes Minimize maximum number of pebbles over time

14 Pebble Game [Hopcroft, Paul, Valiant J. ACM 1977] Theorem: Any DAG can be executed using OO maximum pebbles nn log nn inputs: Corollary: DTIME tt DSPACE tt log tt outputs:

15 Red-Blue Pebble Game [Hong & Kung STOC 1981] Red pebble = in cache inputs: Blue pebble = on disk Moves: Place red pebble on node if all predecessors have red pebble outputs: Remove pebble from node Write: Red pebble blue pebble minimize Read: Blue pebble red pebble Goal: Blue inputs to blue outputs MM red pebbles at any time

16 Red-Blue Pebble Game [Hong & Kung STOC 1981] Red pebble = in cache Blue pebble = on disk inputs: cache disk outputs: CPU MM items minimize number of cache disk I/Os (memory transfers)

17 Red-Blue Pebble Game Results [Hong & Kung STOC 1981] Computation DAG Fast Fourier Transform (FFT) Ordinary matrixvector multiplication Memory Transfers Θ NN log MM NN Θ NN2 MM Speedup Θ log MM Θ MM Ordinary matrixmatrix multiplication Θ NN3 MM Θ MM Odd-even transposition sort Θ NN2 MM Θ MM NN NN NN grid dd Ω NN dd MM 1/(dd 1) Θ MM 1/(dd 1)

18 Comparison Idealized twolevel storage [Floyd 1972] Red-blue pebble game [Hong & Kung 1981] BB items cache disk CPU CPU MM items blocks but no cache cache but no blocks

19 I/O Model [Aggarwal & Vitter ICALP 1987, C. ACM 1988] AKA: External Memory Model, Disk Access Model Goal: Minimize number of I/Os (memory transfers) cache BB items disk BB items CPU MM BB blocks cache and blocks

20 Scanning [Aggarwal & Vitter ICALP 1987, C. ACM 1988] Visiting NN elements in order costs OO 1 + NN BB memory transfers More generally, can run MM parallel scans, BB keeping 1 block per scan in cache E.g., merge OO MM BB in OO 1 + NN BB lists of total size NN memory transfers BB items

21 Practical Scanning [Arge] Does the BB factor matter? Should I presort my linked list before traversal? Example: NN = 256,000,000 ~ 1GB BB = 8,000 ~ 32KB (small) 1ms disk access time (small) NN memory transfers take 256,000 sec 71 hours NN BB memory transfers take = 3333 seconds

22 Searching [Aggarwal & Vitter ICALP 1987, C. ACM 1988] Finding an element xx among NN items requires Θ log BB+1 NN memory transfers Lower bound: (comparison model) Each block reveals where xx fits among BB items Learn log BB + 1 bits per read Need log NN + 1 bits Upper bound: B-tree Insert & delete in OO log BB+1 NN BB items

23 Sorting and Permutation [Aggarwal & Vitter ICALP 1987, C. ACM 1988] Sorting bound: Θ NN BB log MM BB Permutation bound: Θ min NN, NN BB log MM BB Either sort or use naïve RAM algorithm Solves Floyd s two-level storage problem (MM = 3BB) NN BB BB items NN BB

24 Sorting Lower Bound [Aggarwal & Vitter ICALP 1987, C. ACM 1988] Sorting bound: Ω NN BB log MM BB BB Always keep cache sorted (free) Might as well presort each block Upon reading a block, learn how those BB items fit amongst MM items in cache Learn lg MM+BB BB lg MM BB bits BB Need lg NN! NN lg NN bits Know NN lg BB bits from block presort NN BB items

25 Sorting Upper Bound [Aggarwal & Vitter ICALP 1987, C. ACM 1988] Sorting bound: OO NN BB log MM BB NN BB OO MM BB -way mergesort TT NN = MM BB TT NN MM BB + OO 1 + NN BB TT BB = OO 1 NN log MM BB BB levels MM/BB NN/BB NN/BB NN/BB BB items NN/BB

26 Distribution Sort [Aggarwal & Vitter ICALP 1987, C. ACM 1988] MM BB-way quicksort 1. Find MM BB partition elements, roughly evenly spaced 2. Partition array into MM BB + 1 pieces Scan: OO NN memory transfers BB 3. Recurse Same recurrence as mergesort BB items

27 Distribution Sort Partitioning [Aggarwal & Vitter ICALP 1987, C. ACM 1988] 1. For first, second, interval of MM items: Sort in OO MM BB memory transfers Sample every 1 MM BB th item 4 Total sample: 4NN/ MM BB items 2. For ii = 1,2,, MM BB: Run linear-time selection to find sample element at ii MM BB fraction Cost: OO NN MM BB BB each Total: OO NN BB memory transf. BB items

28 Random vs. Sequential I/Os [Farach, Ferragina, Muthukrishnan FOCS 1998] Sequential memory transfers are part of bulk read/write of Θ MM items Random memory transfer otherwise Sorting: 2-way mergesort achieves OO NN BB log NN BB sequential oo NN BB log MM BB Same trade-off for suffix-tree construction NN BB random implies Ω NN BB log NN BB total BB items

29 Hierarchical Memory Model (HMM) [Aggarwal, Alpern, Chandra, Snir STOC 1987] Nonuniform-cost RAM: Accessing memory location xx costs ff xx = log xx CPU ii particularly simple model of computation that mimics the behavior of a memory hierarchy consisting of increasingly larger amounts of slower memory

30 Why ff xx = llllll xx? [Mead & Conway 1980]

31 HMM Upper & Lower Bounds [Aggarwal, Alpern, Chandra, Snir STOC 1987] Problem Time Slowdown Semiring matrix multiplication Fast Fourier Transform Θ NN 3 Θ(NN log NN log log NN) Θ(1) Θ log log NN Sorting Θ(NN log NN log log NN) Θ log log NN Scanning input (sum, max, DFS, planarity, etc.) Θ NN log NN Θ log NN Binary search Θ log 2 NN Θ log NN

32 HHHHMM ff(xx) [Aggarwal, Alpern, Chandra, Snir STOC 1987] Say accessing memory location xx costs ff xx Assume ff 2xx cc ff(xx) for a constant cc > 0 ( polynomially bounded ) Write ff xx = ii ww ii [xx xx ii? ] (weighted sum of threshold functions) xx ii ww 1 ww 2 0 ww 0 CPU xx 0 xx 1 xx 0 xx 2 xx 1

33 Uniform Optimality [Aggarwal, Alpern, Chandra, Snir STOC 1987] Consider one term ff MM xx = [xx MM? ] Algorithm is uniformly optimal if optimal on HMM ffmm xx for all MM Implies optimality for all ff xx cache disk red-blue pebble game! MM CPU 0 CPU MM 1 MM items

34 HHHHMM ffmm xx Upper & Lower Bounds [Aggarwal, Alpern, Chandra, Snir STOC 1987] Problem Time Speedup Semiring matrix multiplication Fast Fourier Transform Θ NN3 MM Θ NN log MM NN Θ MM Θ log MM Sorting Θ NN log MM NN Θ log MM Scanning input (sum, max, DFS, planarity, etc.) Θ NN MM upper bounds known by Hong & Kung 1981 other bounds follow from Aggarwal & Vitter /MM Binary search Θ log NN log MM 1 + 1/ log MM

35 Implicit HMM Memory Management [Aggarwal, Alpern, Chandra, Snir STOC 1987] Instead of algorithm explicitly moving data, use any conservative replacement strategy (e.g., FIFO or LRU) to evict from cache [Sleator & Tarjan C. ACM 1985] TT LRU NN, MM 2 TT OPT NN, MM 2 = OO TT OPT NN, MM assuming ff 2xx cc ff(xx) Not uniform! 0 CPU MM 1

36 Implicit HMM Memory Management [Aggarwal, Alpern, Chandra, Snir STOC 1987] For general ff, split memory into chunks at xx where ff(xx) doubles (up to rounding) ww 1 ww 2 0 ww 0 CPU xx 0 xx 1 xx 0 xx 2 xx 1

37 Implicit HMM Memory Management [Aggarwal, Alpern, Chandra, Snir STOC 1987] For general ff, split memory into chunks at xx where ff(xx) doubles (up to rounding) LRU eviction from first chunk into second; LRU eviction from second chunk into third; etc. TT LLLLLL NN = OO TT OOOOOO NN + NN ff NN Like MTF CPU ii

38 HMM with Block Transfer (BT) [Aggarwal, Chandra, Snir FOCS 1987] Accessing memory location xx costs ff xx Copying memory interval from xx δδ xx to yy δδ yy costs ff max xx, yy + δδ Models memory pipelining ~ block transfer Ignores block alignment, explicit levels, etc. CPU ii

39 BT Results [Aggarwal, Chandra, Snir FOCS 1987] Problem Dot product, merging lists ff xx = log xx ff xx = xx αα, 0 < αα < 1 ff xx = xx ff xx = xx αα, αα > 1 Θ NN log NN Θ NN log log NN Θ(NN log NN) Θ NN αα Matrix mult. Θ NN 3 Θ NN 3 Θ NN 3 Θ NN αα Fast Fourier Transform if αα > 1.5 Θ NN log NN Θ NN log NN Θ NN log 2 NN Θ NN αα Sorting Θ NN log NN Θ NN log NN Θ NN log 2 NN Θ NN αα Binary search Θ log2 NN log log NN Θ NN αα Θ NN Θ NN αα

40 Memory Hierarchy Model (MH) [Alpern, Carter, Feig, Selker FOCS 1990] Multilevel version of external-memory model MM ii MM ii+1 transfers happen in blocks of size BB ii (subblocks of MM ii+1 ), and take tt ii time All levels can be actively transferring at once BB 0 BB 1 BB 2 BB 3 BB 4 CPU 0 tt 0 tt 1 tt 2 tt 3 MM 0 MM 1 MM 2 MM 3 MM 4

41 Uniform Memory Hierarchy (UMH) [Alpern, Carter, Feig, Selker FOCS 1990] Fix aspect ratio αα = MM/BB, block growth ββ = BB ii+1 BB BB ii BB ii = ββ ii MM ii BB ii = αα ββ ii tt ii = ββ ii ff(ii) 2 parameters 1 function CPU BB 0 BB 1 BB 2 BB 3 BB 4 0 tt 0 tt 1 tt 2 tt 3 MM 0 MM 1 MM 2 MM 3 MM 4

42 UMH Results [Alpern, Carter, Feig, Selker FOCS 1990] Problem Upper Bound Lower Bound Matrix transpose ff ii = 1 OO ββ 2 NN2 Ω αααα 4 Matrix mult. ff ii = O ββ ii OO ββ 3 NN3 Ω ββ 3 NN3 NN2 FFT ff ii ii OO 1 Ω 1 General approach: Divide & conquer

43 Cache-Oblivious Model [Frigo, Leiserson, Prokop, Ramachandran FOCS 1999] Analyze RAM algorithm (not knowing BB or MM) on external-memory model Must work well for all BB and MM cache BB items disk BB items CPU MM BB blocks

44 Cache-Oblivious Model [Frigo, Leiserson, Prokop, Ramachandran FOCS 1999] Automatic block transfers via LRU or FIFO Lose factor of 2 in MM and number of transfers Assume TT BB, 2MM cc TT(BB, MM) cache BB items disk BB items CPU MM BB blocks

45 Cache-Oblivious Model [Frigo, Leiserson, Prokop, Ramachandran FOCS 1999] Clean model Adapts to changing BB (e.g., disk tracks) and changing MM (e.g., competing processes) Adapts to multilevel memory hierarchy (MH) Assuming inclusion BB 0 BB 1 BB 2 BB 3 BB 4 CPU 0 tt 0 tt 1 tt 2 tt 3 MM 0 MM 1 MM 2 MM 3 MM 4

46 Scanning [Frigo, Leiserson, Prokop, Ramachandran FOCS 1999] Visiting NN elements in order costs OO 1 + NN memory transfers BB More generally, can run OO 1 parallel scans Assume MM cc BB for appropriate constant cc > 0 E.g., merge two lists in OO NN BB BB items

47 Searching [Prokop Meng 1999] van Emde Boas layout

48 Searching [Prokop Meng 1999] height( ) 1 lg BB 2 2 memory transfers per 4 log BB NN total

49 Cache-Oblivious Searching lg ee + oo 1 log BB NN is optimal [Bender, Brodal, Fagerberg, Ge, He, Hu, Iacono, López-Ortiz FOCS 2003] Dynamic B-tree in OO log BB NN per operation [Bender, Demaine, Farach-Colton FOCS 2000] [Bender, Duan, Iacono, Wu SODA 2002] [Brodal, Fagerberg, Jacob SODA 2002]

50 Cache-Oblivious Sorting OO NN log BB MM BB MM Ω BB 1+εε NN BB Funnel sort: mergesort analog Distribution sort possible, assuming (tall cache) [Frigo, Leiserson, Prokop, Ramachandran FOCS 1999; Brodal & Fagerberg ICALP 2002] Impossible without tall-cache assumption [Brodal & Fagerberg STOC 2003]

51

52 Models, Models, Models Model Year Blocking Caching Levels Simple Idealized 2-level Red-blue pebble External memory HMM 1987 BT 1987 ~ (U)MH 1990 Cache oblivious

Lecture 19 Apr 25, 2007

Lecture 19 Apr 25, 2007 6.851: Advanced Data Structures Spring 2007 Prof. Erik Demaine Lecture 19 Apr 25, 2007 Scribe: Aditya Rathnam 1 Overview Previously we worked in the RA or cell probe models, in which the cost of an algorithm

More information

Cache-Oblivious Algorithms A Unified Approach to Hierarchical Memory Algorithms

Cache-Oblivious Algorithms A Unified Approach to Hierarchical Memory Algorithms Cache-Oblivious Algorithms A Unified Approach to Hierarchical Memory Algorithms Aarhus University Cache-Oblivious Current Trends Algorithms in Algorithms, - A Unified Complexity Approach to Theory, Hierarchical

More information

Lecture 7 8 March, 2012

Lecture 7 8 March, 2012 6.851: Advanced Data Structures Spring 2012 Lecture 7 8 arch, 2012 Prof. Erik Demaine Scribe: Claudio A Andreoni 2012, Sebastien Dabdoub 2012, Usman asood 2012, Eric Liu 2010, Aditya Rathnam 2007 1 emory

More information

Lecture April, 2010

Lecture April, 2010 6.851: Advanced Data Structures Spring 2010 Prof. Eri Demaine Lecture 20 22 April, 2010 1 Memory Hierarchies and Models of Them So far in class, we have wored with models of computation lie the word RAM

More information

Cache-Oblivious String Dictionaries

Cache-Oblivious String Dictionaries Cache-Oblivious String Dictionaries Gerth Stølting Brodal University of Aarhus Joint work with Rolf Fagerberg #"! Outline of Talk Cache-oblivious model Basic cache-oblivious techniques Cache-oblivious

More information

External Memory. Philip Bille

External Memory. Philip Bille External Memory Philip Bille Outline Computationals models Modern computers (word) RAM I/O Cache-oblivious Shortest path in implicit grid graphs RAM algorithm I/O algorithms Cache-oblivious algorithm Computational

More information

BRICS Research Activities Algorithms

BRICS Research Activities Algorithms BRICS Research Activities Algorithms Gerth Stølting Brodal BRICS Retreat, Sandbjerg, 21 23 October 2002 1 Outline of Talk The Algorithms Group Courses Algorithm Events Expertise within BRICS Examples Algorithms

More information

Effect of memory latency

Effect of memory latency CACHE AWARENESS Effect of memory latency Consider a processor operating at 1 GHz (1 ns clock) connected to a DRAM with a latency of 100 ns. Assume that the processor has two ALU units and it is capable

More information

Cache-Adaptive Analysis

Cache-Adaptive Analysis Cache-Adaptive Analysis Michael A. Bender1 Erik Demaine4 Roozbeh Ebrahimi1 Jeremy T. Fineman3 Rob Johnson1 Andrea Lincoln4 Jayson Lynch4 Samuel McCauley1 1 3 4 Available Memory Can Fluctuate in Real Systems

More information

Funnel Heap - A Cache Oblivious Priority Queue

Funnel Heap - A Cache Oblivious Priority Queue Alcom-FT Technical Report Series ALCOMFT-TR-02-136 Funnel Heap - A Cache Oblivious Priority Queue Gerth Stølting Brodal, Rolf Fagerberg Abstract The cache oblivious model of computation is a two-level

More information

Report on Cache-Oblivious Priority Queue and Graph Algorithm Applications[1]

Report on Cache-Oblivious Priority Queue and Graph Algorithm Applications[1] Report on Cache-Oblivious Priority Queue and Graph Algorithm Applications[1] Marc André Tanner May 30, 2014 Abstract This report contains two main sections: In section 1 the cache-oblivious computational

More information

Cache-Oblivious Algorithms and Data Structures

Cache-Oblivious Algorithms and Data Structures Cache-Oblivious Algorithms and Data Structures Erik D. Demaine MIT Laboratory for Computer Science, 200 Technology Square, Cambridge, MA 02139, USA, edemaine@mit.edu Abstract. A recent direction in the

More information

Lecture 24 November 24, 2015

Lecture 24 November 24, 2015 CS 229r: Algorithms for Big Data Fall 2015 Prof. Jelani Nelson Lecture 24 November 24, 2015 Scribes: Zhengyu Wang 1 Cache-oblivious Model Last time we talked about disk access model (as known as DAM, or

More information

Multi-core Computing Lecture 2

Multi-core Computing Lecture 2 Multi-core Computing Lecture 2 MADALGO Summer School 2012 Algorithms for Modern Parallel and Distributed Models Phillip B. Gibbons Intel Labs Pittsburgh August 21, 2012 Multi-core Computing Lectures: Progress-to-date

More information

Lecture 8 13 March, 2012

Lecture 8 13 March, 2012 6.851: Advanced Data Structures Spring 2012 Prof. Erik Demaine Lecture 8 13 March, 2012 1 From Last Lectures... In the previous lecture, we discussed the External Memory and Cache Oblivious memory models.

More information

Simple and Semi-Dynamic Structures for Cache-Oblivious Planar Orthogonal Range Searching

Simple and Semi-Dynamic Structures for Cache-Oblivious Planar Orthogonal Range Searching Simple and Semi-Dynamic Structures for Cache-Oblivious Planar Orthogonal Range Searching ABSTRACT Lars Arge Department of Computer Science University of Aarhus IT-Parken, Aabogade 34 DK-8200 Aarhus N Denmark

More information

Algorithms and Data Structures: Efficient and Cache-Oblivious

Algorithms and Data Structures: Efficient and Cache-Oblivious 7 Ritika Angrish and Dr. Deepak Garg Algorithms and Data Structures: Efficient and Cache-Oblivious Ritika Angrish* and Dr. Deepak Garg Department of Computer Science and Engineering, Thapar University,

More information

Massive Data Algorithmics. Lecture 12: Cache-Oblivious Model

Massive Data Algorithmics. Lecture 12: Cache-Oblivious Model Typical Computer Hierarchical Memory Basics Data moved between adjacent memory level in blocks A Trivial Program A Trivial Program: d = 1 A Trivial Program: d = 1 A Trivial Program: n = 2 24 A Trivial

More information

I/O Model. Cache-Oblivious Algorithms : Algorithms in the Real World. Advantages of Cache-Oblivious Algorithms 4/9/13

I/O Model. Cache-Oblivious Algorithms : Algorithms in the Real World. Advantages of Cache-Oblivious Algorithms 4/9/13 I/O Model 15-853: Algorithms in the Real World Locality II: Cache-oblivious algorithms Matrix multiplication Distribution sort Static searching Abstracts a single level of the memory hierarchy Fast memory

More information

Memory Management Algorithms on Distributed Systems. Katie Becker and David Rodgers CS425 April 15, 2005

Memory Management Algorithms on Distributed Systems. Katie Becker and David Rodgers CS425 April 15, 2005 Memory Management Algorithms on Distributed Systems Katie Becker and David Rodgers CS425 April 15, 2005 Table of Contents 1. Introduction 2. Coarse Grained Memory 2.1. Bottlenecks 2.2. Simulations 2.3.

More information

Introduction to I/O Efficient Algorithms (External Memory Model)

Introduction to I/O Efficient Algorithms (External Memory Model) Introduction to I/O Efficient Algorithms (External Memory Model) Jeff M. Phillips August 30, 2013 Von Neumann Architecture Model: CPU and Memory Read, Write, Operations (+,,,...) constant time polynomially

More information

Cache-oblivious comparison-based algorithms on multisets

Cache-oblivious comparison-based algorithms on multisets Cache-oblivious comparison-based algorithms on multisets Arash Farzan 1, Paolo Ferragina 2, Gianni Franceschini 2, and J. Ian unro 1 1 {afarzan, imunro}@uwaterloo.ca School of Computer Science, University

More information

Cache Oblivious Algorithms

Cache Oblivious Algorithms Cache Oblivious Algorithms Volker Strumpen IBM Research Austin, TX September 4, 2007 Iterative matrix transposition #define N 1000 double A[N][N], B[N][N]; void iter(void) { int i, j; for (i = 0; i < N;

More information

Report Seminar Algorithm Engineering

Report Seminar Algorithm Engineering Report Seminar Algorithm Engineering G. S. Brodal, R. Fagerberg, K. Vinther: Engineering a Cache-Oblivious Sorting Algorithm Iftikhar Ahmad Chair of Algorithm and Complexity Department of Computer Science

More information

38 Cache-Oblivious Data Structures

38 Cache-Oblivious Data Structures 38 Cache-Oblivious Data Structures Lars Arge Duke University Gerth Stølting Brodal University of Aarhus Rolf Fagerberg University of Southern Denmark 38.1 The Cache-Oblivious Model... 38-1 38.2 Fundamental

More information

3.2 Cache Oblivious Algorithms

3.2 Cache Oblivious Algorithms 3.2 Cache Oblivious Algorithms Cache-Oblivious Algorithms by Matteo Frigo, Charles E. Leiserson, Harald Prokop, and Sridhar Ramachandran. In the 40th Annual Symposium on Foundations of Computer Science,

More information

Cache-Oblivious Algorithms

Cache-Oblivious Algorithms Cache-Oblivious Algorithms Paper Reading Group Matteo Frigo Charles E. Leiserson Harald Prokop Sridhar Ramachandran Presents: Maksym Planeta 03.09.2015 Table of Contents Introduction Cache-oblivious algorithms

More information

Algorithms for dealing with massive data

Algorithms for dealing with massive data Computer Science Department Federal University of Rio Grande do Sul Porto Alegre, Brazil Outline of the talk Introduction Outline of the talk Algorithms models for dealing with massive datasets : Motivation,

More information

Cache-Oblivious Algorithms EXTENDED ABSTRACT

Cache-Oblivious Algorithms EXTENDED ABSTRACT Cache-Oblivious Algorithms EXTENDED ABSTRACT Matteo Frigo Charles E. Leiserson Harald Prokop Sridhar Ramachandran MIT Laboratory for Computer Science, 545 Technology Square, Cambridge, MA 02139 fathena,cel,prokop,sridharg@supertech.lcs.mit.edu

More information

Lecture 22 November 19, 2015

Lecture 22 November 19, 2015 CS 229r: Algorithms for ig Data Fall 2015 Prof. Jelani Nelson Lecture 22 November 19, 2015 Scribe: Johnny Ho 1 Overview Today we re starting a completely new topic, which is the external memory model,

More information

Engineering a Cache-Oblivious Sorting Algorithm

Engineering a Cache-Oblivious Sorting Algorithm Engineering a Cache-Oblivious Sorting Algorithm Gerth Stølting Brodal, Rolf Fagerberg Kristoffer Vinther Abstract This paper is an algorithmic engineering study of cacheoblivious sorting. We investigate

More information

Engineering a Cache-Oblivious Sorting Algorithm

Engineering a Cache-Oblivious Sorting Algorithm Alcom-FT Technical Report Series ALCOMFT-TR-03-101 Engineering a Cache-Oblivious Sorting Algorithm Gerth Stølting Brodal, Rolf Fagerberg Kristoffer Vinther Abstract The cache-oblivious model of computation

More information

Cache-Oblivious Planar Orthogonal Range Searching and Counting

Cache-Oblivious Planar Orthogonal Range Searching and Counting Cache-Oblivious Planar Orthogonal Range Searching and Counting Lars Arge BRICS Dept. of Computer Science University of Aarhus IT Parken, Aabogade 34 8200 Aarhus N, Denmark large@daimi.au.dk Gerth Stølting

More information

Cache Oblivious Distribution Sweeping

Cache Oblivious Distribution Sweeping Cache Oblivious Distribution Sweeping Gerth Stølting Brodal 1,, and Rolf Fagerberg 1, BRICS, Department of Computer Science, University of Aarhus, Ny Munkegade, DK-8000 Århus C, Denmark. E-mail: {gerth,rolf}@brics.dk

More information

Cache-Oblivious and Data-Oblivious Sorting and Applications

Cache-Oblivious and Data-Oblivious Sorting and Applications Cache-Oblivious and Data-Oblivious Sorting and Applications T-H. Hubert Chan, Yue Guo, Wei-Kai Lin, and Elaine Shi Jan, 2018 External Memory Model Cache efficiency: # of blocks Time: # of words Memory

More information

Sequence alignment is an essential concept for bioinformatics, as most of our data analysis and interpretation techniques make use of it.

Sequence alignment is an essential concept for bioinformatics, as most of our data analysis and interpretation techniques make use of it. Sequence Alignments Overview Sequence alignment is an essential concept for bioinformatics, as most of our data analysis and interpretation techniques make use of it. Sequence alignment means arranging

More information

Cache Oblivious Algorithms

Cache Oblivious Algorithms Cache Oblivious Algorithms Piyush Kumar Department of Computer Science State University of New York at Stony Brook Stony Brook, NY 11790, USA piyush@acm.org http://www.compgeom.com/co-chap/ 1 Introduction

More information

Dynamic Indexability and the Optimality of B-trees and Hash Tables

Dynamic Indexability and the Optimality of B-trees and Hash Tables Dynamic Indexability and the Optimality of B-trees and Hash Tables Ke Yi Hong Kong University of Science and Technology Dynamic Indexability and Lower Bounds for Dynamic One-Dimensional Range Query Indexes,

More information

CSE 638: Advanced Algorithms. Lectures 18 & 19 ( Cache-efficient Searching and Sorting )

CSE 638: Advanced Algorithms. Lectures 18 & 19 ( Cache-efficient Searching and Sorting ) CSE 638: Advanced Algorithms Lectures 18 & 19 ( Cache-efficient Searching and Sorting ) Rezaul A. Chowdhury Department of Computer Science SUNY Stony Brook Spring 2013 Searching ( Static B-Trees ) A Static

More information

Cache-Oblivious Persistence

Cache-Oblivious Persistence Cache-Oblivious Persistence Pooya Davoodi 1,, Jeremy T. Fineman 2,, John Iacono 1,,andÖzgür Özkan 1 1 New York University 2 Georgetown University Abstract. Partial persistence is a general transformation

More information

Cache-Oblivious Algorithms

Cache-Oblivious Algorithms Cache-Oblivious Algorithms Matteo Frigo, Charles Leiserson, Harald Prokop, Sridhar Ramchandran Slides Written and Presented by William Kuszmaul THE DISK ACCESS MODEL Three Parameters: B M P Block Size

More information

Network-oblivious algorithms. Gianfranco Bilardi, Andrea Pietracaprina, Geppino Pucci and Francesco Silvestri

Network-oblivious algorithms. Gianfranco Bilardi, Andrea Pietracaprina, Geppino Pucci and Francesco Silvestri Network-oblivious algorithms Gianfranco Bilardi, Andrea Pietracaprina, Geppino Pucci and Francesco Silvestri Overview Motivation Framework for network-oblivious algorithms Case studies: Network-oblivious

More information

External Memory Algorithms and Data Structures. Winter 2004/2005

External Memory Algorithms and Data Structures. Winter 2004/2005 External Memory Algorithms and Data Structures Winter 2004/2005 Riko Jacob Peter Widmayer Assignments: Yoshio Okamoto EMADS 04/ 05: Course Description Page 1 External Memory Algorithms and Data Structures

More information

Lecture 9 March 15, 2012

Lecture 9 March 15, 2012 6.851: Advanced Data Structures Spring 2012 Prof. Erik Demaine Lecture 9 March 15, 2012 1 Overview This is the last lecture on memory hierarchies. Today s lecture is a crossover between cache-oblivious

More information

GreenBST: Energy-Efficient Concurrent Search Tree

GreenBST: Energy-Efficient Concurrent Search Tree GreenBST: Energy-Efficient Concurrent Search Tree Ibrahim Umar, Otto J. Anshus, Phuong H. Ha Arctic Green Computing Lab Department of Computer Science UiT The Arctic University of Norway Outline of the

More information

Cache-Aware and Cache-Oblivious Adaptive Sorting

Cache-Aware and Cache-Oblivious Adaptive Sorting Cache-Aware and Cache-Oblivious Adaptive Sorting Gerth Stølting rodal 1,, Rolf Fagerberg 2,, and Gabriel Moruz 1 1 RICS, Department of Computer Science, University of Aarhus, IT Parken, Åbogade 34, DK-8200

More information

Parallel Numerical Algorithms

Parallel Numerical Algorithms Parallel Numerical Algorithms http://sudalab.is.s.u-tokyo.ac.jp/~reiji/pna16/ [ 4 ] Scheduling Theory Parallel Numerical Algorithms / IST / UTokyo 1 PNA16 Lecture Plan General Topics 1. Architecture and

More information

Cache-oblivious Programming

Cache-oblivious Programming Cache-oblivious Programming Story so far We have studied cache optimizations for array programs Main transformations: loop interchange, loop tiling Loop tiling converts matrix computations into block matrix

More information

Algorithms and Computation in Signal Processing

Algorithms and Computation in Signal Processing Algorithms and Computation in Signal Processing special topic course 18-799B spring 2005 14 th Lecture Feb. 24, 2005 Instructor: Markus Pueschel TA: Srinivas Chellappa Course Evaluation Email sent out

More information

Cache-Oblivious Traversals of an Array s Pairs

Cache-Oblivious Traversals of an Array s Pairs Cache-Oblivious Traversals of an Array s Pairs Tobias Johnson May 7, 2007 Abstract Cache-obliviousness is a concept first introduced by Frigo et al. in [1]. We follow their model and develop a cache-oblivious

More information

Outline of the talk 1 Problem definition 2 Computational Models 3 Technical results 4 Conclusions University of Padova Bertinoro, February 17-18th 200

Outline of the talk 1 Problem definition 2 Computational Models 3 Technical results 4 Conclusions University of Padova Bertinoro, February 17-18th 200 Cache-Oblivious Simulation of Parallel Programs Andrea Pietracaprina Geppino Pucci Francesco Silvestri Bertinoro, February 17-18th 2006 University of Padova Bertinoro, February 17-18th 2006 1/ 19 Outline

More information

Main Memory and the CPU Cache

Main Memory and the CPU Cache Main Memory and the CPU Cache CPU cache Unrolled linked lists B Trees Our model of main memory and the cost of CPU operations has been intentionally simplistic The major focus has been on determining

More information

Network-Oblivious Algorithms. Gianfranco Bilardi, Andrea Pietracaprina, Geppino Pucci, Michele Scquizzato and Francesco Silvestri

Network-Oblivious Algorithms. Gianfranco Bilardi, Andrea Pietracaprina, Geppino Pucci, Michele Scquizzato and Francesco Silvestri Network-Oblivious Algorithms Gianfranco Bilardi, Andrea Pietracaprina, Geppino Pucci, Michele Scquizzato and Francesco Silvestri Overview Background Summary of results Framework for network-oblivious algorithms

More information

Lecture 3: Sorting 1

Lecture 3: Sorting 1 Lecture 3: Sorting 1 Sorting Arranging an unordered collection of elements into monotonically increasing (or decreasing) order. S = a sequence of n elements in arbitrary order After sorting:

More information

Cache-Oblivious String Dictionaries

Cache-Oblivious String Dictionaries Cache-Oblivious String Dictionaries Gerth Stølting Brodal Rolf Fagerberg Abstract We present static cache-oblivious dictionary structures for strings which provide analogues of tries and suffix trees in

More information

Hierarchical Memory. Modern machines have complicated memory hierarchy

Hierarchical Memory. Modern machines have complicated memory hierarchy Hierarchical Memory Modern machines have complicated memory hierarchy Levels get larger and slower further away from CPU Data moved between levels using large blocks Lecture 2: Slow IO Review Disk access

More information

Cache-efficient string sorting for Burrows-Wheeler Transform. Advait D. Karande Sriram Saroop

Cache-efficient string sorting for Burrows-Wheeler Transform. Advait D. Karande Sriram Saroop Cache-efficient string sorting for Burrows-Wheeler Transform Advait D. Karande Sriram Saroop What is Burrows-Wheeler Transform? A pre-processing step for data compression Involves sorting of all rotations

More information

arxiv: v2 [cs.ds] 1 Jul 2014

arxiv: v2 [cs.ds] 1 Jul 2014 Cache-Oblivious Persistence Pooya Davoodi 1, Jeremy T. Fineman 2, John Iacono 1, and Özgür Özkan1 1 New York University 2 Georgetown University arxiv:1402.5492v2 [cs.ds] 1 Jul 2014 Abstract Partial persistence

More information

On Cartesian trees and range minimum queries

On Cartesian trees and range minimum queries On Cartesian trees and range minimum queries The MIT Faculty has made this article openly available. Please share how this access benefits you. Your story matters. Citation As Published Publisher Demaine,

More information

INSERTION SORT is O(n log n)

INSERTION SORT is O(n log n) Michael A. Bender Department of Computer Science, SUNY Stony Brook bender@cs.sunysb.edu Martín Farach-Colton Department of Computer Science, Rutgers University farach@cs.rutgers.edu Miguel Mosteiro Department

More information

CS3350B Computer Architecture

CS3350B Computer Architecture CS3350B Computer Architecture Winter 2015 Lecture 3.1: Memory Hierarchy: What and Why? Marc Moreno Maza www.csd.uwo.ca/courses/cs3350b [Adapted from lectures on Computer Organization and Design, Patterson

More information

A NEW SORTING ALGORITHM FOR ACCELERATING JOIN-BASED QUERIES

A NEW SORTING ALGORITHM FOR ACCELERATING JOIN-BASED QUERIES Mathematical and Computational Applications, Vol. 15, No. 2, pp. 208-217, 2010. Association for Scientific Research A NEW SORTING ALGORITHM FOR ACCELERATING JOIN-BASED QUERIES Hassan I. Mathkour Department

More information

Autotuning (1/2): Cache-oblivious algorithms

Autotuning (1/2): Cache-oblivious algorithms Autotuning (1/2): Cache-oblivious algorithms Prof. Richard Vuduc Georgia Institute of Technology CSE/CS 8803 PNA: Parallel Numerical Algorithms [L.17] Tuesday, March 4, 2008 1 Today s sources CS 267 (Demmel

More information

Dynamic programming in faulty memory hierarchies (cache-obliviously)

Dynamic programming in faulty memory hierarchies (cache-obliviously) Dynamic programming in faulty memory hierarchies (cache-obliviously) S. Caminiti 1, I. Finocchi 1, E. G. Fusco 1, and F. Silvestri 2 1 Computer Science Department, Sapienza University of Rome 2 Department

More information

Lecture 3 February 20, 2007

Lecture 3 February 20, 2007 6.897: Advanced Data Structures Spring 2007 Prof. Erik Demaine Lecture 3 February 20, 2007 Scribe: Hui Tang 1 Overview In the last lecture we discussed Binary Search Trees and the many bounds which achieve

More information

Flash memory: Models and Algorithms. Guest Lecturer: Deepak Ajwani

Flash memory: Models and Algorithms. Guest Lecturer: Deepak Ajwani Flash memory: Models and Algorithms Guest Lecturer: Deepak Ajwani Flash Memory Flash Memory Flash Memory Flash Memory Flash Memory Flash Memory Flash Memory Solid State Disks A data-storage device that

More information

Cache-Adaptive Algorithms

Cache-Adaptive Algorithms Cache-Adaptive Algorithms Michael A Bender Roozbeh Ebrahimi Jeremy T Fineman Golnaz Ghasemiesfeh Rob Johnson Samuel McCauley Abstract We introduce the cache-adaptive model, which generalizes the external-memory

More information

Massive Data Algorithmics

Massive Data Algorithmics Massive Data Algorithmics University of Aarhus Department of Computer Science Faglig Dag, January 17, 2008 running time The core problem... Normal algorithm I/O-efficient algorithm data size Main memory

More information

Cache Friendly Sparse Matrix Vector Multilication

Cache Friendly Sparse Matrix Vector Multilication Cache Friendly Sparse Matrix Vector Multilication Sardar Anisual Haque 1, Shahadat Hossain 2, Marc Moreno Maza 1 1 University of Western Ontario, London, Ontario (Canada) 2 Department of Computer Science,

More information

Cache Oblivious Matrix Transposition: Simulation and Experiment

Cache Oblivious Matrix Transposition: Simulation and Experiment Cache Oblivious Matrix Transposition: Simulation and Experiment Dimitrios Tsifakis, Alistair P. Rendell * and Peter E. Strazdins Department of Computer Science Australian National University Canberra ACT0200,

More information

Cache-Oblivious Index for Approximate String Matching

Cache-Oblivious Index for Approximate String Matching Cache-Oblivious Index for Approximate String Matching Wing-Kai Hon 1, Tak-Wah Lam 2, Rahul Shah 3, Siu-Lung Tam 2, and Jeffrey Scott Vitter 3 1 Department of Computer Science, National Tsing Hua University,

More information

Massive Data Algorithmics. Lecture 1: Introduction

Massive Data Algorithmics. Lecture 1: Introduction . Massive Data Massive datasets are being collected everywhere Storage management software is billion-dollar industry . Examples Phone: AT&T 20TB phone call database, wireless tracking Consumer: WalMart

More information

A Multi Join Algorithm Utilizing Double Indices

A Multi Join Algorithm Utilizing Double Indices Journal of Convergence Information Technology Volume 4, Number 4, December 2009 Hanan Ahmed Hossni Mahmoud Abd Alla Information Technology Department College of Computer and Information Sciences King Saud

More information

( ) n 5. Test 1 - Closed Book

( ) n 5. Test 1 - Closed Book Name Test 1 - Closed Book Student ID # Multiple Choice. Write your answer to the LEFT of each problem. points each 1. During which operation on a leftist heap may subtree swaps be needed? A. DECREASE-KEY

More information

Efficient Tree Layout in a Multilevel Memory Hierarchy

Efficient Tree Layout in a Multilevel Memory Hierarchy Efficient Tree Layout in a Multilevel Memory Hierarchy Stephen Alstrup Michael A. Bender Erik D. Demaine Martin Farach-Colton Theis Rauhe Mikkel Thorup December 9, 2003 Abstract We consider the problem

More information

Multithreaded Parallelism and Performance Measures

Multithreaded Parallelism and Performance Measures Multithreaded Parallelism and Performance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 (Moreno Maza) Multithreaded Parallelism and Performance Measures CS 3101

More information

Algorithms of Scientific Computing

Algorithms of Scientific Computing Algorithms of Scientific Computing Fast Fourier Transform (FFT) Michael Bader Technical University of Munich Summer 2018 The Pair DFT/IDFT as Matrix-Vector Product DFT and IDFT may be computed in the form

More information

External Sorting. Chapter 13. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

External Sorting. Chapter 13. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 External Sorting Chapter 13 Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1 Why Sort? v A classic problem in computer science! v Data requested in sorted order e.g., find students in increasing

More information

Multi-core Computing Lecture 1

Multi-core Computing Lecture 1 Hi-Spade Multi-core Computing Lecture 1 MADALGO Summer School 2012 Algorithms for Modern Parallel and Distributed Models Phillip B. Gibbons Intel Labs Pittsburgh August 20, 2012 Lecture 1 Outline Multi-cores:

More information

Cache Memories. University of Western Ontario, London, Ontario (Canada) Marc Moreno Maza. CS2101 October 2012

Cache Memories. University of Western Ontario, London, Ontario (Canada) Marc Moreno Maza. CS2101 October 2012 Cache Memories Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS2101 October 2012 Plan 1 Hierarchical memories and their impact on our 2 Cache Analysis in Practice Plan 1 Hierarchical

More information

Fast and Cache-Oblivious Dynamic Programming with Local Dependencies

Fast and Cache-Oblivious Dynamic Programming with Local Dependencies Fast and Cache-Oblivious Dynamic Programming with Local Dependencies Philip Bille and Morten Stöckel Technical University of Denmark, DTU Informatics, Copenhagen, Denmark Abstract. String comparison such

More information

Cache Oblivious Matrix Transpositions using Sequential Processing

Cache Oblivious Matrix Transpositions using Sequential Processing IOSR Journal of Engineering (IOSRJEN) e-issn: 225-321, p-issn: 2278-8719 Vol. 3, Issue 11 (November. 213), V4 PP 5-55 Cache Oblivious Matrix s using Sequential Processing korde P.S., and Khanale P.B 1

More information

Module Outline. CPU Memory interaction Organization of memory modules Cache memory Mapping and replacement policies.

Module Outline. CPU Memory interaction Organization of memory modules Cache memory Mapping and replacement policies. M6 Memory Hierarchy Module Outline CPU Memory interaction Organization of memory modules Cache memory Mapping and replacement policies. Events on a Cache Miss Events on a Cache Miss Stall the pipeline.

More information

Parallel Models RAM. Parallel RAM aka PRAM. Variants of CRCW PRAM. Advanced Algorithms

Parallel Models RAM. Parallel RAM aka PRAM. Variants of CRCW PRAM. Advanced Algorithms Parallel Models Advanced Algorithms Piyush Kumar (Lecture 10: Parallel Algorithms) An abstract description of a real world parallel machine. Attempts to capture essential features (and suppress details?)

More information

Algorithms and Data Structures Group. Gerth Stølting Brodal

Algorithms and Data Structures Group. Gerth Stølting Brodal Algorithms and Data Structures Group Gerth Stølting Brodal Faculty Meeting, Department of Computer Science, Aarhus University, October 3, 2014 VIP Lars Arge (Professor) Gerth Stølting Brodal (Lektor) Peyman

More information

The Cost of Address Translation

The Cost of Address Translation The Cost of Address Translation Tomasz Jurkiewicz Kurt Mehlhorn Pat Nicholson Max Planck Institute for Informatics full version of paper by TJ and KM available at arxiv preliminary version presented at

More information

Lists Revisited: Cache Conscious STL lists

Lists Revisited: Cache Conscious STL lists Lists Revisited: Cache Conscious STL lists Leonor Frias, Jordi Petit, Salvador Roura Departament de Llenguatges i Sistemes Informàtics. Universitat Politècnica de Catalunya. Overview Goal: Improve STL

More information

CS 310: Memory Hierarchy and B-Trees

CS 310: Memory Hierarchy and B-Trees CS 310: Memory Hierarchy and B-Trees Chris Kauffman Week 14-1 Matrix Sum Given an M by N matrix X, sum its elements M rows, N columns Sum R given X, M, N sum = 0 for i=0 to M-1{ for j=0 to N-1 { sum +=

More information

Algorithm Design and Analysis

Algorithm Design and Analysis Algorithm Design and Analysis LECTURE 13 Divide and Conquer Closest Pair of Points Convex Hull Strassen Matrix Mult. Adam Smith 9/24/2008 A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova,

More information

1.2 Round-off Errors and Computer Arithmetic

1.2 Round-off Errors and Computer Arithmetic 1.2 Round-off Errors and Computer Arithmetic 1 In a computer model, a memory storage unit word is used to store a number. A word has only a finite number of bits. These facts imply: 1. Only a small set

More information

Lecture 8: Mergesort / Quicksort Steven Skiena

Lecture 8: Mergesort / Quicksort Steven Skiena Lecture 8: Mergesort / Quicksort Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.stonybrook.edu/ skiena Problem of the Day Give an efficient

More information

Cache Oblivious Matrix Transposition: Simulation and Experiment

Cache Oblivious Matrix Transposition: Simulation and Experiment Cache Oblivious Matrix Transposition: Simulation and Experiment Dimitrios Tsifakis, Alistair P. Rendell, and Peter E. Strazdins Department of Computer Science, Australian National University Canberra ACT0200,

More information

CSE 326: Data Structures Sorting Conclusion

CSE 326: Data Structures Sorting Conclusion CSE 36: Data Structures Sorting Conclusion James Fogarty Spring 009 Administrivia Homework Due Homework Assigned Better be working on Project 3 (code due May 7) Sorting Recap Selection Sort Bubble Sort

More information

Calculating lower bounds for caching problems

Calculating lower bounds for caching problems Calculating lower bounds for caching problems Leah Epstein Rob van Stee Abstract We present a general method for computing lower bounds for various caching problems. We apply the method to two well known

More information

Dynamic Indexability and Lower Bounds for Dynamic One-Dimensional Range Query Indexes

Dynamic Indexability and Lower Bounds for Dynamic One-Dimensional Range Query Indexes Dynamic Indexability and Lower Bounds for Dynamic One-Dimensional Range Query Indexes Ke Yi HKUST 1-1 First Annual SIGMOD Programming Contest (to be held at SIGMOD 2009) Student teams from degree granting

More information

I/O-Algorithms Lars Arge

I/O-Algorithms Lars Arge Fall 2014 August 28, 2014 assive Data Pervasive use of computers and sensors Increased ability to acquire/store/process data assive data collected everywhere Society increasingly data driven Access/process

More information

DIVIDE & CONQUER. Problem of size n. Solution to sub problem 1

DIVIDE & CONQUER. Problem of size n. Solution to sub problem 1 DIVIDE & CONQUER Definition: Divide & conquer is a general algorithm design strategy with a general plan as follows: 1. DIVIDE: A problem s instance is divided into several smaller instances of the same

More information

INDIVIDUAL storage and memory components in today s

INDIVIDUAL storage and memory components in today s EDIC RESEARCH PROPOSAL 1 Synthesis of Algorithms for Memory Hierarchies Andrej Spielmann I&C, EPFL Abstract Every memory or storage component has distinct characteristics such as the speed of reading and

More information

Cache Oblivious Search Trees via Binary Trees of Small Height

Cache Oblivious Search Trees via Binary Trees of Small Height Alcom-FT Technical Report Series ALCOMFT-TR-02-53 Cache Oblivious Search Trees via Binary Trees of Small Height Gerth Stølting Brodal, Rolf Fagerberg Riko Jacob Abstract We propose a version of cache oblivious

More information

Computational Geometry in the Parallel External Memory Model

Computational Geometry in the Parallel External Memory Model Computational Geometry in the Parallel External Memory Model Nodari Sitchinava Institute for Theoretical Informatics Karlsruhe Institute of Technology nodari@ira.uka.de 1 Introduction Continued advances

More information