Моя домашняя задача гласит, что я должен отправить часть матрицы A и весь B каждому рабочему процессу, но я (и многие люди в моем классе) не уверены, требует ли это использования fork () для создания процесса или если можно использовать pthreads. Вопрос в следующем:
Напишите параллельную программу, вычисляющую произведение двух n × n плотных матриц, C = A × B, используя мастер-процесс и p рабочих процессов.
Мастер-процесс горизонтально разбивает матрицу A на p равных срезов (мы предполагаем, что p
делит n) и отправляет всю матрицу B и один кусочек A каждому из рабочих процессов
(существует взаимно-однозначное сопоставление между разделами A и рабочими процессами).
сокеты и SOCK_STREAM должны использоваться
Мое задание в настоящее время работает так:
Программа берет две матрицы и заполняет их случайными значениями, затем отправляет A и B в другую программу с использованием сокетов. Я создаю массив pthreads и отправляю части A и всю B в каждый поток и в конечном итоге возвращаю матрицу продукта в первую программу.
Размерность матриц указана в командной строке.