联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-21:00
  • 微信:codinghelp

您当前位置:首页 >> C/C++编程C/C++编程

日期:2018-11-15 10:29

Wentworth Institute of Technology

     COMP3400 – Operating Systems

  Project

The goal of the project is to use threads to get performance gain on a uniprocessor or on a multicore processor. The basic idea is to divide the problem into subtasks, assign each subtask to a separate thread and then combine the results to get the complete solution. The strategy is called the divide and conquer.

A single task, sorting a file, is divided into subtasks which are delegated to separate threads. Merge-sort, in which the array to be sorted is divided into smaller arrays, is a divide and conquer algorithm. Each small array is sorted individually, and the individual sorted arrays are merged in pairs to yield larger sorted arrays. The pairwise merging continues until the entire array is sorted.

Generally, merge-sort starts with small arrays, which can be sorted efficiently with a simple algorithm such as qsort, as shown below        

Sort Phase  Merge Phase

After the sort phase, the sorted subarrays are merged in pairs to generate larger sorted arrays. The merging continues until completion.    

The environment and input for this experiment consists of:

1.Linux OS (Linux Server in the Lab)

2.pthreads

3.Memory mapped file so Merge-sort can sort and merge the file in memory

4.You will be provided a test file consisting of 128, 64 byte records for testing and debugging. Each record has an 8 byte key and 56 byte data.

5.You will also be provided a file consisting of one million fixed size records of 64 bytes each to run the experiment


The program finds the number of cores, N, programmatically and displays it to the user.  The user specifies the threads to use on the command line.


Run the experiment with 2, 4, 8, …. N threads and display the elapsed time for each run. If the number of cores is <= 2, you can stop the test after 8 threads. The number of threads used must be a power of 2.


Running the experiment

Name your application sortMerge. The syntax of the command to run the program is

./sortMerge  <number of threads>  <filename>


1.Run sortMerge with the test data file and record the elapsed times. Save the sorted test file.

2.Run sortMerge with the one million records data file and record the elapsed times.

3.Graph the elapsed times versus the number of threads from step #2.

Submissions

1.All Source files (.c and .h)

2.Output file, showing the user interactions,  and the graph showing elapsed times for the various runs.

3.The sorted test file.


版权所有:编程辅导网 2021 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp