getvalue (i,j,rv,xyz); std:: cout << rv << " "; } std:: cout << std:: endl; } }; void comparetoidentity () { int worstdiagonal = 0; D maxunitydeviation = 0


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

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

getvalue (i,j,rv,xyz); std:: cout << rv << " "; } std:: cout << std:: endl; } }; void comparetoidentity () { int worstdiagonal = 0; D maxunitydeviation = 0

10f", W);

// вывод времени вычисления программы

endwtime = MPI_Wtime ();

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

fflush (stdout);

}

MPI_Finalize ();

return 0;

}

Matrix. h:

ifndef __mjdmatrix_h

define __mjdmatrix_h

template class matrix{

int maxsize;

int actualsize;

D* data;

void allocate () {

delete [] data;

data = new D [maxsize*maxsize] ;

};

matrix () {};

matrix (int newmaxsize) {matrix (newmaxsize,newmaxsize); };

public:

matrix (int newmaxsize, int newactualsize) {

if (newmaxsize <= 0) newmaxsize = 5;

maxsize = newmaxsize;

if ( (newactualsize <= newmaxsize) (newactualsize>0))

actualsize = newactualsize;

else

actualsize = newmaxsize;

data = 0;

allocate ();

};

~matrix () { delete [] data; };

void settoproduct (matrix left, matrix right) {

actualsize = left. getactualsize ();

if (maxsize < left. getactualsize ()) {

maxsize = left. getactualsize ();

allocate ();

}

for (int i = 0; i < actualsize; i++)

for (int j = 0; j < actualsize; j++) {

D sum = 0.0;

D leftvalue, rightvalue;

bool success;

for (int c = 0; c < actualsize; c++) {

left. getvalue (i,c,leftvalue,success);

right. getvalue (c,j,rightvalue,success);

sum += leftvalue * rightvalue;

}

setvalue (i,j,sum);

}

}

void combine (matrix left, matrix right) {

actualsize = left. getactualsize ();

if (maxsize < left. getactualsize ()) {

maxsize = left. getactualsize ();

allocate ();

}

for (int i = 0; i < actualsize; i++)

for (int j = 0; j < actualsize; j++) {

D sum = 0.0;

D leftvalue, rightvalue;

bool success;

left. getvalue (i,j,leftvalue,success);

right. getvalue (i,j,rightvalue,success);

sum = leftvalue + rightvalue;

setvalue (i,j,sum);

}

}

void setactualsize (int newactualsize) {

if (newactualsize > maxsize)

{

maxsize = newactualsize;

allocate ();

}

if (newactualsize >= 0) actualsize = newactualsize;

};

int getactualsize () { return actualsize; };

void getvalue (int row, int column, D returnvalue, bool success) {

if ( (row>=maxsize) || (column>=maxsize)

|| (row<0) || (column<0))

{ success = false;

return; }

returnvalue = data [row * maxsize + column] ;

success = true;

};

bool setvalue (int row, int column, D newvalue) {

if ( (row >= maxsize) || (column >= maxsize)

|| (row<0) || (column<0)) return false;

data [row * maxsize + column] = newvalue;

return true;

};

void dumpMatrixValues () {

bool xyz;

double rv;

for (int i=0; i < actualsize; i++)

{

std:: cout << "i=" << i << ": ";

for (int j=0; j< actualsize; j++)

{

M. getvalue (i,j,rv,xyz);

std:: cout << rv << " ";

}

std:: cout << std:: endl;

}

};

void comparetoidentity () {

int worstdiagonal = 0;

D maxunitydeviation = 0.0;

D currentunitydeviation;

for (int i = 0; i < actualsize; i++) {

currentunitydeviation = data [i*maxsize+i] - 1.;

if (currentunitydeviation < 0.0) currentunitydeviation *= - 1.;

if (currentunitydeviation > maxunitydeviation) {

maxunitydeviation = currentunitydeviation;

worstdiagonal = i;

}

}

int worstoffdiagonalrow = 0;

int worstoffdiagonalcolumn = 0;

D maxzerodeviation = 0.0;

D currentzerodeviation;

for (int i = 0; i < actualsize; i++) {

for (int j = 0; j < actualsize; j++) {

if (i == j) continue;

currentzerodeviation = data [i*maxsize+j] ;

if (currentzerodeviation < 0.0) currentzerodeviation *= - 1.0;

if (currentzerodeviation > maxzerodeviation) {

maxzerodeviation = currentzerodeviation;

worstoffdiagonalrow = i;

worstoffdiagonalcolumn = j;

}

}

}

printf ("Worst diagonal value deviation from unity:%0.5f at row/column%0.3f\n", maxunitydeviation, worstdiagonal);

printf ("Worst off-diagonal value deviation from zero:%0.5f at row%0.3f, column%0.3f\n", maxzerodeviation, worstoffdiagonalrow,worstoffdiagonalcolumn);

};

void copymatrix (matrix source) {

actualsize = source. getactualsize ();

if (maxsize < source. getactualsize ()) {

maxsize = source. getactualsize ();

allocate ();

}

for (int i = 0; i < actualsize; i++)

for (int j = 0; j < actualsize; j++) {

D value;

bool success;

source.

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

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

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 моделирования

заработать

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