@smite107

Как распараллелить вложенный цикл?

Имеется код:
for (j = 1; j <= p; j++) {
	//Для всех индексов j = 1..p
	for (k = -q; k <= q; k++) {
		//и k = -q..q вычисляем значение свертки
		double sum = 0;
		for (i = -q; i <= q; i++) {
			//сумма по i = -q..q
			sum += (filterWb(k, i) * G[j - 1][i + q]);
		}
		V[j - 1][k + q] = h * sum;
	}
}

Его необходимо распараллелить с помощью MPI. Интересует сама идея - что и как параллелить в этом коде. Помогите пожалуйста)
  • Вопрос задан
  • 1145 просмотров
Решения вопроса 1
Поидеи можно распаралелить вычесление суммы. Делим промежуток i...q на n частей и вычесляем n сум для этих участков в разных потоках(необезательно в n). Потом сумируем их и продолжаем вычесления дальше.
Можно попытатся распаралелить еще чего нибуть, но эту часть будет попроще, я считаю.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы