Strategy

profilerefresh
strategy.docx

Strategy

Application: The Impact of I/O on Application Performance

In previous assignments, you used threads to improve the performance of a sort algorithm. Threads were initially applied in order to achieve processing concurrency in order to reduce the time required to sort data. This week’s readings highlighted various ways that I/O performance can impact the overall performance of an application or a system. The readings also identified specific principles that can be applied to improve the efficiency of I/O.

For this Assignment, you will consider the I/O performed in the threaded sort Assignment from Week 2 and how the I/O contributes to the performance of the threaded sort. Applying the principles identified in this week’s reading, along with the concurrency control mechanisms from Week 3, you will revise the threaded sort application in an effort to improve the I/O performance in order to affect an overall performance improvement.

To prepare:

· Evaluate the manner by which the threaded sort application performs I/O to retrieve the data to be sorted.

· Propose a strategy to improve the performance by applying one or more of the principles to improve the efficiency of I/O that were identified in this week’s reading.

1 Implement your strategy by modifying your solution to the threaded sort Assignment from Week 2. (submit a zip, NetBeans)

2 In addition, write a 2- to 3-page paper that evaluates how I/O performance impacts overall program performance. Make sure to include the following:

· A description of your I/O strategy

· An explanation on how you expected your strategy to improve performance

· A summary of the actual change in performance observed when running the updated threaded sort.

Submit a zip archive of your NetBeans project, implementing your strategy, to the Assignment Part 1 - Week submission link

And

Your 2- to 3-page paper to the Assignment Turnitin Part 2 - Week submission link..

This is Week 2 Assignment: I/O performed in the threaded sort Assignment from Week 2 and how the I/O contributes to the performance of the threaded sort.

In the above figure, it is quite clear that non-threaded application takes more time than the multithreaded application.

In non-threaded code, only one thread is responsible to read the data from the file and then sort the data. All the operations are performed in the sequential manner.

The next step of operation is to wait until the current operation is performed

In contrast to multithreading application, the task is divided among all the thread and each thread is independent of other thread so that they can perform the operation independently.

In this code, each thread is given the file to sort its file data while the main thread to wait for all the thread until all the threads finished their respective operation.

When all the threads finish their job then the main thread combine all their respective sorted data and sort the combined result and return the main sorted data.

The non-threaded application takes 1.740986471 seconds to sort the all file data.

While the threaded code takes only 1.139332902 seconds to read and sort the data.

Hence we can say that multithreaded code is more efficient than the non-threaded code in terms of the time complexity and utilization of the resources.