USE SIMPLE PYTHON MULTI THREADING code to perform parallel array summing. replace the mthod of using processes to complete and use threading techniques to do the same the thing.  1) Basic version with two levels of threads (master and slaves) One master thread aggregates and sums the result of n slave-threads where each slavethread sums a different range of values in an array of 1000 random integers (please  program to generate 1000 random integers to populate the array). The number of slave-threads is a parameter which the user can change. For example, if the  user chooses 4 slave threads, each slave thread will sum 1000/4 = 250 numbers. If the user  chooses 3 slave threads, the first two may each sum 333 numbers and the third slave thread sums the rest 334 numbers. 2) Advanced version with more than two levels of threads The master thread creates two slave-threads where each slave-thread is responsible to sum  half segment of the array.  Each slave thread will fork/spawn two new slave-threads where each new slave-thread sums half of the array segment received by its parent. Each slave thread will return the  subtotal to its parent thread and the parent thread aggregates and returns the total to its  parent thread. Start with 7 nodes thread tree, when you are comfortable, you can extend it  to a full thread tree.

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
100%

USE SIMPLE PYTHON MULTI THREADING code to perform parallel array summing. replace the mthod of using processes to complete and use threading techniques to do the same the thing. 

1) Basic version with two levels of threads (master and slaves)
One master thread aggregates and sums the result of n slave-threads where each slavethread sums a different range of values in an array of 1000 random integers (please 
program to generate 1000 random integers to populate the array).

The number of slave-threads is a parameter which the user can change. For example, if the 
user chooses 4 slave threads, each slave thread will sum 1000/4 = 250 numbers. If the user 
chooses 3 slave threads, the first two may each sum 333 numbers and the third slave thread
sums the rest 334 numbers.

2) Advanced version with more than two levels of threads
The master thread creates two slave-threads where each slave-thread is responsible to sum 
half segment of the array. 

Each slave thread will fork/spawn two new slave-threads where each new slave-thread
sums half of the array segment received by its parent. Each slave thread will return the 
subtotal to its parent thread and the parent thread aggregates and returns the total to its 
parent thread. Start with 7 nodes thread tree, when you are comfortable, you can extend it 
to a full thread tree.

Expert Solution
Step 1:Here's sample code for the basic version of parallel array summing using threading in Python

Here's a sample code for the basic version of parallel array summing using threading in Python:

CODE in PYTHON:

import random
import threading

def sum_array(arr, start, end, result):
    total = 0
    for i in range(start, end):
        total += arr[i]
    result.append(total)

def parallel_sum(arr, num_threads):
    n = len(arr)
    chunk_size = n // num_threads
    threads = []
    result = []

    for i in range(num_threads):
        start = i * chunk_size
        end = start + chunk_size
        if i == num_threads - 1:
            end = n
        thread = threading.Thread(target=sum_array, args=(arr, start, end, result))
        threads.append(thread)
        thread.start()

    for thread in threads:
        thread.join()

    return sum(result)

# Generate 1000 random integers
arr = [random.randint(0, 1000) for _ in range(1000)]

# Test parallel_sum function with 4 threads
print(parallel_sum(arr, 4))

trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Avoiding deadlock
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