Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Compute the following code so that it runs parallel using OpenMP and 6 threads #

ID: 3910334 • Letter: C

Question

Compute the following code so that it runs parallel using OpenMP and 6 threads

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>

int is_prime(int n);

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

int n=10000000;
int numprimes = 0;
int i;
for (i = 1; i <= n; i++)
{
if (is_prime(i) == 1)
numprimes ++;
}

printf("Number of Primes: %d ",numprimes);

}

int is_prime(int n)
{
/* handle special cases */
if (n == 0) return 0;
else if (n == 1) return 0;
else if (n == 2) return 1;

int i;
for(i=2;i<=(int)(sqrt((double) n));i++)
if (n%i==0) return 0;

return 1;
}

Explanation / Answer

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int is_prime(int n);
int main(int argc, char** argv){
//int n=10000000;
int n=1000000;
int numprimes = 0;
int i;
#pragma parallel for num_threads(6)
for (i = 1; i <= n; i++)
{
if (is_prime(i) == 1)
numprimes ++;
}
printf("Number of Primes: %d ",numprimes);
}
int is_prime(int n)
{
/* handle special cases */
if (n == 0) return 0;
else if (n == 1) return 0;
else if (n == 2) return 1;
int i;
for(i=2;i<=(int)(sqrt((double) n));i++)
if (n%i==0) return 0;
return 1;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote