Parallel Comp and Dist Sys|Quick homework help

Posted: February 9th, 2023

 the assignment is about using multithreading for parallel programming. In the assignment folder you will find:

  • zip file for examples of using Java Multithreading main functions.
  • the pdf version of the assignmentParallel Computing and Distributed Systems

    Assignment 1 (10 points)

    Deadlines from 1 hour
    Get A+ help
    with any paper

    Question1 (parallel vs. sequential):

    In this question, we need to measure the time difference between performing certain tasks sequentially and dividing and then performing the same task in parallel. Create a class named STUDENT, that holds the student’s GPA (float value between 2.0 to 4.0), AGE (integer value between 18 to 30), and ID (unique integer value per student). For each of the following versions, calculate (using Java.Time or the Java API you find appropriate) how long each version takes in seconds.

    • Sequential version (Name this file as Q1_SeqV.java): o Create a list of 50,000 students with randomly generated GPAs, randomly generated Ages, and sequential IDs. o After creating the list, your program calculates and prints the average GPA and average AGE.

    • Parallel version 1 (Name this file as Q1_PLV1.java): o Repeat the sequential version using two threads along with the main thread. o Each thread creates a list of 25,000 students with randomly generated GPAs, randomly generated Ages, and sequential IDs. o Each of the two threads then calculates the average GPA and AGE (after creating the lists). o The two threads work in parallel. o The main thread waits for the two threads to finish and then calculates and prints the final average GPA and AGE from what

    is reported by the individual threads.

    • Parallel version 2 (Name this file as Q1_PLV2.java): o Repeat the Parallel version1 task using five threads (each is working on 10000 students) along with the main thread.

    To measure the time your computer takes to complete a certain task:

    • Read and store the current time (t1) before you start the task (e.g., before creating the lists), • After the task (e.g., after calculating the average), read and store the current time (t2). • The time it takes your computer to complete the task is then: t2 – t1.

    Question2 (Sorting):

    In this question, we need to divide, sort, and merge a list of Employees using the multithreading framework. Create a class named EMPLOYEE that holds the employee’s ID (integer value of unique value) and salary (integer value).

    Step1: The main thread creates a list of 10,000 Employees with sequential IDs (1 to 10,000 to keep them unique) and randomly generated salaries (between 1500 to 4000); name this list EmpList.

    Step2: Split the generated list EmpList into two lists of equal length: List1, and List2.

    Step3: Create two threads; each thread should sort the corresponding list (thread1 sorts List1, and thread2 sorts List2) ascendingly with respect to the salary.

    Step4: The main thread then waits for the two threads, then merge the two sorted sublists (List1 and List2) into the main list (EmpList) ascendingly with respect to the salary.

    Submission: 1. Use the IDE you find appropriate to develop your Java programs, and then create one PDF file where you list/copy the code

    you developed for each question along with a screenshot for the outputs (of question 1 only).

    2. Submit ONE ZIP/RAR file for the developed Java files and the PDF, named lastname_firstname.zip, directly to the folder titled Assignment 1 under the D2L Assignments tab (other formats will not be accepted).

    3. Check the due date on D2L. You can submit your assignment within 24 hours after this due date to be graded out of 50% of the assignment’s grade. After this grace period, your late submission will not be accepted.

SOLUTION

Measuring the time difference between sequential and parallel task execution can be done by timing the execution of each scenario and comparing the results.

In the sequential scenario, tasks are performed one after the other, with the completion of one task preceding the start of the next task. The total time for this scenario will be the sum of the time taken to perform each task.

In the parallel scenario, tasks are divided and performed simultaneously. The total time for this scenario will be equal to the time taken to perform the longest task.

The difference in time between the two scenarios can be substantial, especially for computationally intensive tasks or when many tasks are involved. By performing tasks in parallel, it’s possible to significantly reduce the total execution time, providing a significant performance boost.

It’s important to note that the actual speedup obtained by parallel execution will depend on the specifics of the task and the hardware being used. There may also be some overhead associated with dividing the tasks and coordinating their execution, so the speedup may not be as large as one might expect.

Expert paper writers are just a few clicks away

Place an order in 3 easy steps. Takes less than 5 mins.

Calculate the price of your order

You will get a personal manager and a discount.
We'll send you the first draft for approval by at
Total price:
$0.00