Умножение матриц с использованием потоков - PullRequest
0 голосов
/ 13 марта 2011

Я пытаюсь умножить 2 матрицы вместе, используя 1 поток для каждой ячейки вывода.
Я использую c ++ / g ++ в Unix.
Как мне это сделать?
Могу ли я сделатьэто в цикле?

1 Ответ

1 голос
/ 13 марта 2011

Вот мое предложение:

  1. Напишите функцию, которая будет вычислять одну выходную ячейку. Дайте ему параметры, указывающие, какую ячейку вычислять.
  2. Напишите однопотоковую программу, которая использует цикл для вычисления каждой ячейки (вызывая функцию из «1»). Сохраните все результаты и не записывайте их, пока не закончите вычисление всех ячеек.
  3. Измените программу так, чтобы вместо каждого цикла, вызывающего функцию, каждый цикл создавал поток для выполнения функции.
  4. Выясните, как заставить "основную" программу подождать, пока все потоки не закончат, прежде чем записывать все результаты.

Думаю, это даст вам стратегию для выработки решения, а я не сделаю вашу домашнюю работу за вас.

Если у вас есть шанс, и он не работает, опубликуйте здесь свой код, и люди помогут вам отладить его. Важная часть заключается не в том, чтобы вы получили хороший ответ, а в том, чтобы научиться решать проблемы такого типа, поэтому вам не поможет, если кто-то просто даст вам ответ.

...