Parallel prefix sum - fastest Implementation
algorithm, c++
Solution
Following piece of code will do the job
void prfxSum()
{
int *x=0;
int *y=0;
int sum=0;
int num=0;
int i=0;
cout << "Enter the no. of elements in input array : ";
cin >> num;
x = new int[num];
y = new int[num];
while(i < num)
{
cout << "Enter element " << i+1 << " : ";
cin >> x[i++];
}
cout << "Output array :- " << endl;
i = 0;
while(i < num)
{
sum += x[i];
y[i] = sum;
cout << y[i++] << ", ";
}
delete [] x;
delete [] y;
}
Following is the output on execution
Enter the no. of elements in input array : 8
Enter element 1 : 1
Enter element 2 : 2
Enter element 3 : 3
Enter element 4 : 4
Enter element 5 : 5
Enter element 6 : 6
Enter element 7 : 7
Enter element 8 : 8
Output array :-
1, 3, 6, 10, 15, 21, 28, 36
You can avoid the user input of 1000 elements of array x[] by feeding it from file or so.
Problem
I want to implement the parallel prefix sum algorithm using C++. My program should take the input array `x[1....N]`,and it should display the output in the array `y[N]`. (Note the maximum value of N is 1000.) So far, I went through many research papers and even the algorithm in Wikipedia. But my program should also display the output, the steps and also the operations/instructions of each step. I want the fastest implementation like I want to minimise the number of operations as well as the steps. For example:: ``` x = {1, 2, 3, 4, 5, 6, 7, 8 } - Input y = ( 1, 3, 6, 10, 15, 21, 28, 36) - Output ``` But along with displaying the y array as output, my program should also display the operations of each step. I also refer this thread calculate prefix sum ,but could get much help from it.