Difference between revisions of "Atomic K-Mer"

From CSE231 Wiki
Jump to navigation Jump to search
(Created page with "=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 safe...")
 
 
Line 4: Line 4:
 
=Background=
 
=Background=
 
[https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReferenceArray.html AtomicReferenceArray]
 
[https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicReferenceArray.html AtomicReferenceArray]
 +
 
[http://tutorials.jenkov.com/java-concurrency/volatile.html volatile]
 
[http://tutorials.jenkov.com/java-concurrency/volatile.html volatile]
  

Latest revision as of 15:19, 25 April 2018

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 Java.png
methods: parse
package: kmer.extracredit
source folder: student/src/main/java

method: public KMerCount parse(List<byte[]> sequences, int k) Parallel.svg (parallel implementation required)

Testing Your Solution

Correctness

class: OpenEndedKMerTestSuite.java Junit.png
package: kmer.extracredit
source folder: testing/src/test/java

Performance

class: ExtraCreditKMerTiming.java Noun Project stopwatch icon 386232 cc.svg
package: kmer.extracredit
source folder: src/main/java