Question: Consider the following recursive mergesort algorithm (another classic divide and conquer algorithm). Mergesort was first described by John Von Neumann in 1945. The basic idea

Consider the following recursive mergesort algorithm (another classic divide and conquer algorithm). Mergesort was first described by John Von Neumann in 1945. The basic idea is to divide an unsorted list of elements into two sublists of about half the size of the original list. Repeat this operation on each sublist, and continue until we have lists of size 1 in length. Then starting with sublists of length

1, €œmerge€ the two sublists into a single sorted list.

Mergesort(m) var list left, right, result if length(m)< 1 return m else var middle for each x in m up to middle add x to

The merge step is carried out by the following code:

Merge (left,right) var list result while length(left) >0 and length(right) > 0 if first(left) < first(right) append firs

1. Assume that you have Y cores on a multicore processor to run MergeSort. Assuming that Y is much smaller than length(m), express the speedup factor you might expect to obtain for values of Y and length(m). Plot these on a graph.

2. Next, assume that Y is equal to length (m). How would this affect your conclusions your previous answer? If you were tasked with obtaining the best speedup factor possible (i.e., strong scaling), explain how you might change this code to obtain it.

Mergesort(m) var list left, right, result if length(m) < 1 return m else var middle for each x in m up to middle add x to left length(m) / 2 for each x in m after middle add x to right left = Mergesort(left) right = Mergesort(right) result = return result Merge (left, right) Merge (left,right) var list result while length(left) >0 and length(right) > 0 if first(left) < first(right) append first(left) to result left = rest(left) else append first(right) to result right = rest(right) if length(left) >0 append rest(left) to result if length(right) >0 append rest(right) to result return result

Step by Step Solution

3.40 Rating (159 Votes )

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock

1 This problem is again a divide and conquer problem but utilizes recursion to produce a very compac... View full answer

blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Computer Organization Design Questions!