Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <omp.h>
- int main(void)
- {
- #pragma omp parallel num_threads(4)
- {
- printf("%d: Hello outer parallel region!\n", omp_get_thread_num());
- #pragma omp parallel
- {
- printf("%d: Hello inner parallel region!\n", omp_get_thread_num());
- }
- }
- return 0;
- }
- ==============================================================================
- After OpenMP lowering and expansion:
- ==============================================================================
- /* libgomp/parallel.c:
- * - GOMP_parallel_start
- * - GOMP_parallel_end
- */
- void main_omp_fn_1(void *omp_data)
- {
- printf("%d: Hello inner parallel region!\n", omp_get_thread_num());
- }
- void main_omp_fn_0(void *omp_data)
- {
- printf("%d: Hello outer parallel region!\n", omp_get_thread_num());
- __builtin_GOMP_parallel_start(main_omp_fn_1, NULL, 0);
- main_omp_fn_1(NULL);
- __builtin_GOMP_parallel_end();
- }
- int main(void)
- {
- // Spawns a team of threads
- __builtin_GOMP_parallel_start(main_omp_fn_0, NULL, 4);
- main_omp_fn_0(NULL);
- // Terminates current team of threads
- __builtin_GOMP_parallel_end();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement