Home | Libraries | People | FAQ | More |
The algorithm used in boost::genetics::two_stage_index
is an experimental one that is designed to minimise random memory access. This
is critical because random memory access outside the Level 2 cache range is
penalised heavilly with TLB misses and lengthy and power-hungry access to physical
DRAM or FLASH.
This can be mediated to a degree using cache hints and non-temporal access instructions but as of 2015 the X86 architecture has limited support for non-temporal memory access.
The result is that sequential reads can be 3000 or more times faster than random reads.
We hope to offer other algorithms in the future such as the more traditional Burrows-Wheeler transform.