A multiple kernel design. The alignment of a sequencing read is performed by multiple DFS kernel threads. Each of the sequencing reads is partitioned into short fragments and multiple kernel threads are launched to map each of the fragments to the reference in a consecutive manner. The figure shows an example of mapping a 5 bp read: The first kernel thread (A) processes only the first 3 bp and returns partial hits (3), (5) and (6) to a temporary memory store in the host computer, ranked according to the number of differences in these hits, mimicking the BFS strategy in BWA. Following that, threads (B), (C) and (D) are launched in an orderly manner to map the remaining 2 bp to obtain the full alignments (5, 3) and (6, 3).