Головна Головна -> Інше українською -> Інформатика, комп'ютери, програмування -> Паралельні та розподілені обчислення

Паралельні та розподілені обчислення

Назва:
Паралельні та розподілені обчислення
Тип:
Інше
Мова:
Українська
Розмiр:
1,49 KB
Завантажень:
437
Оцінка:
 
поточна оцінка 5.0


Скачати цю роботу безкоштовно
Пролистати роботу: 1  2 
“Паралельні та розподілені обчислення”


Тема роботи: Методи розпаралелення лінійних та циклічних алгоритмів.
Мета роботи: Освоєння принципів та отримання навиків по розпаралеленню послідовних лінійних та циклічних алгоритмів.
Завдання для виконання роботи
Побудувати блок-схему та написати програму (засобами послідовного програмування), орієнтовану на виконання на чотирьох процесорах, яка виконує:
Обчислення суми двох векторів А={a1, a2,… a100} та B={b1, b2,… b100}, результат якої множиться на матрицю С=||сij||, тобто D=(A+B)*C. Дані векторів А, B, C відповідно до табл. 1.1.
Множення матриці M=||mij||, де , на обчислений транспонований вектор D із першого пункту завдання.
2
#include <conio.h>
#include <iostream.h>
#include <math.h>
#include <stdlib.h>
void main(void)
{
int i,j,k;
float a[100],b[100],ab[100],c[100][100],d[100],m[100][100],r[100];
for(i=1;i<=100;i++)
{
a[i]=cos(3.14/60);
b[i]=sin(3.14/60);
}
for(i=1;i<=100;i++)
{
for(j=1;j<=100;j++)
{
c[i-1][j-1]=cos(2*3.14/sin(i+j));
m[i-1][j-1]=sin(2*3.14/sin(i+j));
}
}
for(i=0;i<=24;i++)
{
ab[i]=a[i]+b[i];
}
for(i=25;i<=49;i++)
{
ab[i]=a[i]+b[i];
}
for(i=50;i<=74;i++)
{
ab[i]=a[i]+b[i];
}
for(i=75;i<=99;i++)
{
ab[i]=a[i]+b[i];
}
for(i=0;i<=99;i++)
{
if((i<=10)||(i>=90))
cout<<"a "<<i<<" "<<a[i]<<'\t'<<"b "<<i<<" "<<b[i]<<'\t'<<"ab "<<i<<" "<<ab[i]<<'\n';
}
getch();
for(i=0;i<=24;i++)
{
d[i]=0;
for(j=0;j<=99;j++)
{
d[i]+=ab[j]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"d "<<i<<" "<<d[i]<<'\n';
}
for(i=25;i<=49;i++)
{
d[i]=0;
for(j=0;j<=99;j++)
{
d[i]+=ab[j]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"d "<<i<<" "<<d[i]<<'\n';
}
for(i=50;i<=74;i++)
{
d[i]=0;
for(j=0;j<=99;j++)
{
d[i]+=ab[j]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"d "<<i<<" "<<d[i]<<'\n';
}
for(i=75;i<=99;i++)
{
d[i]=0;
for(j=0;j<=99;j++)
{
d[i]+=ab[j]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"d "<<i<<" "<<d[i]<<'\n';
}
getch();
for(i=0;i<=24;i++)
{
r[i]=0;
for(j=0,k=99;j<=99,k>=0;j++,k--)
{
r[i]+=d[k]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"r "<<i<<" "<<r[i]<<'\n';
}
for(i=25;i<=49;i++)
{
r[i]=0;
for(j=0,k=99;j<=99,k>=0;j++,k--)
{
r[i]+=d[k]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"r "<<i<<" "<<r[i]<<'\n';
}
for(i=50;i<=74;i++)
{
r[i]=0;
for(j=0,k=99;j<=99,k>=0;j++,k--)
{
r[i]+=d[k]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"r "<<i<<" "<<r[i]<<'\n';
}
for(i=75;i<=99;i++)
{
r[i]=0;
for(j=0,k=99;j<=99,k>=0;j++,k--)
{
r[i]+=d[k]*c[i][j];
}
if((i<=10)||(i>=90))
cout<<"r "<<i<<" "<<r[i]<<'\n';
}
getch();
}


a 0 0.0523094 b 0 9.99172e-38 ab 0 0.0523094
a 1 0.998631 b 1 0.0523094 ab 1 1.05094
a 2 0.998631 b 2 0.0523094 ab 2 1.05094
a 3 0.998631 b 3 0.0523094 ab 3 1.05094
a 4 0.998631 b 4 0.0523094 ab 4 1.05094
a 5 0.998631 b 5 0.0523094 ab 5 1.05094
a 6 0.998631 b 6 0.0523094 ab 6 1.05094
a 7 0.998631 b 7 0.0523094 ab 7 1.05094
a 8 0.998631 b 8 0.0523094 ab 8 1.05094
a 9 0.998631 b 9 0.0523094 ab 9 1.05094
a 10 0.998631 b 10 0.0523094 ab 10 1.05094
a 90 0.998631 b 90 0.0523094 ab 90 1.05094
a 91 0.998631 b 91 0.0523094 ab 91 1.05094
a 92 0.998631 b 92 0.0523094 ab 92 1.05094
a 93 0.998631 b 93 0.0523094 ab 93 1.05094
a 94 0.998631 b 94 0.0523094 ab 94 1.05094
a 95 0.998631 b 95 0.0523094 ab 95 1.05094
a 96 0.998631 b 96 0.0523094 ab 96 1.05094
a 97 0.998631 b 97 0.0523094 ab 97 1.05094
a 98 0.

Завантажити цю роботу безкоштовно
Пролистати роботу: 1  2 



Інше на тему: Паралельні та розподілені обчислення

BR.com.ua © 1999-2017 | Реклама на сайті | Умови використання | Зворотній зв'язок