#include <stdio.h> #ifdef _OPENMP #include <omp.h> #endif void print_omp_info(const char text[]) { #pragma omp critical printf("%i/%i: %s\n", omp_get_thread_num(), omp_get_num_threads(), text); } int main(int argc, char *argv[]) { #ifdef _OPENMP printf("Test of independent sections.\n"); printf("\n"); /* parallel sections can be executed in parallel each section is executed by on thread */ #pragma omp parallel sections { #pragma omp section print_omp_info("task1"); #pragma omp section print_omp_info("task2"); #pragma omp section print_omp_info("task3"); } /* Test of independent sections. 0/4: task1 1/4: task2 2/4: task3 */ #else printf("No OpenMP support\n"); #endif return 0; }