Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Технології розподілених систем та паралельних обчислень

Автор:   •  Ноябрь 25, 2018  •  Лабораторная работа  •  2,570 Слов (11 Страниц)  •  557 Просмотры

Страница 1 из 11

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

ІНСТИТУТ ПІДПРИЄМНИЦТВА І ПЕРСПЕКТИВНИХ ТЕХНОЛОГІЙ

кафедра інформаційних систем та технологій

ЗВІТ

до лабораторної роботи № 4

з курсу

«Технології розподілених систем та паралельних обчислень »

Виконав:

студент групи КН-491,

Мосійчук Олег

Прийняв:

Кузьо М.М.

ЛЬВІВ – 2018

Мета: Вивчити можливості паралельного представлення алгоритмів. Набути навиків такого представлення.

Завдання:

Запропонувати та реалізувати локально-рекурсивний алгоритм обчислення виразу: [pic 1], де А та В матриці з елементами [pic 2] та [pic 3], відповідно [pic 4]. Матриця А задається однозначно і залежить лише від розмірності даних. Для матриці В: заштрихована область — довільні цілі числа, відмінні від нуля, а незаштрихована область - нулі.

№                A                B                        

1

n 0 .... 0

0 n-1...0

     ....

0  ....   1    

[pic 5]

Послідовність виконання роботи:

  1. Програма з одноразовим присвоюванням.

Програма об’єднана з програмою реалізації оптимізованого локально-рекурсивного алгоритма, і подана в пункті 6.

  1. Рекурсивні рівняння: Cij(k+1)=Cij(k)+Aij(k)*Bij(k), де Aij(k)=A[i][j], Bij(k)=B[i][j], k - індекс рекурсії.
  2. Граф залежностей(n=4):

[pic 6]

  1. Оптимізований граф залежностей(n=4):

[pic 7]

  1. Аналітичні оцінки кількості арифметичних операцій та їх порівняння.

В локалізованому графі залежностей кількість операцій рівна N2(2N-1) де n кількість стовпців чи рядків матриці.(Для обчислення кожного з N2 елементів необхідно 2N-1 операцій).

  1. Текст програми, що реалізовує оптимізований локально-рекурсивний алгоритм:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace lab1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        int N=0;

        int[,] arrayA;

        int[,] arrayB;

        private void maskedTextBox1_KeyPress(object sender, KeyPressEventArgs e)

        {

            if (e.KeyChar == Convert.ToChar(13))

            {

                N = Int32.Parse(maskedTextBox1.Text);

                if (N > 16)

                {

  MessageBox.Show("Матриця завелика для коректного відображення");

                    return;

                }

                arrayA = new int[N, N];

                arrayB = new int[N, N];

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

                {

                    arrayA[i, i] = N - i;

                }

                Random rnd = new Random(DateTime.Now.Millisecond);

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

                {

                    for (int j = i; j < N; j++)

                    {

                        arrayB[i, j] = rnd.Next(9)+1;

                    }

                }

                Show(arrayA, N, textBox1);

                Show(arrayB, N, textBox2);

            }

        }

        private void Show(int[,] arr,int N, TextBox txt)

        {

            txt.Clear();

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

            {

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

                {

                    txt.Text += arr[i, j].ToString() + "   ";

                }

                txt.Text += Environment.NewLine;

...

Скачать:   txt (8.4 Kb)   pdf (437.8 Kb)   docx (171.9 Kb)  
Продолжить читать еще 10 страниц(ы) »
Доступно только на Essays.club