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
List operations to be performed on directories. Search for a file, delete a file, create a file, list a directory, rename a file, and traverse the file system.

Transparency : Users must be able to access remote resources as though these resources were local. Transparency should as well promote user mobility. Users must be allowed to lo

What is an operating system? An operating system is a program that manages the computer hardware. It acts as an intermediate among users of a computer and the computer hardware

Define process? What is meant by state of a process? Process is a program in implementation. A process in general includes the process stack, which consists temporary data and

A-  In a table format, compare between Programmed I/O, Interrupt -driven I/O, and Direct Memory Access (DMA) in terms of basic idea, Advantages, disadvantages, and the operating en

Q. Illustrate the function of Loader? A loader is a routine which loads an object program and prepares it for execution. There are many loading schemes: relocating, absolute an

Page Fault Handling conditions like, where the copy on write bit of a page is set and that page is send by more than one process, the Kernel assign new page and copies the conten

What is reference string We evaluate an algorithm by running it on a definite string of memory reference and computing the number of page faults. The string of memory reference

Q. Palm OS provides no signifies of concurrent processing. Discuss three major complications that concurrent processing adds to an operating system. Answer: a. A meth

Question: a. The following questions refer to a generic Windows file system: i) Describe what happens when you high-level format a floppy disk? ii) What is the maximum size