TH-1: The array summary
Requirements
- Write a C++ program creates an array of N elements (N > 1 000 000).
- Initialize the array with random values at the beginning.
- Compute summary of the array using a regular for loop and calculate the time spent for the operation.
- Create M threads to sum the same array with multiple threads, considering that every thread gets an equal portion to sum, except, maybe, the last one.
- Wait for all the threads to complete and measure the time spent for summing the array using M threads.
- Print the durations spent to sum the array with and without threads.
- Note that N and M variables should be passed to the program via command line arguments.
Expected result
The resulting application should be able to build and execute from command line as follows:
make
./array-summary 1000000 4and the command should print the output to the console as follows:
Time spent without threads: X
Time spent with M threads: YThe final solution should contain a Makefile for the multi-stage build. The Makefile should also contain targets all and clean. It’s recommended to have compiler and compiler flags to be declared as a Makefile variables. Alternatively, cmake could also be used instead of make.