Читайте также: |
|
{
Int i, j, до;
Double t1, t2;
// ініціалізація матриць
for (i=0; i<N; i++)
for (j=0; j<N; j++)
а[i][j]=b[i][j]=i*j;
t1=omp_get_wtime();
// основний обчислювальний блок
#pragma omp parallel for shared(а, b, з) private(i, j, до)
for(i=0; i<N; i++){
for(j=0; j<N; j++){
з[i][j]= 0.0;
for(k=0; k<N; k++) з[i][j]+=a[i][k]*b[k][j];
}
}
t2=omp_get_wtime();
printf("Time=%lf\n", t2-t1);
}
Приклад 31a. Перемножування матриць на мові С.
Program matrmult
include "omp_lib.h"
Integer N
parameter(N=4096)
common /arr/ а, b, з
Double precision а(N, N), b(N, N), з(N, N)
Integer i, j, до
Double precision t1, t2
З ініціалізація матриць
do i=1, N
do j=1, N
а(i, j)=i*j
b(i, j)=i*j
End do
End do
t1=omp_get_wtime()
основний обчислювальний блок
!$omp parallel do shared(а, b, з) private(i, j, до)
do j=1, N
do i=1, N
з(i, j)= 0.0
do k=1, N
з(i, j)=c(i, j)+a(i, до)*b(до, j)
End do
End do
End do
t2=omp_get_wtime()
print *, "Time=", t2-t1
End
Приклад 31b. Перемножування матриць на мові Фортран
66. Навести і описати паралельні методи розв'язку систем лінійних рівнянь.
Лінійне рівняння з n невідомими
Безліч n лінійних рівнянь називається системою лінійних рівнянь або лінійною системою
В матричной форме:
· Під задачею рішення системи лінійних рівнянь для заданих матриці А і вектора b розуміється знаходження значення вектора невідомих x, при якому виконуються всі рівняння системи.
Дата добавления: 2015-08-18; просмотров: 46 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Mpdallexit | | | Метод Гауса - паралельний алгоритм |