• No se han encontrado resultados

TUBERÍA METÁLICA CORRUGADA RANURADA

In document REGLAMENTO NACIONAL DE EDIFICACIONES (página 71-73)

CAPITULO V PLANEAMIENTO INTEGRAL

TUBERÍA METÁLICA CORRUGADA RANURADA

C

Cache-Oblivious B-Tree

2005; Bender, Demaine, Farach-Colton ROLFFAGERBERG

Department of Mathematics and Computer Science, University of Southern Denmark,

Odense, Denmark

Keywords and Synonyms

Cache-oblivious search tree; Cache-oblivious dictionary

Problem Definition

Computers contain a hierarchy of memory levels, with vastly differing access times. Hence, the time for a mem- ory access depends strongly on what is the innermost level containing the data accessed. In analysis of algorithms, the standard RAM (or von Neumann) model cannot capture this effect, and external memory models were introduced to better model the situation. The most widely used of these models is the two-level I/O-model [1], also called the External Memory model or the Disk Access model. The I/O-model approximates the memory hierarchy by mod- eling two levels, with the inner level having sizeM, the outer level having infinite size, and transfers between the levels taking place in blocks ofBconsecutive elements. The cost of an algorithm is the number of memory transfers it makes.

The cache-oblivious model, introduced by Frigo et al. [18], elegantly generalizes the I/O-model to a multi- level memory model by a simple measure: the algorithm is not allowed to know the value ofBandM. More precisely, a cache-oblivious algorithm is an algorithm formulated in the RAM model, but analyzed in the I/O-model, with an analysis valid forany value ofB andM. Cache replace- ment is assumed to take place automatically by an opti- mal off-line cache replacement strategy. Since the analysis

holds for anyBandM, it holds for all levels simultane- ously.

The subject here is that of efficient cache-oblivious data structures for the ordered dictionary problem, i. e., the problem of storing elements with keys from an ordered universe while supporting searches, insertions, deletions, and range searches. In full generality, searches are prede- cessor searches, returning the element with the largest key smaller than or equal to the key searched for.

Key Results

The first cache-oblivious dictionary was given by Pro- kop [21], who showed how to lay out a static binary tree in memory such that searches takeO(logBn) mem- ory transfers. This layout, often called thevan Emde Boas layoutbecause it is reminiscent of the classic van Emde Boas data structure, also ensures that range searches take

O(logBn+k/B) memory transfers [2], wherekis the size of the output. Both bounds are optimal for comparison- based searching.

The first dynamic, cache-oblivious dictionary was given by Bender et al. [10]. Making use of a variant of the van Emde Boas layout, a density maintenance algorithm of the type invented by Itai et al. [19], and weight-balanced B-trees [5], they arrived at the following results:

Theorem 1 ([10]) There is a cache-oblivious dictionary structure supporting searches in O(logBn)memory trans- fers, and insertions and deletions in amortized O(logBn)

memory transfers.

Theorem 2 ([10]) There is a cache-oblivious dictionary structure supporting searches in O(logBn)memory trans- fers, insertions and deletions in amortized O(logBn + (log2n)/B) memory transfers, and range searches in O(logBn+k/B)memory transfers, where k is the size of the output.

Later, Bender et al. [7] developed a cache-oblivious struc- ture for maintaining linked lists which supports inser- tion and deletion of elements in O(1) memory trans-

122

C

Cache-Oblivious B-Tree

fers and scanning ofkconsecutive elements in amortized

O(k/B) memory transfers. Combining this structure with the structure of the first theorem above, the following re- sult can be achieved.

Theorem 3 ([7,10]) There is a cache-oblivious dictio- nary structure supporting searches in O(logBn) memory transfers, insertions and deletions in amortized O(logBn)

memory transfers, and range searches in amortized O(logBn+k/B)memory transfers, where k is the size of the output.

A long list of extensions of these basic cache-oblivious dic- tionary results has been given. We now survey these.

Bender et al. [11] and Brodal et al. [16] gave very sim- ilar proposals for reproducing the result of Theorem 2, but with significantly simpler structures (avoiding the use of weight-balanced B-trees). On the basis of exponen- tial trees, Bender et al.[8] gave a proposal withO(logBn) worst-case queries and updates. They also gave a solu- tion with partial persistence, where searches (in all ver- sions of the structure) and updates (in the latest version of the structure) require amortizedO(logB(m+n)) memory transfers, wheremis the number of versions andnis the number of elements in the version operated on. Bender et al. [14] extended the cache-oblivious model to a concur- rent setting, and gave three proposals for cache-oblivious

B-trees in this setting. Bender et al. [12] gave cache-obliv- ious dictionary structures exploring trade-offs between faster insertion costs and slower search cost. Franceschini and Grossi [17] showed how to achieveO(logBn) worst-

case queries and updates while usingO(1) space besides the space for thenelements stored. Extensions to dictio- naries on other data types such as strings [13,15] and geo- metric data [3,4,6] have been given.

It has been shown [9] that the best-possible multiplica- tive constant in the (logBn) search bound for compari- son-based searching is different in the I/O-model and in the cache-oblivious model.

Applications

Dictionaries solve a fundamental data structuring prob- lem which is part of solutions for a very high number of computational problems. Dictionaries for external mem- ory are useful in settings where memory accesses are dom- inating the running time, and cache-oblivious dictionaries in particular stand out by their ability to optimize the ac- cess to all levels of an unknown memory hierarchy. This is an asset e. g. when developing programs to be run on di- verse or unknown architectures (such as software libraries or programs for heterogeneous distributed computing like

grid computing and projects such as SETI@home). Even on a single, known architecture, the memory parameters available to a computational process may be non-con- stant if several processes compete for the same memory resources. Since cache-oblivious algorithms are optimized for all parameter values, they have the potential to adapt more gracefully to these changes, and also to varying in- put sizes forcing different memory levels to be in use. Open Problems

For the one-dimensional ordered dictionary problem dis- cussed here, one notable open problem is to find a data structure achieving worst case versions of all the bounds in Theorem 3.

Experimental Results

Cache-oblivious dictionaries have been evaluated empir- ically in [11,13,16,20,22]. The overall conclusion of these investigations is that cache-oblivious methods easily can outperform RAM algorithms, although sometimes not as much as algorithms tuned to the specific memory hier- archy and problem size in question. On the other hand, cache-oblivious algorithms seem to perform well on all levels of the memory hierarchy, and to be more robust to changing problem sizes.

Cross References B-trees Cache-Oblivious Model Cache-Oblivious Sorting I/O-model Recommended Reading

1. Aggarwal, A., Vitter, J.S.: The Input/Output complexity of sort- ing and related problems. Commun. ACM31(9), 1116–1127 (1988)

2. Arge, L., Brodal, G.S., Fagerberg, R.: Cache-oblivious data struc- tures. In: Mehta, D., Sahni, S. (eds.) Handbook on Data Struc- tures and Applications. CRC Press, Boca Raton (2005) 3. Arge, L., Brodal, G.S., Fagerberg, R., Laustsen, M.: Cache-oblivi-

ous planar orthogonal range searching and counting. In: Proc. 21st ACM Symposium on Computational Geometry, pp. 160– 169. ACM, New York (2005)

4. Arge, L., de Berg, M., Haverkort, H.J.: Cache-oblivious R-trees. In: Proc. 21st ACM Symposium on Computational Geometry, pp. 170–179. ACM, New York (2005)

5. Arge, L., Vitter, J.S.: Optimal external memory interval manage- ment. SIAM J. Comput.32(6), 1488–1508 (2003)

6. Arge, L., Zeh, N.: Simple and semi-dynamic structures for cache-oblivious planar orthogonal range searching. In: Proc. 22nd ACM Symposium on Computational Geometry, pp. 158– 166. ACM, New York (2006)

In document REGLAMENTO NACIONAL DE EDIFICACIONES (página 71-73)

Outline

Documento similar