Preparation
Create a new directory where all the files would live.
http://mpitutorial.com/tutorials/installing-mpich2/
这里只是简单的把编译程序复制到用户的 home 目录下,然后执行。
1 | # replace hello.c with your own source code file name |
Succinct: expressed clearly and in a few words. 中文意思就是简洁明了的。首先看一下 wiki 引用对于 succinct data structure 的描述:
In computer science, a succinct data structure is a data structure which uses an amount of space that is “close” to the information-theoretic lower bound, but (unlike other compressed representations) still allows for efficient query operations.
Suppose that Z is the information-theoretical optimal number of bits needed to store some data. A representation of this data is called:
implicit
: if it takes Z+O(1) bits of space,succinct
: if it takes Z+o(Z) bits of space,compact
: if it takes O(Z) bits of space.For example, a data structure that uses 2Z bits of storage is compact, Z + \sqrt{Z} bits is succinct, Z+lgZ bits is also succinct, and Z+3 bits is implicit.
使用 Ubuntu 16.04.
1 | sudo apt install libglib2.0-dev libgcrypt20-dev zlib1g-dev gcc-multilib autoconf automake bison flex |
下载实验材料:
1 | athena% mkdir ~/6.828 |
A trie that each node which is the only child is merged with its parent.
The adaptive radix tree is a radix tree variant that integrates adaptive node sizes
to the radix tree. One major drawback of the usual radix trees
is the use of space, because it uses a constant node
size in every level. The major difference
between the radix tree and the adaptive radix tree is its variable size for each node
based on the number of child elements, which grows while adding new entries. Hence, the adaptive radix tree leads to a better use of space without reducing its speed.
既然是动态增加的,node 本身的 memory 分配也应该是动态的,那么 memory 不连续,可能会导致 cache miss 问题。这个需要看原文 paper 看是否存在。link