Data, data, data! The world today is all about data. It’s easy to search through data, but how can we do it efficiently? Parallel design techniques are often used for sorting today. In previous courses you have learned about “Merge Sort”. You’ve probably even implemented it. For this assignment you will be taking a sequential version of the merge sort algorithm and converting it to use parallel processing techniques, applying all the do’s and don’t we have discussed in class.
You will receive starting code with the Merge Sort implemented in C++ sequentially. However, it is important for you to understand how the merge sort works. If you need a bit of a refresher, I recommend watching the following YouTube video.
Since this is not a course on data sorting, I have provided you with a starting point that performs a merge sort using sequential programming. Download the A2_StartingPoint.cpp file from eConestoga and import it into a Visual Studio solution space.
The program has no errors and should compile and execute.
HINT
As you are performing your development, keep the
const int N = 10. When you are ready increase the
value and see what happens.
In order to design a parallel version of this algorithm you will need to design and implement and new function that will handle the segmentation and distribution of the data to multiple threads. Create a new function called “Parallel_Merge_Sort” to perform this activity.
Once you have implemented your parallel code update the main to execute the parallel processing after the sequential processing
Using a N size of 10, run your program, take a screenshot and upload it into the box below.
Add code to evaluate the time and efficiency of the two versions of execution. Your code should calculate and display the following information:
HINT
Comment out the code that prints the arrays and results and increase the N to a size of 100000 or more
NOTE: Your Parallel Solution should be faster and more efficient than the sequential version.
Take a screenshot of your application’s output showing the timing results listed above and upload it into the box below.
Update your program one more time to create a global standard vector space that stores thread::ids. In the critical section of your source code have the current thread running the code push its ID into the global vector every time the critical section executes.
Rubric
See eConestoga for details.
Once you have completed your lab upload the following files INDIVIDUALLY to eConestoga using the submission link:
Please make sure you delete all .vs (Hidden), release and debug directories before you compress and upload your solution.

![[SOLVED] Cscn73000 assignment 2- parallel data processing – sorting data](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip.jpg)

![[SOLVED] Individual Programming Assignment](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip-1200x1200.jpg)
Reviews
There are no reviews yet.