--- [プログラム1]   sum.c

    1	#define MAX 50000
    2	#include <stdio.h>
    3	#include <stdlib.h>
    4	
    5	int *A;
    6	
    7	main()
    8	{
    9	  int i,s;
   10	  A=malloc(MAX*sizeof(int));
   11	  for(i = 0; i < MAX; i++) A[i] = i; /**/
   12	  s= sum(A,MAX);
   13	  printf("sum = %d\n", s); /**/
   14	  exit(s); /**/
   15	}
   16	
   17	int sum(int *a, int n)
   18	{
   19	  int s, i,j;
   20	  s = 0;
   21	#pragma omp parallel
   22	  {
   23	   printf("threads = %d,%d\n", 
   24		omp_get_thread_num(), omp_get_num_threads()); /**/
   25	
   26	#pragma omp for reduction(+:s)
   27	   for(i = 0; i < n; i++) s += a[i];
   28	  }
   29	 return s;
   30	}
   31	
   32	/* -- */
   33	
   34	#ifdef NO_OMP
   35	omp_get_thread_num()
   36	{
   37	 return 0;
   38	}
   39	omp_get_num_threads()
   40	{
   41	 return 0;
   42	}
   43	#endif
--- END
