paperKB
coga / coga-kb
Help
Sign in

Chunk #10 — Findings — Improvements in PLINK 1.9 — Bit population count

Source
Second-generation PLINK: rising to the challenge of larger and richer datasets.
Embedded
yes

Text

The “popcount” function above, defined as the number of ones in a bit vector, merits further discussion. Post-2008 x86 processors support a specialized instruction that directly evaluates this quantity. However, thanks to 50 years of work on the problem, algorithms exist which evaluate bit population count nearly as quickly as the hardware instruction while sticking to universally available operations. Since PLINK is still used on some older machines, we took one such algorithm (previously discussed and refined by [9]), and developed an improved SSE2-based implementation. (Note that SSE2 vector instructions are supported by even the oldest x86-64 processors).