Как включить openmp в Visual Studio 2019

Обновлено: 06.07.2024

Но учтите, что пакет активно разрабатывается и в настоящее время не является стабильным.

Версия для разработки¶

Чтобы установить последнюю разрабатываемую версию sktime, выполните следующие действия:

Перейдите в корневой каталог репозитория: cd sktime

Убедитесь, что вы находитесь в основной ветке: git checkout master

Убедитесь, что ваша локальная версия обновлена: git pull

Соберите пакет из исходного кода, используя: pip install --editable . Ниже приведены более подробные инструкции для конкретных операционных систем.

Сборка sktime из исходников также требует

Cython >= 0.28.5 (доступно через pip install cython )

OpenMP (инструкции см. ниже)

Можно собрать sktime без поддержки OpenMP, установив переменную среды SKTIME_NO_OPENMP (до cythonization). Это не рекомендуется, так как это заставит некоторые оценщики работать в последовательном режиме, а их параметр n_jobs будет проигнорирован.

Чтобы запустить наши тесты и создать нашу документацию, вам необходимо выполнить несколько дополнительных шагов, как описано в нашем разделе "Как внести свой вклад" .

Получение других стабильных версий¶

Если вы хотите собрать предыдущую версию, вы можете запустить:

При этом будет проверен код для этой конкретной версии. Чтобы узнать, какие версии доступны, запустите git tag .

Вы также можете скачать ZIP-архив версии с GitHub.

Сборка из исходников¶

После того, как все требования к сборке будут установлены (подробности см. ниже), вы можете собрать и установить пакет следующим образом.

Если вы запускаете версию для разработки, переустанавливать пакет каждый раз при обновлении исходных кодов неудобно. Поэтому рекомендуется устанавливать в редактируемом режиме, который позволяет редактировать код на месте. Это создаст расширение на месте и создаст ссылку на каталог разработки (см. pip docs):

Это принципиально похоже на использование команды python setup.py develop (см. документацию по setuptool). Однако предпочтительнее использовать pip.

Вам придется запустить заново:

каждый раз, когда изменяется исходный код скомпилированного расширения (например, при переключении ветвей или извлечении изменений из основной ветки разработки). Скомпилированные расширения представляют собой файлы Cython (оканчивающиеся на .pyx или .pxd ).

Mac OSX¶

Компилятор C по умолчанию, Apple-clang, в Mac OSX напрямую не поддерживает OpenMP. Первым решением для сборки sktime является установка другого компилятора C, такого как gcc или llvm-clang. Другое решение — включить поддержку OpenMP в Apple-clang по умолчанию. Далее мы покажем, как настроить этот второй параметр.

Сначала необходимо установить библиотеку OpenMP:

Затем вам необходимо установить следующие переменные среды:

Наконец вы можете собрать пакет с помощью стандартной команды.

FreeBSD¶

Компилятор clang, включенный в базовые системы FreeBSD 12.0 и 11.2, не поддерживает OpenMP. Вам необходимо установить библиотеку openmp из пакетов (или портов):

Это установит заголовочные файлы в /usr/local/include и библиотеки в /usr/local/lib. Поскольку поиск в этих каталогах по умолчанию не выполняется, вы можете установить переменные среды в следующих местах:

Наконец вы можете собрать пакет с помощью стандартной команды.

Для будущих версий FreeBSD 12.1 и 11.3 OpenMP будет включен в базовую систему, и эти шаги не понадобятся.

Установка зависимостей сборки¶

Линукс¶

Для установки из исходного кода без conda необходимо установить зависимости среды выполнения sktime, заголовки для разработки Python и работающий компилятор C/C++. В операционных системах на основе Debian, включая Ubuntu:

Если предварительно скомпилированные диски недоступны для вашей архитектуры, вы можете установить системные версии:

В Red Hat и ее клонах (например, CentOS) установите зависимости, используя:

Чтобы использовать высокопроизводительную библиотеку BLAS (например, OpenBlas), см. инструкции по установке scipy.

Windows¶

Для сборки sktime в Windows вам нужен работающий компилятор C/C++ в дополнение к numpy, scipy и setuptools.

Команда построения зависит от архитектуры интерпретатора Python, 32-разрядной или 64-разрядной. Вы можете проверить архитектуру, запустив в консоли cmd или powershell следующее:

Приведенные выше команды предполагают, что папка установки Python указана в переменной среды PATH.

Вам НЕ нужно устанавливать Visual Studio 2019. Вам нужны только «Инструменты сборки для Visual Studio 2019» в разделе «Все загрузки» -> «Инструменты для Visual Studio 2019».

Для 64-разрядной версии Python настройте среду сборки с помощью:

Обратите внимание, что указанный выше путь может отличаться от пользователя к пользователю. Цель состоит в том, чтобы указать на файл «vcvarsall.bat».

И соберите sktime из этой среды:

Замените x64 на x86, чтобы выполнить сборку для 32-разрядной версии Python.

У некоторых пользователей возникли проблемы при установке NumPy, особенно версии 1.19.4. Обратите внимание, что недавнее обновление Windows может повлиять на компиляцию с помощью Visual Studio (см. проблему с обновлением Windows).

Если вы столкнулись с проблемой установки разрабатываемой версии и используете Anaconda, попробуйте:

Создайте новую среду: conda create -n sktime-dev python=3.8

Активировать среду: conda активирует sktime-dev

Установите NumPy (прикрепленный к версии 1.19.3) из pip: pip install numpy==1.19.3

Установить требования: pip install -r build_tools/requirements.txt

Следуйте приведенным выше инструкциям, чтобы указать на «vcvarsall.bat»

Запустите pip install --verbose --no-build-isolation --editable .

На шаге 5 вы можете дополнительно установить пакеты в файле build_tools/requirements.txt, которые доступны в каналах Anaconda по умолчанию или Conda-Forge через Conda. Любые оставшиеся пакеты можно добавить через pip.

Сборка бинарных пакетов и установщиков¶

Пакет .whl и установщики .exe можно создать с помощью:

Результирующие пакеты создаются в папке dist/.

Использование альтернативного компилятора¶

Можно использовать MinGW (порт GCC для ОС Windows) в качестве альтернативы MSVC для 32-разрядного Python. Расширения, созданные с помощью mingw32, нельзя распространять как повторно используемые пакеты, поскольку они зависят от библиотек времени выполнения GCC, которые обычно не устанавливаются в среде конечных пользователей.

Чтобы принудительно использовать определенный компилятор, передайте флаг --compiler на этапе сборки:

где my_compiler должен быть одним из mingw32 или msvc .

Ссылки¶

Инструкция по установке адаптирована из расширенных инструкций по установке scikit-learn.

© Copyright 2019–2020 (лицензия BSD-3, пункт 3), редакция 32265999.

Версии последняя стабильная v0.5.3 v0.5.2 v0.5.1 v0.5.0 v0.4.3 v0.4.2 Загрузки в Read the Docs Домашняя страница проекта Сборки Бесплатное размещение документов, предоставляемое Read the Docs.

Включить OpenMP Щелкните проект правой кнопкой мыши в обозревателе решений и выберите свойства. Выберите C/C++ -> Язык и измените значение «Поддержка OpenMP» на «Да». Нажмите "ОК" и убедитесь, что ваше приложение по-прежнему компилируется и запускается.

Поддерживает ли Visual Studio OpenMP?

Компилятор C++ в настоящее время поддерживает стандарт OpenMP 2.0. Однако теперь Visual Studio 2019 также предлагает функции SIMD. Начиная с Visual Studio 2019 версии 16.9, вы можете использовать экспериментальный параметр /openmp:llvm вместо /openmp для целевой среды выполнения LLVM OpenMP.

Что такое прагма OpenMP?

Прагма omp parallel используется для разветвления дополнительных потоков для параллельного выполнения работы, заключенной в конструкции. Исходный поток будет обозначен как основной поток с идентификатором потока 0. Вывод на компьютере с двумя ядрами и, следовательно, двумя потоками: Hello, world.

Поддерживает ли clang OpenMP?

Clang полностью поддерживает OpenMP 4.5. Clang поддерживает разгрузку на X86_64, AArch64, PPC64[LE] и имеет базовую поддержку устройств Cuda.

Как включить OMP?

Для gcc OpenMP включается с помощью флага -fopenmp. Добавляйте это к каждому вызову gcc. Разные компиляторы могут использовать разные флаги, в таких случаях обратитесь к руководству по компилятору. Чтобы убедиться, что изменения вступили в силу, запустите make clean && make all после редактирования Makefile .

Какие основные части программы, написанной с использованием OpenMP?

OpenMP — это библиотека для параллельного программирования в модели SMP (симметричные мультипроцессоры или процессоры с общей памятью). При программировании с помощью OpenMP все потоки совместно используют память и данные. OpenMP поддерживает C, C++ и Fortran. Функции OpenMP включены в заголовочный файл с именем omp.

Что такое критическая секция OpenMP?

Используйте критические секции OpenMP, чтобы предотвратить одновременный доступ нескольких потоков к коду критической секции, поэтому только один активный поток может обновлять данные, на которые ссылается код. Критические секции полезны для невложенных мьютексов.

Для чего нужна Pragma OMP?

Цель. Директива omp for предписывает компилятору распределить итерации цикла внутри группы потоков, которые сталкиваются с этой конструкцией разделения работы.

В чем разница между OpenMP и MPI?

OpenMPI — это особый API MPI, тогда как OpenMP — это стандарт общей памяти, доступный с компилятором. Это предназначено для пользователей, которые плохо знакомы с параллельным программированием или параллельными вычислениями и думают об использовании OpenMP или MPI для своих приложений или обучения.

Кто создал clang?

Крис Латтнер
Клэнг

Релизная версия: clang 12.0.1
Первоначальный автор(ы) Крис Латтнер
Разработчики Группа разработчиков LLVM
Первоначальный выпуск 26 сентября , 2007
Стабильная версия 12.0.1

Что такое Omp_set_num_threads?

Определение.Функция omp_set_num_threads — это один из трех способов указать количество потоков для использования при создании параллельных регионов. Функция omp_set_num_threads указывает во время выполнения количество потоков, которые будут использоваться с этого момента при создании параллельных регионов.

Есть ли прагмы, отличные от OpenMP, в Visual Studio?

Что произойдет, если OpenMP не указан в компиляторе?

Если /openmp не указан в компиляции, компилятор игнорирует предложения и директивы OpenMP. Вызовы функций OpenMP обрабатываются компилятором, даже если параметр /openmp не указан. Компилятор C++ в настоящее время поддерживает стандарт OpenMP 2.0. Однако теперь Visual Studio 2019 также предлагает функции SIMD.

Как включить поддержку OpenMP в Visual Studio?

Чтобы установить этот параметр компилятора в среде разработки Visual Studio, выполните следующие действия: 1. Откройте диалоговое окно «Страницы свойств» проекта. Дополнительные сведения см. в разделе Настройка компилятора C++ и свойств сборки в Visual Studio. 2 Разверните страницу свойств конфигурации > C/C++ > Language. 3 Измените свойство поддержки OpenMP.

Есть ли поддержка OpenMP 2.0 в Windows?

В настоящее время поддержка недоступна для производственного кода, поскольку требуемые библиотеки DLL libomp не подлежат повторному распространению. Параметр поддерживает те же директивы OpenMP 2.0, что и /openmp. Кроме того, он поддерживает все директивы SIMD, поддерживаемые параметром /openmp:experimental.

Сколько потоков создает OpenMP?

При запуске программа OpenMP будет использовать один поток (в последовательных разделах) и несколько потоков (в параллельных разделах). Существует один поток, который выполняется от начала до конца, и он называется главным потоком. Параллельные разделы программы вызовут разветвление дополнительных потоков.

Как работает параллель Pragma OMP?

Как запустить OpenMP в нескольких потоках в Visual Studio?

Есть ли кнопка завершения OpenMP в Visual Studio?

Нажмите кнопку "Готово". OpenMP многое делает для нас, программистов, автоматически. Однако это означает, что компилятору очень сложно обрабатывать OpenMP.

Поддерживает ли Visual Studio 2019 OpenMP?

Компилятор C++ в настоящее время поддерживает стандарт OpenMP 2.0. Однако теперь Visual Studio 2019 также предлагает функции SIMD. Кроме того, он поддерживает все директивы SIMD, поддерживаемые параметром /openmp:experimental. Он также поддерживает параллельные целочисленные индексы без знака для циклов в соответствии со стандартом OpenMP 3.0.

Поддерживает ли MSVC OpenMP?

Microsoft Visual Studio поддерживает стандарт OpenMP 2.0 с 2005 года. В первоначальный выпуск Visual Studio 2019 мы добавили параметр -openmp:experimental, чтобы обеспечить минимальную поддержку директивы OpenMP SIMD, впервые представленной в стандарте OpenMP 4.0.

Поддерживает ли Windows OpenMP?

Стандартный компилятор для Windows разработан Microsoft и представляет собой компилятор Microsoft Visual C/C++ от Visual Studio. К сожалению, его поддержка OpenMP немного устарела — даже самая последняя и лучшая Visual Studio поддерживает только OpenMP 2.0 (устаревшая стандартная версия 2002 года).

Как узнать, поддерживает ли мой компилятор OpenMP?

Для чего нужна Pragma OMP?

Что такое omp_set_num_threads?

Почему OpenMP называют моделью разветвления?

OpenMP использует модель «ветвления-соединения», в которой главный поток запускается и выполняется последовательно, пока не достигнет директивы, которая разветвляет выполнение на множество параллельных потоков (разветвлений), которые в конечном итоге сворачиваются обратно (объединяются) в главный поток (Kiessling, 2009). ). …

Начало работы с OpenMP в Visual Studio

Добро пожаловать в мой учебник о том, как начать писать приложения OpenMP в Visual Studio. Во-первых, OpenMP недоступен для стандартной или экспресс-версий Microsoft Visual Studio. Поэтому вам понадобится профессиональная версия или выше, если вы хотите использовать Visual Studio для разработки проекта OpenMP. Возможно, есть способ обойти это ограничение, попытавшись загрузить vcomp.lib или vcomp.dll, однако законность этого сомнительна. В этом руководстве я буду использовать профессиональную версию Visual Studio 2005, однако это руководство применимо почти ко всем последним версиям Visual Studio.

Шаг 1. Создайте свой проект

Самый простой способ протестировать вашу первую программу OpenMP — создать новый проект. В этом руководстве мы создадим консольное приложение Win32. Если вы выберете Visual C++ -> Win32, вы должны увидеть консольное приложение в качестве опции. В следующем диалоговом окне нажмите «Настройки приложения», затем снимите флажок «Предварительно скомпилированный заголовок». Нажмите кнопку "Готово".

Шаг 2. Включите OpenMP

OpenMP многое делает для нас, программистов, автоматически. Однако это означает, что компилятору очень сложно работать с OpenMP. Нам нужно вручную включить OpenMP. Щелкните правой кнопкой мыши свой проект и выберите свойства.Выберите C/C++ -> Язык и измените «Поддержка OpenMP» на «Да». Нажмите "ОК" и убедитесь, что ваше приложение по-прежнему компилируется и запускается.

Шаг 3. Включите файл omp.h

Шаг 4. Попробуйте свою программу и посмотрите, работает ли она в нескольких потоках

Устранение неполадок: изменение количества потоков

Если вы посмотрите на исходный код, то увидите, что программа должна печатать «Выполняется в нескольких потоках» один раз для каждого потока. Поэтому, если вы видите, что ваша программа выводит это выражение только один раз, это означает, что ваша программа работает только в одном потоке. По умолчанию Visual Studio должна определить общее количество процессоров, доступных на вашем компьютере, и запустить вашу программу с указанным количеством потоков. Однако если у вас одноядерный компьютер, для вашей программы будет создан только один поток.

Чтобы изменить это поведение, щелкните проект правой кнопкой мыши в окне обозревателя решений и выберите свойства. В левой колонке выберите «Отладка». Существует поле под названием «Окружающая среда», в котором мы можем установить переменные среды. Попробуйте добавить это в переменные среды: «OMP_NUM_THREADS=4» и посмотрите, будет ли теперь ваша программа запускаться с четырьмя потоками.

Эта запись была опубликована пользователем admin 6 июля 2009 г. в 23:06 в разделе OpenMP. Метки: Начало работы, OpenMP, Учебник, Visual Studio. И комментарии, и проверка связи в настоящее время закрыты.

Компилятор C++ в настоящее время поддерживает стандарт OpenMP 2.0. Однако теперь Visual Studio 2019 также предлагает функции SIMD. Кроме того, он поддерживает все директивы SIMD, поддерживаемые параметром /openmp:experimental. Он также поддерживает параллельные целочисленные индексы без знака для циклов в соответствии со стандартом OpenMP 3.0.

Как использовать OpenMP в Visual Studio?

Шаг 2. Включите OpenMP Нам потребуется включить OpenMP вручную. Щелкните правой кнопкой мыши свой проект и выберите свойства. Выберите C/C++ -> Язык и измените «Поддержка OpenMP» на «Да». Нажмите "ОК" и убедитесь, что ваше приложение по-прежнему компилируется и запускается.

Работает ли OpenMP в C++?

В настоящее время OpenMP поддерживается наиболее популярными компиляторами C/C++: gcc, icc, компилятор PGI. Важно понимать, что OpenMP работает только во время компиляции — он преобразует директивы препроцессора в собственный код Fortran/C/C++, который затем компилируется в исполняемый файл.

Поддерживает ли Windows OpenMP?

Стандартный компилятор для Windows разработан Microsoft и представляет собой компилятор Microsoft Visual C/C++ от Visual Studio. К сожалению, его поддержка OpenMP немного устарела — даже самая последняя и лучшая Visual Studio поддерживает только OpenMP 2.0 (устаревшая стандартная версия 2002 года).

Какие основные части программы, написанной с использованием OpenMP?

OpenMP — это библиотека для параллельного программирования в модели SMP (симметричные мультипроцессоры или процессоры с общей памятью). При программировании с помощью OpenMP все потоки совместно используют память и данные. OpenMP поддерживает C, C++ и Fortran. Функции OpenMP включены в заголовочный файл с именем omp.

Как работает параллель Pragma OMP?

Прагма omp parallel используется для разветвления дополнительных потоков для параллельного выполнения работы, заключенной в конструкции. Исходный поток будет обозначен как основной поток с идентификатором потока 0. Вывод на компьютере с двумя ядрами и, следовательно, двумя потоками: Hello, world.

Как запустить код Fortran в Visual Studio?

Использование Microsoft Visual Studio

  1. Запустите Microsoft Visual Studio*.
  2. Выберите «Файл» > «Создать» > «Проект».
  3. В окне "Новый проект" выберите тип проекта в Intel(R) Visual Fortran.
  4. Выберите шаблон и нажмите "ОК".
  5. Выберите «Сборка» > «Сборка решения». Результаты компиляции отображаются в окне вывода.

В чем разница между OpenMP и MPI?

OpenMPI — это особый API MPI, тогда как OpenMP — это стандарт разделяемой памяти, доступный с компилятором.)….MPI и OpenMP: краткое введение и сравнение.

MPI OpenMP
7.Существуют накладные расходы, связанные с передачей сообщения от одного процесса к другому< /td> 7. Нет таких накладных расходов, поскольку поток может совместно использовать переменные

Что такое OpenMP API?

OpenMP — это интерфейс прикладных программ (API), совместно определенный группой крупных поставщиков компьютерного оборудования и программного обеспечения. OpenMP предоставляет переносимую масштабируемую модель для разработчиков параллельных приложений с общей памятью. API поддерживает C/C++ и Fortran для самых разных архитектур.

Как узнать, установлен ли OpenMP?

В чем разница между OpenMP и MPI?

OpenMPI — это особый API MPI, тогда как OpenMP — это стандарт общей памяти, доступный с компилятором. Это предназначено для пользователей, которые плохо знакомы с параллельным программированием или параллельными вычислениями и думают об использовании OpenMP или MPI для своих приложений или обучения.

Читайте также: