Computer Engineering Question

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
 

Computer Science

The program provided first reads in a single integer (the number of elements in the arrays) and then reads in the elements of each array in turn. Two sample inputs are provided in the test_cases folder. To run the small sample input with 16 threads, the usage of your program should be ./omp_dot 16 < test_cases/omp_dot_small which should produce the output:

The dot product is 333833500 Time: ___s

file:

#include <omp.h>

#include <stdio.h>

#include <stdlib.h>

 

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

int n, tmp, i, sum;

 

if (argc != 2) {

printf(" %s Number_of_threads\n", argv[0]);

return -1;

}

 

int np = atoi(argv[1]);

if (np < 1) {

printf("Error: Number_of_threads (%i) < 1 \n", np);

return -1;

}

 

scanf("%d", &n);

 

int *a = malloc(n * sizeof(int));

int *b = malloc(n * sizeof(int));

 

for (int i = 0; i < n; i++) {

scanf("%d", &a[i]);

}

for (int i = 0; i < n; i++) {

scanf("%d", &b[i]);

}

 

omp_set_num_threads(np);

 

double start = omp_get_wtime();

 

/*

* You should replace the following loop with equivalent (but faster) OpenMP

* code.

*/

sum = 0;

#pragma omp parallel for shared(a, b, sum) private(i, tmp)

for (i = 0; i < n; i++) {

tmp = a[i] * b[i];

#pragma omp atomic

sum = sum + tmp;

}

 

double end = omp_get_wtime();

 

printf("The dot product is %d\n", sum);

printf("Time: %es\n", end - start);

return 0;

}

Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
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