OpenMP学习笔记
OpenMP是目前常见的C++多线程并行库,本笔记主要记录对于OpenMP的一些学习经验,平台为ubuntu
1. OpenMP编译
本节以test.C为例,说明如何编译使用OpenMP的c++代码
- g++编译选项
1
| g++ -fopenmp test.C -o testDemo
|
- CMake编译
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| cmake_minimum_required(VERSION 3.5) project(testDemo)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_BUILD_TYPE "Release")
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}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}") endif ()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
add_executable(${PROJECT_NAME} ./test.C)
|
需要注意的是:CMake也可以直接通过设置CMAKE_CXX_FLAGS,添加-fopenmp实现编译OpenMP的c++代码,但推荐使用如上的FIND_PACKAGE方法
2. OpenMP常用方法
待补充
3. OpenMP高级方法
待补充