return result (a) Assume that you have Y cores on a multicore processor to run Mergesort. Assuming that Y is much smaller than length(m), express the speed-up factor you might expect to obtain for values of Y and length(m). Plot these on a graph (b) Next, assume that Y is equal to length (m). How would this affect your conclusions in your previous answer? If you were tasked with obtaining the best speed-up factor possible (i.e., strong scaling), explain how you might change this code to obtain it.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
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 first(left) to result
rest(left)
left
else
append first (right) to result
right rest (right)
if length (left) > 0
append rest(left) to result
if length (right) > >
append rest (right) to result
return result
(a) Assume that you have Y cores on a multicore processor to run Mergesort. Assuming that Y is much smaller than length(m),
express the speed-up factor you might expect to obtain for values of Y and length(m). Plot these on a graph
(b) Next, assume that Y is equal to length (m). How would this affect your conclusions in your previous answer? If you were tasked
with obtaining the best speed-up factor possible (i.e., strong scaling), explain how you might change this code to obtain it.
Transcribed Image Text: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 first(left) to result rest(left) left else append first (right) to result right rest (right) if length (left) > 0 append rest(left) to result if length (right) > > append rest (right) to result return result (a) Assume that you have Y cores on a multicore processor to run Mergesort. Assuming that Y is much smaller than length(m), express the speed-up factor you might expect to obtain for values of Y and length(m). Plot these on a graph (b) Next, assume that Y is equal to length (m). How would this affect your conclusions in your previous answer? If you were tasked with obtaining the best speed-up factor possible (i.e., strong scaling), explain how you might change this code to obtain it.
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 x of m 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 = length (m) / 2
for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = Mergesort (left)
right = Mergesort (right)
result = Merge(left, right)
return result
Transcribed Image Text: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 x of m 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 = length (m) / 2 for each x in m up to middle add x to left for each x in m after middle add x to right left = Mergesort (left) right = Mergesort (right) result = Merge(left, right) return result
Expert Solution
steps

Step by step

Solved in 4 steps

Blurred answer
Knowledge Booster
ALU instructions
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education