q show the programmes for parallel systemsadding


Q. Show the Programmes for Parallel Systems?

Adding elements of an array using two processor    

 int sum, A[ n] ;  //shared variables                                                                                              

void main ( ){

                         int i ;

for (i=0; i

scanf ("%d",&A[i] );                                                                                                   

sum=0;                                                                                                                         

// now create process to be executed by processor P1                                                 

fork(1) add (A,n/2,n-1, sum); // process to add elements from index n/2 to -

1.sum is output variable          // now create process to be executed by processor

P0                                                                                           add (A,0,n/2-1,

sum);                                                                                                                             

join 1 ;                                                                                                                          

printf ("%d", sum); 

}                             

add (int A[ ], int lower, int upper, int sum)

{

int sum1=0, i;                   

for (i=lower; i<=upper; i++)                  

sum1=sum1+A[i];                                  

lock sum;                                                

sum=sum+sum1;                                    

unlock  sum ;                                         

}                              

In this program last half of array is passed to processor P1 that adds them. For the meantime processor P0 adds the first half of array. The variable sum is locked to avoid inconsistency.

Request for Solution File

Ask an Expert for Answer!!
Computer Engineering: q show the programmes for parallel systemsadding
Reference No:- TGS0324026

Expected delivery within 24 Hours