mt-course
Оценивание (ИС)Оценивание (Тех.Зрение)Оценивание (КТ)
materials
materials
  • About
  • Для новичков
    • Основы C++
    • IDE/Compilers
    • Антипаттерны и способы улучшения кода
      • 0. Освобождение ресурсов
      • 1. Чтение данных из файла
      • 2. Открытие файлов
      • 3. Объявление переменных
      • 4. Выделение памяти
      • 5. Необдуманный код
      • 6. Глубокие if
      • 7. Длинные if
      • 8. Non-void функции
      • 9. Создание массивов
      • 10. Проверка формата файла
    • Git/GitHub
      • Git CLI
      • Git GUI
      • Git Web
      • Git в среде разработке
        • Visual Studio
        • CLion
        • Qt Creator
        • Visual Studio Code
      • CLion + GitHub
      • Работа с GitHub Actions
  • Настройки OpenMP/C++ threads
    • OpenMP
    • Сборка с OpenMP
    • C++ threads
  • Настройки CUDA и HIP
    • Установка CUDA SDK
    • Установка HIP SDK
    • Настройка проектов CUDA
    • Настройка проектов HIP
  • Настройки OpenCL
    • OpenCL
    • Проверка и установка платформы
    • Настройка проектов
    • Профилирование
      • Тестовый стенд
      • Профилирование через rcprof
      • Инструкция по профилированию в CodeXL
Powered by GitBook
On this page
  • Компиляция через командную строку
  • Visual Studio
  • CMakeLists
  1. Настройки OpenMP/C++ threads

Сборка с OpenMP

PreviousOpenMPNextC++ threads

Last updated 3 months ago

Для включения OpenMP нужно указать ключ компиляции.

Компиляция через командную строку

Компилятор
Ключ компиляции

msvc (компилятор от Microsoft Visual Studio)

/openmp

gcc и clang

-fopenmp

Пример компиляции кода из файла с исходным кодом main.c при помощи компилятора Clang под Windows

clang -O2 -fopenmp main.c -o lab.exe

Visual Studio

Свойства проекта (ПКМ по проекту в обозревателе проектов) - C/C++ - Language - OpenMP support - Yes. Во избежания проблем для начинающих рекомендуется выставлять Платформу и конфигурацию как All (подчеркнуто на скрине ниже).

Для того, чтобы счётчики цикла или другие более современные возможности OpenMP работали при использовании Visual Studio, следует в настройках компилятора добавить для всех конфигураций и всех платформ следующее:

/openmp:experimental  /openmp:llvm 

CMakeLists

OPTION (USE_OpenMP "Use OpenMP" ON)
IF(USE_OpenMP)
   FIND_PACKAGE(OpenMP)
   IF(OPENMP_FOUND)
       SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
       SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
   ENDIF()
ENDIF()

Для владельцев Mac на ARM64 также может помочь set(CMAKE_OSX_ARCHITECTURES x86_64)