Example #1
0
int main(int argc, char* argv[]) {
   double  global_result;        /* Store result in global_result */
   double  a, b;                 /* Left and right endpoints      */
   int     n;                    /* Total number of trapezoids    */
   int     thread_count;

   if (argc != 2) Usage(argv[0]);
   thread_count = strtol(argv[1], NULL, 10);
   printf("Enter a, b, and n\n");
   scanf("%lf %lf %d", &a, &b, &n);
   if (n % thread_count != 0) Usage(argv[0]);

   global_result = 0.0;
#  pragma omp parallel num_threads(thread_count) 
   {
      double my_result = 0.0;
      my_result += Local_trap(a, b, n);
#     pragma omp critical
      global_result += my_result;
   }

   printf("With n = %d trapezoids, our estimate\n", n);
   printf("of the integral from %f to %f = %.14e\n",
      a, b, global_result);
   return 0;
}  /* main */
Example #2
0
int main(int argc, char const *argv[]) 
{
        double global_result = 0.0;
        double a, b;
        int n,thread_count;
        
        thread_count = strtol(argv[1], NULL, 10);
                        
        a=1;
        b=2;
        n=100;/**/
        /*printf("ingrese n: ");
        scanf("%d",&n);*/

        if(n%thread_count!=0)
        {
                printf("el numero %i no es multiplo de %d\n", thread_count,n);
                exit(0);
        }
#       pragma omp parallel num_threads(thread_count)\
                reduction(+:global_result)
        global_result += Local_trap(a, b, n);

        printf("%f\n", global_result);
        return 0;
}