Already have an account? Get multiple benefits of using own account!
Login in your account..!
Remember me
Don't have an account? Create your account in less than a minutes,
Forgot password? how can I recover my password now!
Enter right registered email to receive password!
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
#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 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);
Another solution then would be to keep a pool of threads. Whenever a new task arrives, the system would simply get a thread from pool and set that thread to work on the given task.
What is critical section? Every process has a segment code called the critical section, in which the process may be updating tables, changing variables, writing file and etc. W
How does an operating system make multiprogramming possible by using single processor?
What is the use of fork and exec system calls? Fork is a system call by which a latest process is created. Exec is also a system call, which is used after a fork by one of the
We are use to using variables within C without thinking about where they are stored. Most variables are dynamic i.e. can change, therefore they are stored in Ram, unlike a program
how copy on write on pages when many process works at a same time?
Q. Under what conditions do page faults occur? Explain the actions taken by the operating system when a page fault occurs. Answer: A page fault take places when an access to
Synchronization can be achieved by means other than locks and condition variables. One alternative is semaphores. A semaphore is used to regulate traf?c in a critical section. A se
Show the search tree generated by Hill-Climbing search (text figure 4.2, page 122; or Local Search lecture, slide 6) for each of the two heuristics (a) and (b) applied to the follo
Synchronization In communication among processes messages passed may be blocking or nonblocking - also called as synchronous and asynchronous. Blocking send : The sending pr
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!
whatsapp: +91-977-207-8620
Phone: +91-977-207-8620
Email: [email protected]
All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd