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
Hierarchical paging Single way is to use a two-level paging algorithm, in which the page table itself is also paged. A logical address is separated into a page number and a pag

Determine a processing that is not a part of Synthesis phase  Perform LC processing is not a part of Synthesis phase

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

Q. What are the major differences between capability lists and access lists? Answer: An access list is a list for each object consisting of the domains with a nonempty set of

MEMORY MANAGEMENT USING BIT MAPS   In this memory is separated into different allocation units each of some particular size(a few bites).consider every space of size 4k. A

Write a short note about context switch. Switching the CPU to another process needs saving the state of the old process and loading the saved state for the new process. This ta

Q. Advantages and disadvantages of multiprogramming? Advantages 1.    High CPU utilization. 2. It appears that many programs are allotted CPU almost concurrently. D

What are the advantages of Linked allocation? The benefits are a. No external fragmentation b. Size of the file does not require to be declared

Consider a particular system that does not have an interrupting clock.  The only way a thread can lose the processor is to voluntarily surrender it.  Additionally, the operating sy

what do obelia eat and how do they feed