The Familial Search software is optimized for computing parent—, sibling— and
half sibling indices and direct matches for very large databases (millions of profiles).
These likelihood ratios are used to investigate possible familial relations between a
crime scene DNA profile and offender DNA profiles in the database.
Familial Searches are usually performed on DNA databases containing million of profiles.
It is therefore important to have significant performance from the algorithms in order to reduce
waiting times.

Bonaparte Familial Search is a highly optimized software application. To illustrate this we
searched one suspect profile against 520,000 known profiles (all drawn from Caucasian population statistics)
on a single CPU server machine that also ran the database. The results are
displayed in the graph below.

Figure 1: Time to search a single profile against 520,000 target profiles for
parent-child, sibling or half sibling indirect relations and for direct matching on a fairly
standard machine. This time includes the loading and writing times.

The graphs show the elapsed time for a full match process including loading profiles and writing the results—without
database interaction each processing core computes about 100,000 matches per second:

Figure 2: The Familial Search Match Monitor dialog shows information about each of the
processing threads (6 in this case) computing sibling indices. Each processor computes about 100,000
of these indices per second. In the end, none of them has a LR higher than the specified threshold (LR=1),
so none were actually stored.

The server used to obtain the results above was a single CPU Intel Xeon X5680 server, 24GB RAM and dual 1 TB hard disks
in RAID 1 (mirror) running FreeBSD 8.2-release. This machine hosted both Bonaparte and the MySQL database.