Ubuntu下配置CLion實現OpenMP並行程式
阿新 • • 發佈:2019-02-07
CMakeLists:
cmake_minimum_required(VERSION 3.10)
project(untitled1)
set(CMAKE_CXX_STANDARD 11)
FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
message("OPENMP FOUND")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif ()
add_executable(untitled1 main.cpp)
測試程式:
#include <iostream>
#include <stdio.h>
#include "omp.h"
using namespace std;
int main(int argc, char **argv) {
//設定執行緒數,一般設定的執行緒數不超過CPU核心數,這裡開4個執行緒執行並行程式碼段
omp_set_num_threads(8);
#pragma omp parallel for
for (int i = 0; i < 8; i++)
//cout << "i = " << i << ", I am Thread " << omp_get_thread_num() << endl;
printf("i = %d, I am Thread %d\n", i, omp_get_thread_num());
}
結果顯示:
i = 1, I am Thread 1
i = 7, I am Thread 7
i = 5, I am Thread 5
i = 4, I am Thread 4
i = 0, I am Thread 0
i = 2, I am Thread 2
i = 3, I am Thread 3
i = 6, I am Thread 6