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

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;

   }

Posted Date: 6/29/2012 2:13:59 AM | Location : United States







Related Discussions:- Prevention of a data race in a parallelised program, Assignment Help, Ask Question on Prevention of a data race in a parallelised program, Get Answer, Expert's Help, Prevention of a data race in a parallelised program Discussions

Write discussion on Prevention of a data race in a parallelised program
Your posts are moderated
Related Questions
Describe when you run an unlink() operation to remove a file on the ext3 file system. Be specific about what disk blocks have to be written where in what order. State your assumpti

Ask quesIn JavaScript, what is event handling tion #Minimum 100 words accepted#

what is the latest OS of ANDROID in US

Direct communication With direct communication each process that requires to communicate must explicitly name the recipient or sender of the communication. The send and receive

Explain the various methods for handling deadlocks.      A set of processes is deadlocked if every process in the set is waiting for an event that only a process in the

Facilities of a Debug Monitor Facilities of a debug monitor are like this: Setting breakpoints in the program Initiating a debug conversation while control reaches

Perform alpha-beta pruning on the following tree. Put an "X" over each node that is pruned. Put the final value next to all other nodes. Indicate which action MAX should take: to B

Q. How could a system be designed to allow a choice of operating systems to boot from? What would the bootstrap program need to do? Answer: Delieve a system that would like to

Question 1: "Three entities must be accountable and responsible for accident prevention." (a) List and explain these three entities. (b) Discuss the role of workers in ma

Normal 0 false false false EN-IN X-NONE X-NONE MicrosoftInternetExplorer4