0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 92
1

OneApi в MSVS

20.06.2024, 13:23. Показов 749. Ответов 5

Author24 — интернет-сервис помощи студентам
При компиляции в Visual Studio2022 был выбран компилятор Intel, поставлена ли опция параллелизации я не понял, хотя возможно (прямого пункта о параллелизации не нашел) но может быть поставилась . Написал алгоритм нахождения максимума в массиве размера n. Какие директивы openmp ни писал, скорость только падает раз в 30-100. Если была поставлена параллелизация в опциях, то при действующих директивах openmp параллелизацию следует отменить в настройках C/C++?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2024, 13:23
Ответы с готовыми решениями:

Конвертировать с MsVS 2008 в MsVS 2010
У меня есть проект на MsVS 2008. Он состоит с нескольких файлов, которые потом подключаются в основной программе. Как можно сделать чтобы...

Переделать msvs 6 В msvs 2008
приложение написано на визиал студия 6 хочу внести в него коррективы есть НО у меня стоит студия 2008 сам файл...

Ошибка переменной окружения ONEAPI_ROOT в VS после установки oneAPI
Переустановил Intel oneAPI. Вот такая ошибка выскакивает каждый раз после загрузки VS: Уже бывало такое, но я удалил Intel...

5
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6765 / 2010 / 233
Регистрация: 14.12.2014
Сообщений: 4,232
Записей в блоге: 12
20.06.2024, 14:01 2
jykm, у вас такая проблема только при использовании компилятора Intel C++ или с Visual C++ та же проблема?
Вероятно, проблема в коде, а не в компиляторе. Без исходников сложно что-то сказать.

Добавлено через 4 минуты
Поддержка OpenMP есть и в настройках обоих компиляторов.
Свойства проекта → C/C++ → Language [Intel C++] → OpenMP Support (для MS аналогично, только без [Intel C++]).
Без этой опции директивы #pragma omp работать не будут.
Про какую параллелизацию вы спрашиваете (нужно ли её отменить)?
0
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 92
20.06.2024, 14:06  [ТС] 3
Ну код не очень сложный: найти максимум. Да, делал рекурсию и на верхнем уровне сделал 2 блока, но и все. Ошибок в результате не заметно. Ладно попробую сам запустить на default проекте.
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6765 / 2010 / 233
Регистрация: 14.12.2014
Сообщений: 4,232
Записей в блоге: 12
20.06.2024, 15:13 4
jykm, и всё же:
Цитата Сообщение от Jin X Посмотреть сообщение
у вас такая проблема только при использовании компилятора Intel C++ или с Visual C++ та же проблема?
Добавлено через 2 минуты
Цитата Сообщение от jykm Посмотреть сообщение
Ну код не очень сложный: найти максимум.
И в таком коде вполне можно накосячить
0
фрилансер
 Аватар для Алексей1153
6327 / 5459 / 1108
Регистрация: 11.10.2019
Сообщений: 14,523
20.06.2024, 18:43 5
jykm, также попробуй сравнить скорость со стандартным алгоритмом

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <execution>
 
int main()
{
    int v[1000]{};
    
    //v - тут как-то заполняется
    //...
    
    //ищем максимум с распараллеливанием
    auto it_result = std::max_element(std::execution::par_unseq,std::begin(v), std::end(v));
    
    std::cout<<*it_result;
}
Добавлено через 3 минуты
само собой, только нужно учитывать гонку данных, возникающую при многопоточности, если в это время ещё другой поток может лезть к массиву для записи
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6765 / 2010 / 233
Регистрация: 14.12.2014
Сообщений: 4,232
Записей в блоге: 12
21.06.2024, 18:01 6
У OMP есть опция reduction, которая как раз для таких задач и предназначена.
Но нахождение максимума — это настолько элементарная операция, что попытка её распараллелить может действительно замедлить процесс из-за накладных расходов на создание/завершение потоков и работу с атомиками.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.06.2024, 18:01
Помогаю со студенческими работами здесь

Как установить OpenCL для использования в Intel OneAPI MKL в QtCreator
Мне нужно использовать Intel OneAPI MKL в QtCreator в Windows 10. MKL подключается к проекту довольно легко, но для MKL нужен OpenCL. ...

Qt + MSVS
Начал изучать с++,тут столкнулся с проблемой: графический интерфейс для программы. Решил скачать QT SDK,и тут мне сказали что можно...

Qt 4.8.4 msvs 2012
Доброго времени суток дорогие форумчане)Сразу предупреждаю у мя 8ка(64 разрядная)! Очень бы хотелось поформошлёпить с Qt. Мне не очень...

MSVS и MFC
В MSVS 2010 C++ нету MFC. Почему?

MSVS vs Dev-C++
Всем здравствуйте. Уважаемые гуру C++! Подскажите пожалуйста, в чём разница сред программирования visual studio и Dev-C++? Всем заранее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

Новые блоги и статьи
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
Apache Airflow для оркестрации и автоматизации рабочих процессов
Mr. Docker 16.03.2025
Управление сложными рабочими процессами — одна из главных головных болей инженеров данных и DevOps-специалистов. Представьте себе: каждый день нужно запускать десятки скриптов в определенной. . .
Оптимизация приложений Java для ARM
Javaican 16.03.2025
ARM-архитектура переживает настоящий бум популярности в технологическом мире. Когда-то воспринимаемая исключительно как решение для мобильных устройств и встраиваемых систем, сегодня она штурмует. . .
Управление состоянием в Vue 3 с Pinia и Composition API
Reangularity 16.03.2025
Когда я начал работать с Vue несколько лет назад, мне казалось достаточным использовать простую передачу данных через props и события между компонентами. Однако уже на среднем по сложности проекте. . .
Введение в DevSecOps: основные принципы и инструменты
Mr. Docker 16.03.2025
DevSecOps - это подход к разработке программного обеспечения, который объединяет в себе принципы разработки (Dev), безопасности (Sec) и эксплуатации (Ops). Суть подхода заключается в том, чтобы. . .
GitHub Actions vs Jenkins: Сравнение инструментов CI/CD
Mr. Docker 16.03.2025
В этой битве за эффективность и скорость выпуска программных продуктов ключевую роль играют специализированные инструменты. Два гиганта в этой области — GitHub Actions и Jenkins — предлагают разные. . .
Реактивное программировани­е с Kafka Stream и Spring WebFlux
Javaican 16.03.2025
Реактивное программирование – это программная парадигма, ориентированная на потоки данных и распространение изменений. Она позволяет выражать статические или динамические потоки данных и. . .
Простая нейросеть на КуМир: Учебное пособие по созданию и обучению нейронных сетей
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru