2015
DOI: 10.1145/2656337
|View full text |Cite
|
Sign up to set email alerts
|

On a Model of Virtual Address Translation

Abstract: Modern computers are not Random Access Machines (RAMs). They have a memory hierarchy, multiple cores, and a virtual memory. We address the computational cost of the address translation in the virtual memory. The starting point for our work on virtual memory is the observation that the analysis of some simple algorithms (random scan of an array, binary search, heapsort) in either the RAM model or the External Memory (EM) model does not correctly predict growth rates of actual running times. We propose the Virtu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2017
2017
2020
2020

Publication Types

Select...
3
1

Relationship

0
4

Authors

Journals

citations
Cited by 4 publications
(4 citation statements)
references
References 7 publications
(9 reference statements)
0
4
0
Order By: Relevance
“…Extrapolating this to 100 GiB gives 84 494 seconds -about 100 times more than the algorithm from [11]. Note that divsufsort is much slower when extrapolating from traditionally small inputs as we need a 64-bit version, due to NUMA effects, and because for really large inputs a logarithmic term in virtual address translation becomes noticeable [16]. There exists also a parallel variant of divsufsort, where one of its two sorting steps is parallelized.…”
Section: Methodsmentioning
confidence: 99%
“…Extrapolating this to 100 GiB gives 84 494 seconds -about 100 times more than the algorithm from [11]. Note that divsufsort is much slower when extrapolating from traditionally small inputs as we need a 64-bit version, due to NUMA effects, and because for really large inputs a logarithmic term in virtual address translation becomes noticeable [16]. There exists also a parallel variant of divsufsort, where one of its two sorting steps is parallelized.…”
Section: Methodsmentioning
confidence: 99%
“…Additionally, we use an adaptive number of buckets on the last two levels of the recursion, such that the expected size of the final buckets remains reasonable. For example, instead of performing two 256-way partitioning steps to get 2 16 buckets of 2 elements, we might perform two 64-way partitioning steps to get 2 12 buckets of about 32 elements. Furthermore, on the last level, we perform the base case sorting immediately after the bucket has been completely filled in the cleanup phase, before processing the other buckets.…”
Section: Implementation Detailsmentioning
confidence: 99%
“…Consequently, a huge amount of research on sorting has been done. In particular, algorithm engineering has studied how to make sorting practically fast in presence of complex features of modern hardware like multi-core (e.g., [4,28,29,30]), instruction parallelism (e.g., [27]), branch prediction (e.g., [9,17,18,27]), caches (e.g., [4,6,10,27]), or virtual memory (e.g., [16,24]). In contrast, the sorting algorithms used in the standard libraries of programming languages like Java or C++ still use variants of quicksort -an algorithm that is more than 50 years old.…”
Section: Introductionmentioning
confidence: 99%
“…Consequently, a huge amount of research on sorting has been done. In particular, algorithm engineering has studied how to make sorting practically fast in presence of complex features of modern hardware like multi-core (e.g., [9,11,28,35,37,46,51,57,61,61,63,65,66,70,70]) instruction parallelism (e.g., [17,37,61,64]), branch prediction (e.g., [9,21,43,64,67,76]), caches (e.g., [11,14,26,46,64]), or virtual memory (e.g., [42,62,71]). In contrast, the sorting algorithms used in the standard libraries of programming languages like Java or C++ still use variants of quicksort -an algorithm that is more than 50 years old [36].…”
Section: Introductionmentioning
confidence: 99%