refresh-bio / KMC

Fast and frugal disk based k-mer counter
256 stars 73 forks source link

serious bug: results depend on memory and thread parameters #92

Closed notestaff closed 5 years ago

notestaff commented 6 years ago

kmcbug1.zip @marekkokot maybe check with valgrind? there seems to be some silent memory corruption going on .

marekkokot commented 6 years ago

@notestaff Thanks for reporting this issue. I hope 981e2fd534f8df2da5a782159e09811656bb8dd2 will solve the issue. Let me know if it helps and if it does, please close the issue.

If you are interested in details: The problem was that KMC should always use special subroutine when k is small (especially if it is lower than the signature length (-p parameter, 9 in default). When there is not much memory and a couple of threads then KMC concluded that small k optimization is not profitable, but for such small k, in fact, it is and furthermore it is required. Now some internal parameters and in some cases the number of threads is lowered to fill in available memory.

marekkokot commented 5 years ago

I assume it is OK after the fix I prepared, so I am closing this issue. If needed please reopen.