icv-3.c 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <omp.h>
  2. #include <stdlib.h>
  3. int
  4. main ()
  5. {
  6. if (getenv ("OMP_NUM_TEAMS") == NULL
  7. && omp_get_max_teams () != 0)
  8. abort ();
  9. omp_set_num_teams (7);
  10. if (omp_get_max_teams () != 7)
  11. abort ();
  12. if (getenv ("OMP_TEAMS_THREAD_LIMIT") == NULL
  13. && omp_get_teams_thread_limit () != 0)
  14. abort ();
  15. omp_set_teams_thread_limit (15);
  16. if (omp_get_teams_thread_limit () != 15)
  17. abort ();
  18. #pragma omp teams
  19. {
  20. #pragma omp parallel if(0)
  21. if (omp_get_max_teams () != 7
  22. || omp_get_teams_thread_limit () != 15
  23. || omp_get_num_teams () < 1
  24. || omp_get_num_teams () > 7
  25. || omp_get_team_num () < 0
  26. || omp_get_team_num () >= omp_get_num_teams ()
  27. || omp_get_thread_limit () < 1
  28. || omp_get_thread_limit () > 15)
  29. abort ();
  30. }
  31. #pragma omp teams num_teams(5) thread_limit (13)
  32. {
  33. #pragma omp parallel if(0)
  34. if (omp_get_max_teams () != 7
  35. || omp_get_teams_thread_limit () != 15
  36. || omp_get_num_teams () != 5
  37. || omp_get_team_num () < 0
  38. || omp_get_team_num () >= omp_get_num_teams ()
  39. || omp_get_thread_limit () < 1
  40. || omp_get_thread_limit () > 13)
  41. abort ();
  42. }
  43. #pragma omp teams num_teams(8) thread_limit (16)
  44. {
  45. #pragma omp parallel if(0)
  46. if (omp_get_max_teams () != 7
  47. || omp_get_teams_thread_limit () != 15
  48. || omp_get_num_teams () != 8
  49. || omp_get_team_num () < 0
  50. || omp_get_team_num () >= omp_get_num_teams ()
  51. || omp_get_thread_limit () < 1
  52. || omp_get_thread_limit () > 16)
  53. abort ();
  54. }
  55. return 0;
  56. }