[chemfp] 33% speedups for 4096 bit searches

Andrew Dalke dalke at dalkescientific.com
Tue Nov 8 18:44:07 EST 2011


I added an performance optimization just now. If the fingerprint
lengths are a multiple of 32 bits then I can take better advantage
of the hardware with relatively little effort.

My one benchmark used fingerprints of size 4096 bits, with 454
queries and 163536 targets, which is 74245344 possible comparisons.

Using a --count search (which is the fastest) I got
search times of:

threshold old new
========= ===== =====
0.95 2.0 s 1.3 s
0.9 3.8 2.6
0.8 7.9 5.3
0.7 12 8.3
0.6 17 13
0.5 22 15
0.4 - 18
0.3 21
0.2 24
0.1 25
0.0 26
0.0 0.0 (special-case optimization)

If I did my math right, that's about 28 million 4096-bit
comparisons per second, or 35ns per comparison. On a
single node of a desktop machine.

Andrew
dalke at dalkescientific.com




More information about the chemfp mailing list