1. 程式人生 > >Ubuntu下配置CLion實現OpenMP並行程式

Ubuntu下配置CLion實現OpenMP並行程式

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