please i just need screen shot for output

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

please i just need screen shot for output

 

#include <stdio.h>

#include <omp.h>

int main(int argc, char *argv[])

{

    int i, thread_id;

    int glob_nloops, priv_nloops;

    glob_nloops = 0;

 

    // parallelize this chunk of code

    #pragma omp parallel private(priv_nloops, thread_id)

    {

        priv_nloops = 0;

        thread_id = omp_get_thread_num();

        // parallelize this for loop

        #pragma omp for

        for (i=0; i<100000; ++i)

        {

            ++priv_nloops;

        }

        // make this a "critical" code section

        #pragma omp critical

        {

          printf("Thread %d is adding its iterations (%d) to sum (%d), ",

                   thread_id, priv_nloops, glob_nloops);

            glob_nloops += priv_nloops;

            printf(" total nloops is now %d.\n", glob_nloops);

        }

    }

    printf("Total # loop iterations is %d\n",

           glob_nloops);

    return 0;

}

Program2: Critical Code
Using OpenMP you can specify something called a "critical" section of code. This is code that is performed by all
threads, but is only performed by one thread at a time (i.e. in serial). This provides a convenient way of letting you
do things like updating a global variable with local results from each thread, and you don't have to wory about
things like other threads writing to that global variable at the same time (a collision).
#include <stdio.h>
#include <omp.h>
int main (int argc, char *argv[])
{
int i, thread id;
int glob_nloops, priv_nloops;
glob_nloops = 0;
// parallelize this chunk of code
#pragma omp parallel private (priv_nloops, thread_id)
{
priv_nloops = 0;
thread id
omp_get_thread num();
/ parallelize this for loop
#pragma omp for
for (i=0; i<100000; ++i)
{
++priv_nloops;
}
// make this a "critical" code section
#pragma omp critical
{
printf("Thread %d is adding its iterations (%d) to sum (%d), ",
thread_id, priv_nloops, glob_nloops) ;
glob_nloops += priv_nloops;
printf(" total nloops is now %d.\n", glob_nloops);
}
printf("Total # loop iterations is %d\n",
glob_nloops);
return 0;
}
Transcribed Image Text:Program2: Critical Code Using OpenMP you can specify something called a "critical" section of code. This is code that is performed by all threads, but is only performed by one thread at a time (i.e. in serial). This provides a convenient way of letting you do things like updating a global variable with local results from each thread, and you don't have to wory about things like other threads writing to that global variable at the same time (a collision). #include <stdio.h> #include <omp.h> int main (int argc, char *argv[]) { int i, thread id; int glob_nloops, priv_nloops; glob_nloops = 0; // parallelize this chunk of code #pragma omp parallel private (priv_nloops, thread_id) { priv_nloops = 0; thread id omp_get_thread num(); / parallelize this for loop #pragma omp for for (i=0; i<100000; ++i) { ++priv_nloops; } // make this a "critical" code section #pragma omp critical { printf("Thread %d is adding its iterations (%d) to sum (%d), ", thread_id, priv_nloops, glob_nloops) ; glob_nloops += priv_nloops; printf(" total nloops is now %d.\n", glob_nloops); } printf("Total # loop iterations is %d\n", glob_nloops); return 0; }
Expert Solution
steps

Step by step

Solved in 2 steps with 2 images

Blurred answer
Similar questions
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY