With the rise of multi-core architecture, parallel programming is an increasingly important topic for software engineers and computer system designers. …