Exemple #1
0
int
crosscheck_for_ordered (FILE * logFile)
{
  int sum = 0;
  int known_sum;
  int i;
  int my_islarger;
  int is_larger = 1;
  last_i = 0;
#pragma omp parallel private(my_islarger)
  {
    my_islarger = 1;
#pragma omp for schedule(static,1)
    for (i = 1; i < 100; i++)
      {
	{
	  my_islarger = check_i_islarger (i) && my_islarger;
	  sum = sum + i;
	}
      }
#pragma omp critical
    {
      is_larger = is_larger && my_islarger;
    }
  }
  known_sum = (99 * 100) / 2;
  return (known_sum == sum) && is_larger;
}
int test_omp_for_collapse()
{
  int is_larger = 1;

  #pragma omp parallel
  {
    int i,j;
    int my_islarger = 1;
    #pragma omp for private(i,j) schedule(static,1) collapse(2) ordered
    for (i = 1; i < 100; i++) {
      for (j =1; j <100; j++) {
        #pragma omp ordered
        my_islarger = check_i_islarger(i)&&my_islarger;
      }
    }
    #pragma omp critical
    is_larger = is_larger && my_islarger;
  }
  return (is_larger);
}