Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Rationale

Gene Searches

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.


PrevUpHomeNext