Библиотечные функции OpenMP
Использование библиотеки Для вызова библиотечных функций в программе надо подключить соответствующий заголовочный файл: #include <omp.h> Функция, используемая для замера времени: double omp_get_wtime(void); Определение точности измерения времени: double omp_get_wtick(void); Задание количества потоков: void omp_set_num_threads(int num); Задан ли флаг возможности динамического изменения количества выполняющихся потоков: int omp_get_dynamic(void); Установка динамического флага (0 или 1): void omp_set_dynamic(int num);
Определение максимального количества потоков: int omp_get_max_threads(void); Находится ли точка вызова в параллельной области: int omp_in_parallel(void); Определение номера потока: int omp_get_thread_num(void); Определение количества выполняющихся потоков: int omp_get_num_threads(void);
Makefile CC = gcc CFLAGS = -fopenmp -c LFLAGS = -lm -lgomp redtest: redtest.o \ $(CC) -o redtest redtest.o $(LFLAGS) redtest.o: redtest.c \ $(CC) $(CFLAGS) redtest.c Пример использования редукции #include <stdio.h> int main(int argc, char *argv[]) { int count = 0; #pragma omp parallel reduction (+: count) { count++; printf("Текущее значение count: %d\n", count); } printf("Число нитей: %d\n", count); }
|