Motivation
With many more buckets than processors there is reason to be optimistic. Dramatic performance improvements can be achieved by using atomics to ensure thread safety instead of locks.
Background
AtomicReferenceArray
volatile
Code To Implement
class: |
OptimisticConcurrencyKMerCounter.java |
|
methods: |
parse |
package: |
kmer.extracredit |
source folder: |
student/src/main/java |
method: public KMerCount parse(List<byte[]> sequences, int k)
(parallel implementation required)
Testing Your Solution
Correctness
class: |
OpenEndedKMerTestSuite.java |
|
package: |
kmer.extracredit |
source folder: |
testing/src/test/java |
Performance
class: |
ExtraCreditKMerTiming.java |
|
package: |
kmer.extracredit |
source folder: |
src/main/java |