Problem of unbalanced loads, Operating System

Assignment Help:

Present your own fully documented and tested programming example illustrating the problem of unbalanced loads. Describe the use of OpenMP's scheduler as a means of mitigating this problem.

The below example shows a number of tasks that all update a global counter. Since threads share the same memory space, they indeed see and update the same memory location. The code returns a false result because updating the variable is  much quicker than creating the thread as on a multicore processor the chance of errors will greatly increase. If we artificially increase the time for the update, we will no longer get the right result. All threads read out the value of sum, wait a while (presumably calculating something) and then update.

#include

#include

#include "pthread.h"

int sum=0;

void adder() {

int sum = 0;

int t = sum; sleep(1); sum = t+1;

return;

}

#define NTHREADS 50

int main() {

int i;

pthread_t threads[NTHREADS];

printf("forking\n");

for (i=0; i

if (pthread_create(threads+i,NULL,&adder,NULL)!=0) return i+1;

printf("joining\n");

for (i=0; i

{

if (pthread_join(threads[i],NULL)!=0) return NTHREADS+i+1;

printf("Sum computed: %d\n",sum);

}

return 0;

}

The use of OpenMP is the parallel loop. Here, all iterations can be executed independently and in any order. The pragma CPP directive then conveys this fact to the compiler. A sequential code can be easily parallelized this way.

#include 
#include 
#include "pthread.h"
int sum=0;
void adder() {
int sum = 0;
int t = sum; sleep(1); sum = t+1;
return;
}
#define NTHREADS 50
int main() {
int i;
pthread_t threads[NTHREADS];
printf("forking\n");
#pragma omp for
for (i=0; i
if (pthread_create(threads+i,NULL,&adder,NULL)!=0) return i+1;
}
printf("joining\n");
for (i=0; i
{
if (pthread_join(threads[i],NULL)!=0) return NTHREADS+i+1;
printf("Sum computed: %d\n",sum);
}
return 0;
}

Related Discussions:- Problem of unbalanced loads

Define a policy for data storage, Produce a referenced four page report whi...

Produce a referenced four page report which describes the possible functionality of the system; similar systems that are out there and different possible approaches to delivering t

List operations to be performed on directories, List operations to be perfo...

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.

Inventory differences, What makes a Just-in-Time inventory system differ fr...

What makes a Just-in-Time inventory system differ from a traditional inventory system?

Explain about deadlocks, Q. Explain about Deadlocks? Deadlocks for (...

Q. Explain about Deadlocks? Deadlocks for (int i = 0; i // first find a thread that can finish for (int j = 0; j if (!finish[j]) { boolean temp = true; for

Embedded systems design or hardware design, You have been requested by your...

You have been requested by your Senior Engineer to design an Engine Control Unit (ECU) and prepare a report detailing your proposed solution. The client requires a design for a mic

Processes and programs, Processes and Programs Process is a dynamic...

Processes and Programs Process is a dynamic entity which is a program in execution. A process is a sequence of information executions. Process exists in a limited span of t

Default domain controllers policy gpo, Question: (a) Distinguish betwee...

Question: (a) Distinguish between local and active directory Group Policy in Windows Server 2008? (b) Describe the three areas of account Policies that can be managed thro

Assignment, You must use fork and pipe to complete this project. This proj...

You must use fork and pipe to complete this project. This project creates processes to add all numbers in a file. The user will enter a number (1, 2, or 4) of parallel processes

What are batch systems?, What are batch systems? Early computers were p...

What are batch systems? Early computers were physically huge machines run from a console. The general input devices were card readers and tape drivers. The common output device

Explain about deadlock prevention, Explain about deadlock prevention? I...

Explain about deadlock prevention? In order for the occurrence of deadlock, the four conditions like mutual exclusion, hold and wait, no pre-emption and  circular wait must hap

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