Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
піро2.doc
Скачиваний:
25
Добавлен:
05.03.2016
Размер:
989.7 Кб
Скачать

69.Навести і описати паралельні методи опрацювання графів.

Математичні моделі у вигляді графів широко використовуються при моделюванні різноманітних явищ, процесів і систем. Як результат, багато теоретичних і реальних прикладних задач можуть бути вирішені за допомогою тих чи інших процедур аналізу графових моделей. Серед безлічі цих процедур може бути виділений деякий певний набір типових алгоритмів обробки графів.

  • - граф ( )

для якого набір вершин ,, задається множиною, а список дуг графа,

визначається безліччю . У загальному випадку дуг графа можуть приписуватися деякі числові характеристики,(зважений граф).

Для опису графів відомі різні способи завдання. При малій кількості дуг у графі (тобто ) доцільно використовувати для визначення графів списки, які перераховують наявні у графах дуги. Представлення досить щільних графів, для яких майже всі вершини з'єднані між собою дугами (тобто), може бути ефективно забезпечене за допомогою матриці інцидентності

Використання матриці інцидентності дозволяє використовувати також при реалізації обчислювальних процедур для графів матричні алгоритми обробки даних.

Далі в посібнику обговорюються паралельні способи вирішення двох типових задач на графах - знаходження мінімально охоплюють дерев і пошук найкоротших шляхів. Для представлення графів використовується спосіб завдання за допомогою матриць інцидентності.

70.Навести і описати паралельні методи розв'язання диференціальних рівнянь у частинних похідних.

Завдання Пуассона, тобто рішення диференціальних рівнянь в приватних похідних, виражається наступними рівняннями:

- усередині області (8.1)

- на межі (8.2)

Вважатимемо, що область рішення є квадратною. Щоб знайти наближене рішення, визначимо квадратну сітку, включає точки (хі. уі), що задаються як

Таким чином, уздовж кожного краю сітки є п+2 точки. Слід знайти апроксимацію и(х,у) в точках (хі,, уі) вибраної сітки. Позначимо через иij значення і u (xi, yj), через h відстань мiж точками, рівне 1/(n+1). Тоді формула 8.1. для кожної з точок виглядатиме таким чином:

Обчислюємо значення uij в кожній точці сітки, які заміщують попередні значення, використовуючи вираз

Цей процес називається ітераціями Якобі і повторюється до отримання результату. Фрагмент програми для цього випадку такий:

71.Навести і описати паралельні методи багатоекстремальної оптимізації

72. У вихідному коді програми на мові с вставити пропущені виклики процедур підключення мрі, визначення кількості процесів і рангу процесів.

#include <stdio.h>

#include "mpi.h"

main(int argc, char *argv[])

{

int numprocs, myid

MPI_Status status;

MPI_Init(&argc, &argv);

MPI_Comm_size(MPI_COMM_WORLD, &numprocs);

MPI_Comm_rank(MPI_COMM_WORLD, &myid);

fprintf(stdout,”Prosess %d of %d\n”,myid,numprocs);

MPI_Finalize();

return 0;

}

73. Програма, яка виводить «Hello Word from process I for n».

#include "mpi.h"

#include <stdio.h>

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

{

int myid, numproc;

MPI_Status status;

MPI_Init ( &agrc &argv );

MPI_Comm_size (MPI_COMM_WORLD &numproc);

MPI_Comm_rank (MPI_COMM_WORLD &myid);

fprintf(stdout,”Hello World from process%d for %d\n”,myid,numproces);

MPI_Finalesize();

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]