First pass: enumerate all candidates, put them in a sorted array of atomic ints
Second pass: binary search over the array, update the preceding/succeeding characters and set a flag if it is a bifurcating kmer
All in parallel, first pass is with a hashet with a spinlock
First pass: enumerate all candidates, put them in a sorted array of atomic ints Second pass: binary search over the array, update the preceding/succeeding characters and set a flag if it is a bifurcating kmer
All in parallel, first pass is with a hashet with a spinlock
Or, alternatively, use a lock-free hash table http://preshing.com/20130605/the-worlds-simplest-lock-free-hash-table/