Prevention of a data race in a parallelised program, Operating System

Assignment Help:

Present your own fully documented and tested programming example illustrating the prevention of a data race in a parallelised program.

This is an example where total number of prime number between 2 and 10000 is being calculated. The order of memory accesses is prevented from being non-deterministic and from the code data race is avoided by making it parallelized with OpenMP directives.  The inconsistency can be seen by running the program consecutively for 3 or more times.

 

#include

#include

#include

#define MyThreads 4

#define num 10000

 

   int primeNum[num];

   int primeF[num];

 

   int is_prime(int v)

   {

    int i;

    int lim = floor(sqrt(v)) + 1;

 

    for (i = 2; i < lim; i++) {

           /* no need to check against known composites */

           if (!primeF[i])

               continue;

           if (v % i == 0) {

               primeF[v] = 0;

               return 0;

           }

       }

       return (v > 1);

   }

 

   int main(int argn, char **argv)

   {

       int i;

       int total = 0;

            printf("Enter a number greater than 2");

            scanf("%d", &num)

   #ifdef _OPEnumMP

       omp_set_dynamic(0);

       omp_set_num_threads(MyThreads);

   #endif

 

       for (i = 0; i < num; i++) {

           primeF[i] = 1;

       }

 

       #pragma omp parallel for

       for (i = 2; i < num; i++) {

           if ( is_prime(i) ) {

               primeNum[total] = i;

               total++;

           }

       }

        printf("total prime numbers that lie between 2 and %d: %d\n",

              num, total);

       return 0;

   }


Related Discussions:- Prevention of a data race in a parallelised program

Race condition, list the prevention of mechanism for race condition with op...

list the prevention of mechanism for race condition with operating system

Thread, advantages and disadvantages of kernal level thread

advantages and disadvantages of kernal level thread

Is the internet a lan or else a wan, Q. Is the Internet a LAN or else a WAN...

Q. Is the Internet a LAN or else a WAN? Answer: The Internet is a WAN as the a variety of computers are located at geographically different places and are connected by long-dis

Explain swapping, Explain Swapping Swapping is a method of temporarily ...

Explain Swapping Swapping is a method of temporarily removing inactive programs from the memory of computer system.

Fork join, fork and join syntax in java

fork and join syntax in java

Main advantages of the microkernel approach to system design, What are the ...

What are the main advantages of the microkernel approach to system design? Benefits typically contain the following  (a) Adding a new service does not require modifying the

Is disk scheduling except fcfs scheduling, Q. Is disk scheduling except FC...

Q. Is disk scheduling except FCFS scheduling useful in a single-user environment? describe your answer. Answer: In a single-user environment the I/O queue typically is empty.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd