|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
||||||
Разбиение потоков30.10.2022, 19:46. Показов 1127. Ответов 9
Метки нет (Все метки)
Корректно ли так обрабатывать и разбивать потоки?
0
|
||||||
| 30.10.2022, 19:46 | |
|
Ответы с готовыми решениями:
9
Разбиение строки на слова - вынести разбиение в отдельную функцию
Создание и завершение процессов и потоков. Приоритеты выполнения потоков |
|
фрилансер
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 30.10.2022, 20:48 | |
|
JIupToH, для внешнего цикла можно заюзать многопоточную версию
std::for_each, внутренний цикл без потоков обойдётся, мне кажется.а OMP тут не нужен
0
|
|
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
| 30.10.2022, 20:56 [ТС] | |
|
Алексей1153, не просто перебираются данные, и там мне нужно разбить на подпотоки. В моем случае, разбиение идёт только в верхнем цикле. Во вложенном цикле нет разбиения…
Добавлено через 2 минуты Алексей1153, я нашел примеры где выделяется секция, в которой реализовано распараллеливание. В этой секции выделяются два независимых цикла, в которых реализовано разбиение на потоки. Но вот вложенного примера с распараллеливание не нашел
0
|
|
|
фрилансер
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 30.10.2022, 21:01 | |
|
мои предположения - параллелить оба цикла есть неэффективно. Нужно либо внешний, либо внутренний
но можно попробовать все три варианта, затем сделать замеры и выбрать самый эффективный вариант
0
|
|
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
| 30.10.2022, 21:10 [ТС] | |
|
Алексей1153, а как оба цикла? Можно пример, если нетрудно.
Добавлено через 38 секунд Алексей1153, просто я представляю, как это должно быть, но вот как реализовать…
0
|
|
|
фрилансер
6451 / 5652 / 1129
Регистрация: 11.10.2019
Сообщений: 15,054
|
|
| 30.10.2022, 21:22 | |
|
0
|
|
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
| 30.10.2022, 21:56 [ТС] | |
|
Алексей1153, спасибо, но немного не то
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 31.10.2022, 20:41 | ||
![]() Два цикла - два объекта для распаралеливания (А - объемлющий цикл, Б - внутренний). Первый цикл, просто отделяется в другой поток А от объемлющего потока Х. Теперь при каждой итерации А вы хотите создать еще один поток для Б. ? Всего породим потоков 1 (А) + N (Б) (N - итераций А) ? Так и что не выходит ? Насколько я знаю потоки запросто порождают другие потоки. С OMP и его возможностями не знаком. Может все же достаточно будет std::thread ?
0
|
||
|
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
|
||||||||||||||||||||||||||
| 02.11.2022, 15:38 | ||||||||||||||||||||||||||
Сообщение было отмечено JIupToH как решение
Решение
JIupToH, в данном случае лучше использовать клаузу
collapse. Она объединит два цикла. Пример:
#pragma omp parallel, будет работать, только если это явно разрешить. Рабочий пример:
При втором запуске, чрез переменную окружения было разрешено вложенным параллельным секциям порождать потоки, и программа создала 12 (3*4) потоков. Так же стоит обратить внимание, что при вложенной параллельной секции меняется результат omp_get_thread_num и мне приходится вызывать его дважды.
1
|
||||||||||||||||||||||||||
|
34 / 22 / 13
Регистрация: 20.05.2022
Сообщений: 414
|
|
| 04.11.2022, 16:40 [ТС] | |
|
AlexVRud, спасибо за пример) И развернутое пояснение допущенной мной ошибки! Спасибо милчеловек!
0
|
|
| 04.11.2022, 16:40 | |
|
Помогаю со студенческими работами здесь
10
QR -разбиение
Определить количество потоков в процессе, базовый приоритет, исследовать изменения приоритета потоков Замедление работы потоков если запущено несколько потоков Разработать программу, генерирующую n потоков в пуле потоков CLR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|