Форум программистов, компьютерный форум, киберфорум
MPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 11.01.2013
Сообщений: 260

Параллельное заполнение массива

20.01.2024, 19:56. Показов 1375. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть задача распараллелить заполнение массива размером N+1 значениями i*h, где h=1/N. Я рассылаю h процессам с помощью метода Broadcast(), а вот как действовать дальше? И правильно ли я делаю что выделяю память под массив на ранке 0?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.01.2024, 19:56
Ответы с готовыми решениями:

OpenTK, C#, параллельное заполнение буффера
Здравствуйте. Недавно по компьютерной графике рисовал фрактал с помощью OpenTK на C#. Решил попробовать распараллелить заполенение буффера....

Заполнение заполнение одномерного массива результатами анализа двумерного
Получить одномерный массив по правилу: Xi=0 если все значения i-строки и i-столбца двумерного массива меньше единицы, иначе Xi=1.

Ввод элементов массива, параллельное программирование
Добрый день! Требуется вычислить сумму всех элементов вектора. Я тестирую свою программы на 1-м, 4-х, 8-ми и 12-ти ядрах с числом итераций...

9
 Аватар для Pphantom
2311 / 1557 / 718
Регистрация: 17.03.2022
Сообщений: 5,008
21.01.2024, 10:58
Цитата Сообщение от hawk1 Посмотреть сообщение
Есть задача распараллелить заполнение массива размером N+1 значениями i*h, где h=1/N.
Есть утверждение, что MPI предполагает работу на системе с распределенной памятью, поэтому один массив в принципе может храниться только на одной ноде.

Поэтому то, что память под него выделяется в каком-то одном процессе, понятно и нормально, а вот что вы собираетесь в этой задаче делать параллельно, понять сложно.
0
2 / 2 / 0
Регистрация: 11.01.2013
Сообщений: 260
21.01.2024, 16:28  [ТС]
Цитата Сообщение от Pphantom Посмотреть сообщение
Поэтому то, что память под него выделяется в каком-то одном процессе, понятно и нормально, а вот что вы собираетесь в этой задаче делать параллельно, понять сложно.
Вычисление значений элементов
0
 Аватар для Pphantom
2311 / 1557 / 718
Регистрация: 17.03.2022
Сообщений: 5,008
21.01.2024, 16:56
Цитата Сообщение от hawk1 Посмотреть сообщение
Вычисление значений элементов
Кхм... ну ладно, допустим, хотя смысл неясен.

Тогда каждый процесс считает свои куски массива, а потом все это собирается воедино с помощью MPI_Gather (или MPI_Gatherv, если хочется усложнить себе жизнь).
0
2 / 2 / 0
Регистрация: 11.01.2013
Сообщений: 260
21.01.2024, 17:20  [ТС]
Вообще-то мне необходимо распараллелить решение краевой задачи.
0
 Аватар для Pphantom
2311 / 1557 / 718
Регистрация: 17.03.2022
Сообщений: 5,008
21.01.2024, 17:23
Цитата Сообщение от hawk1 Посмотреть сообщение
Вообще-то мне необходимо распараллелить решение краевой задачи.
Ну так вы бы и изложили условие исходной задачи. То, что описывалось выше, можно с большим трудом посчитать учебной задачей (из разряда "плац подметать ломом надо не для того, чтобы он был чистый, а чтобы вы задолбались"), но чем-то разумным оно точно не является.
0
2 / 2 / 0
Регистрация: 11.01.2013
Сообщений: 260
21.01.2024, 17:32  [ТС]
Pphantom, да но ведь в краевой задаче мы вычисляем массив решений диф уравнения. И как я понимаю распараллелить нужно именно эти вычисления.
0
 Аватар для Pphantom
2311 / 1557 / 718
Регистрация: 17.03.2022
Сообщений: 5,008
21.01.2024, 17:58
hawk1, да, но только вы там не просто массив вычисляете, а решаете какую-то систему уравнений (в случаем случае - линейную). Это намного более трудоемкое мероприятие и для него распараллеливание имеет смысл. А в описанной вами пока задаче накладные расходы на организацию параллельности съедят ресурсов намного больше, чем вычисление всего того же в одном процессе.

Вот, попробовал сейчас сделать подобное с массивом примерно 35Гб (2^32 элементов) в одном процессе - на все меньше 3 секунд. Вряд ли вам такая сетка для одномерной краевой задачи понадобится, да и доступной памяти на один процесс сильно больше накопать проблематично.
0
2 / 2 / 0
Регистрация: 11.01.2013
Сообщений: 260
21.01.2024, 20:47  [ТС]
Pphantom, тогда как это правильно сделать? Сроки уже горят
0
 Аватар для Pphantom
2311 / 1557 / 718
Регистрация: 17.03.2022
Сообщений: 5,008
21.01.2024, 20:49
hawk1, когда вы внятно сформулируете то, что вам нужно сделать - можно будет (наверное) сказать, как именно. Пока вы упорно отмалчиваетесь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.01.2024, 20:49
Помогаю со студенческими работами здесь

Параллельное сложение матриц(двумерного массива) используя thread
Здравствуйте, пытаюсь сделать параллельное сложение матриц. объявлены 3 матрицы, допустим размерность матриц равна 4. static int...

Заполнение массива случайными числами. Вычисление среднего арифметического значения массива. Вывод наибольшего массива
Заполнение два массива случайными числами. Вычисление среднего арифметического значения массива. Вывод наибольшего массива. Помогите...

Найти сумму четных элементов массива целых чисел. Размерность массива – 20. Заполнение массива осуществить случайными числами от 100 до 200
Найти сумму четных элементов массива целых чисел. Размерность массива – 20. Заполнение массива осуществить случайными числами от 100 до 200

Заполнение одномерного массива пользователем и вывод квадратов чисел массива
Написать основную программу и модуль: заполнение одномерного массива числами real, которые вводит пользователь с клавиатуры. Вывод этого...

Не получается создать файл, сохранением массива в файле и заполнение массива значениями из файла
Здравствуйте. Я уже второй день пытаюсь решить проблему с созданием файла, сохранением массива в файле и заполнением массива информацией из...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru