Я разработчик (на Linux) и внедрил рабочий процесс Python, в котором приложение C/C ++, параллельное с OpenMP, называется примерно в 100 раз. Я протестировал рабочий процесс на различные числа потоков. В первой реализации я использовал переменную среды omp_num_threads, чтобы установить количество параллельных потоков, но я наблюдал какое -то странное поведение. Во второй реализации я установил количество параллельных потоков во время выполнения, используя «omp_set_num_threads» и установил omp_num_threads = 1, что привело к лучшей производительности, см. Изображение.
Сравнение производительности < /p>
после краткого исследования с «Strace» я обнаружил, что Lineear увеличивается, вызванная Openmp в первой реализации. По -видимому, каждый поток инициализируется, и память выделяется для каждого потока, что занимает минутку. С 48 потоками и ~ 100 вызовами это происходит ~ 4800 раз. Однако это влияет на другие приложения, которые получают доступ к этой переменной среды. < /P>
Есть ли способ изменить поведение OpenMP? Я разработчик и знаю, что переменная среды установлена, а также влияет на другие приложения. Тем не менее, я также делюсь рабочим процессом с другими людьми, у которых нет опыта разработки и не знакомы с Linux, которые просто хотят выполнить рабочий процесс. (18.1.3) & libomp, тот же результат.
Подробнее здесь: https://stackoverflow.com/questions/797 ... mance-test
OpenMP Тест производительности ⇐ C++
Программы на C++. Форум разработчиков
1759738382
Anonymous
Я разработчик (на Linux) и внедрил рабочий процесс Python, в котором приложение C/C ++, параллельное с OpenMP, называется примерно в 100 раз. Я протестировал рабочий процесс на различные числа потоков. В первой реализации я использовал переменную среды omp_num_threads, чтобы установить количество параллельных потоков, но я наблюдал какое -то странное поведение. Во второй реализации я установил количество параллельных потоков во время выполнения, используя «omp_set_num_threads» и установил omp_num_threads = 1, что привело к лучшей производительности, см. Изображение.
Сравнение производительности < /p>
после краткого исследования с «Strace» я обнаружил, что Lineear увеличивается, вызванная Openmp в первой реализации. По -видимому, каждый поток инициализируется, и память выделяется для каждого потока, что занимает минутку. С 48 потоками и ~ 100 вызовами это происходит ~ 4800 раз. Однако это влияет на другие приложения, которые получают доступ к этой переменной среды. < /P>
Есть ли способ изменить поведение OpenMP? Я разработчик и знаю, что переменная среды установлена, а также влияет на другие приложения. Тем не менее, я также делюсь рабочим процессом с другими людьми, у которых нет опыта разработки и не знакомы с Linux, которые просто хотят выполнить рабочий процесс. (18.1.3) & libomp, тот же результат.
Подробнее здесь: [url]https://stackoverflow.com/questions/79783461/openmp-performance-test[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия