0, endwtime; int rc; MPI_Status status; rc = MPI_Init (argc,argv); rc|= MPI_Comm_size (MPI_COMM_WORLD,numprocs); rc|= MPI_Comm_rank (MPI_COMM_WORLD,myid); if (rc! = 0) printf ("error initializing MPI and obtaining task ID information\n"); MPI_Get_processor_name (processor_name,namelen); fprintf (stdout,"Process%d of%d is on%s\n", myid, numprocs, processor_name); fflush (stdout); // функция начала замера времени вычисления


перейти к полному списку дипломных проектов

Ссылка на скачивания файла в формате .doc находится в конце странички

0, endwtime; int rc; MPI_Status status; rc = MPI_Init (argc,argv); rc|= MPI_Comm_size (MPI_COMM_WORLD,numprocs); rc|= MPI_Comm_rank (MPI_COMM_WORLD,myid); if (rc! = 0) printf ("error initializing MPI and obtaining task ID information\n"); MPI_Get_processor_name (processor_name,namelen); fprintf (stdout,"Process%d of%d is on%s\n", myid, numprocs, processor_name); fflush (stdout); // функция начала замера времени вычисления

0,a,12, i,j) +2*mu*simpsonFx (0.0,a,12, i,j) *simpsonFy (0.0,a,12, i,j) +2*simpsonFx (0.0,a,10, i,j)

*simpsonFy (0.0,a,11, i,j) +8*mu1*simpsonFx (0.0,a,13, i,j) *simpsonFy (0.0,a,13, i,j));

case 10:

return 2* (1-pow (mu,2)) *simpsonFx (0.0,a,14, i,j) *simpsonFy (0.0,a,14, i,j);

default:

return 0;

}

}

int main (int argc,char *argv [])

{

// объявление переменных.

int myid, numprocs;

int namelen;

char processor_name [MPI_MAX_PROCESSOR_NAME] ;

double startwtime = 0.0, endwtime;

int rc;

MPI_Status status;

rc = MPI_Init (argc,argv);

rc|= MPI_Comm_size (MPI_COMM_WORLD,numprocs);

rc|= MPI_Comm_rank (MPI_COMM_WORLD,myid);

if (rc! = 0)

printf ("error initializing MPI and obtaining task ID information\n");

MPI_Get_processor_name (processor_name,namelen);

fprintf (stdout,"Process%d of%d is on%s\n",

myid, numprocs, processor_name);

fflush (stdout);

// функция начала замера времени вычисления.

if (myid == 0) {

startwtime = MPI_Wtime ();

}

N = 4; // количество членов

a = 1, b = 1;

n = 6, m = 6, E = 21000;

q = 0.0037, h = 0.001, mu = 0.3, r = 0.2;

Pi = 3.14;

int i, j;

double rv;

bool xyz;

R1 = 440*h;

R2 = 440*h;

mu1 = (1-mu) /2;

Kx = 1/ (double) R1;

Ky = 1/ (double) R2;

// выделение памяти под массивы для аппроксимирующих функций

X1 = (double*) malloc (N * sizeof (double));

X2 = (double*) malloc (N * sizeof (double));

X3 = (double*) malloc (N * sizeof (double));

Y1 = (double*) malloc (N * sizeof (double));

Y2 = (double*) malloc (N * sizeof (double));

Y3 = (double*) malloc (N * sizeof (double));

int sqrtN = pow (N, 0.5);

/*

вычисление коэффициентов аппроксимирующих функций на

нескольких процессах.

*/

for (i = 1; i <= sqrtN; i++)

{

for (j = 1; j <= sqrtN; j++)

{

if (myid == 0) {

X1 [sqrtN * (i - 1) + j - 1] = 2 * i * Pi;

printf ("X1 [%d] =%.3f\n",sqrtN * (i - 1) + j - 1,X1 [sqrtN * (i - 1) + j - 1]);

X2 [sqrtN * (i - 1) + j - 1] = (2 * i - 1) * Pi;

printf ("X2 [%d] =%.3f\n",sqrtN * (i - 1) + j - 1,X2 [sqrtN * (i - 1) + j - 1]);

X3 [sqrtN * (i - 1) + j - 1] = (2 * i - 1) * Pi;

printf ("X3 [%d] =%.3f\n",sqrtN * (i - 1) + j - 1,X3 [sqrtN * (i - 1) + j - 1]);

}

if (myid == 1) {

Y1 [sqrtN * (i - 1) + j - 1] = (2 * j - 1) * Pi;

printf ("Y1 [%d] =%.3f\n",sqrtN * (i - 1) + j - 1,Y1 [sqrtN * (i - 1) + j - 1]);

Y2 [sqrtN * (i - 1) + j - 1] = 2 * j * Pi;

printf ("Y2 [%d] =%.3f\n",sqrtN * (i - 1) + j - 1,Y2 [sqrtN * (i - 1) + j - 1]);

Y3 [sqrtN * (i - 1) + j - 1] = (2 * j - 1) * Pi;

printf ("Y3 [%d] =%.3f\n",sqrtN * (i - 1) + j - 1,Y3 [sqrtN * (i - 1) + j - 1]);

}

}

}

/*

пересылка результатов вычислений на "головную" машину

*/

if (myid == 1) {

MPI_Send (Y1, N, MPI_DOUBLE, 0, 1, MPI_COMM_WORLD);

MPI_Send (Y2, N, MPI_DOUBLE, 0, 2, MPI_COMM_WORLD);

MPI_Send (Y3, N, MPI_DOUBLE, 0, 3, MPI_COMM_WORLD);

MPI_Recv (X1, N, MPI_DOUBLE, 0, 4, MPI_COMM_WORLD,

status);

MPI_Recv (X2, N, MPI_DOUBLE, 0, 5, MPI_COMM_WORLD,

status);

MPI_Recv (X3, N, MPI_DOUBLE, 0, 6, MPI_COMM_WORLD,

status);

}

if (myid == 0) {

MPI_Recv (Y1, N, MPI_DOUBLE, 1, 1, MPI_COMM_WORLD,

status);

MPI_Recv (Y2, N, MPI_DOUBLE, 1, 2, MPI_COMM_WORLD,

status);

MPI_Recv (Y3, N, MPI_DOUBLE, 1, 3, MPI_COMM_WORLD,

status);

MPI_Send (X1, N, MPI_DOUBLE, 1, 4, MPI_COMM_WORLD);

MPI_Send (X2, N, MPI_DOUBLE, 1, 5, MPI_COMM_WORLD);

MPI_Send (X3, N, MPI_DOUBLE, 1, 6, MPI_COMM_WORLD);

}

// вывод времени вычисления аппрокс. функций

if (myid == 0) {

endwtime = MPI_Wtime ();

printf ("\napp func clock time =%f\n", endwtime-startwtime);

}

printf ("\n - --------------- - BEGIN - -----------------\n");

/*

выделение памяти под массивы коэффициентов ФПЭД

и вычисление их на разных процессах.

*/

C1 = (double*) malloc (3 * N * 3 * N * sizeof (double));

C2 = (double*) malloc (3 * N * 3 * N * sizeof (double));

for (i = 0; i < N; i++)

{

for (j = 0; j < N; j++)

{

// обнуление всех значений для удобства пересылки

C1 [i*N+j] =0;

C1 [i*N+N+j] =0;

C1 [i*N+2*N+j] =0;

C1 [N+i*N+j] =0;

C1 [N+i*N+N+j] =0;

C1 [N+i*N+2*N+j] =0;

C1 [2*N+i*N+j] =0;

C1 [2*N+i*N+N+j] =0;

C1 [2*N+i*N+2*N+j] =0;

if (myid == 0) {

C1 [N*i+j] =C (1, i,j);

C1 [N*i+N+j] =C (2, i,j);

C1 [N*i+2*N+j] =C (3, i,j);

C1 [N+N*i+j] =C (4, i,j);

C1 [N+N*i+N+j] =C (5, i,j);

}

if (myid == 1) {

C1 [N+N*i+2*N+j] =C (6, i,j);

C1 [2*N+N*i+j] =C (7, i,j);

C1 [2*N+N*i+N+j] =C (8, i,j);

C1 [2*N+N*i+2*N+j] =C (9, i,j);

}

}

}

// пересылка массивов на "головную" машину

if (myid == 1) {

MPI_Send (C1, 3*N*3*N, MPI_DOUBLE, 0, 7, MPI_COMM_WORLD);

}

if (myid == 0) {

MPI_Recv (C2, 3*N*3*N, MPI_DOUBLE, 1, 7, MPI_COMM_WORLD, status);

printf ("\n\nC2 [1]%.3f\n",C2 [0]);

}

printf ("\n - --------------- - END - -----------------\n");

if (myid == 0) {

matrix M1 (3*N,3*N);

printf ("-------------------- - BEGIN FIRST - -----------------\n");

for (i = 0; i < N; i++)

{

for (j = 0; j < N; j++)

{

M1. setvalue (i,j,C (1, i,j));

printf ("C1 [%d,%d]: =%.5f ", i,j,C (1, i,j));

M1. setvalue (i,N+j,C (2, i,j));

printf ("C2 [%d,%d]: =%.5f ", i,N+j,C (2, i,j));

M1.

скачать бесплатно АЛГОРИТМЫ ПАРАЛЛЕЛЬНЫХ ПРОЦЕССОВ ПРИ ИССЛЕДОВАНИИ УСТОЙЧИВОСТИ ПОДКРЕПЛЕННЫХ ПОЛОГИХ ОБОЛОЧЕК

Содержание дипломной работы

7),   Функции изменения кривизн  и кручения  принимают вид   (8) Выражения для  здесь принимают вид   (9) Глава 2
Таким образом, в зависимости от физической линейности или нелинейности вызываются соответствующие блоки
По заданному фильтру производится расчет полей прогибов и напряжений для физически линейной или нелинейной задачи
Для оценки эффективности его качества применяются следующие критерии: Ускорение , где  - время исполнения распараллеленной программы на p процессорах,  - время исполнения исходной программы
Основным средством коммуникации между процессами в MPI является передача сообщений друг другу
В дальнейшем будем предполагать, что имеется сеть из нескольких компьютеров (будем называть их вычислительными узлами), работающих под управлением Windows
Кроме того, можно указать имя пользователя и пароль: процессы MPI-программы будут запускаться от имени этого пользователя
Программы MPICH в списке исключений брандмауэра Если какая-то из перечисленных программ отсутствует в списке разрешённых программ, то вы необходимо добавить её вручную
При выборе компьютера в списке компьютеров его имя автоматически вводится в поле "Host"
6 Создание общего сетевого ресурса Для удобного запуска MPI-программ следует создать на одном из компьютеров общий сетевой ресурс с правом полного доступа для всех пользователей
Из этого последует выигрыш по времени в 300-400% при решении комплекса задач при различных параметрах (при различной кривизне и толщине оболочки, при различных величинах нагрузки)
В качестве тестовых систем были использованы следующие ПК: Intel Core 2 Duo 2,0 Ггц, 2 Гб оперативной памяти; Intel Xeon 2x2,66 Ггц, 4 Гб оперативной памяти
В
- Саратов: Изд-во Сарат
Приложения на отдельных платформах могут, тем не менее, иметь причины для использования функций ввода/вывода самой платформы вместо функций stdio
0,a,5, i,j); case 4: return 2*h*mu*simpsonFx (0
0, endwtime; int rc; MPI_Status status; rc = MPI_Init (argc,argv); rc|= MPI_Comm_size (MPI_COMM_WORLD,numprocs); rc|= MPI_Comm_rank (MPI_COMM_WORLD,myid); if (rc! = 0) printf ("error initializing MPI and obtaining task ID information\n"); MPI_Get_processor_name (processor_name,namelen); fprintf (stdout,"Process%d of%d is on%s\n", myid, numprocs, processor_name); fflush (stdout); // функция начала замера времени вычисления
setvalue (2*N+i,N+j,C (8, i,j)); printf ("C8 [%d,%d]: =%
settoproduct (M1,M2); // сравнение полученной единичной матрицы с эталоном единичной матрицы M3
getvalue (i,j,rv,xyz); std:: cout << rv << " "; } std:: cout << std:: endl; } }; void comparetoidentity () { int worstdiagonal = 0; D maxunitydeviation = 0
, нами было разработано и проведено 6 занятий по 3D моделированию, позволяющих изучить основы 3D моделирования

заработать

Закачай файл и получай деньги