Розпаралелювання обчислення суми десяти чисел

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

Рубрика Программирование, компьютеры и кибернетика
Вид лабораторная работа
Язык украинский
Дата добавления 04.04.2015
Размер файла 230,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Лабораторна робота №2

Тема: Розпаралелювання обчислення суми десяти чисел

Бондар Ігор

СУА-12-1

Задача

Задано масив перших десяти натуральних чисел. Скласти блок-схеми і програму алгоритму розпаралелювання сум від 4 до 10 чисел. Для перевірки додати у програму частину, яка б сумувала числа за допомогою стандартного алгоритму. Алгоритм і програму складати за умовою, що є два процесори.

Лістинг програми

// ptroc++.cpp: определяет точку входа для консольного приложения.

//

#include "stdafx.h"

#include <windows.h>

#include <process.h>

#include <iostream>

#include <conio.h>

using namespace std;

int proc1, proc2, k=0, mem[12];

unsigned tid;

HANDLE Thread[10];

int i, p=2, A, B;

int a[10]= {0,0,0,0,0,0,0,0,0,0};

unsigned __stdcall Sum( void * arg) // Функція потоку

{

proc1=a[k]; proc2=a[k+1];

mem[k]=proc1+proc2;

cout<<"Комiрка памятi[ "<<i<<" ] "<<mem[k]<<endl;

k+=2;

return 0;

};

unsigned __stdcall Sum2( void * arg) // Функція потоку

{

proc1 = mem[k];

proc2 = mem[k + p];

mem[k] = proc1 + proc2;

cout << "Комiрка памятi[ " << i << " ] " << mem[k] << endl;

k += 4;

return 0;

};

int main()

{

setlocale(LC_ALL, "Russian");

cout<<"Введiть кiлькiсть чисел (до десяти)\n";

cin>>A;

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

{

cout << "Введiть число " << i <<": ";

cin >> a[i];

}

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

{

Thread[i] = (HANDLE)_beginthreadex(NULL, 0, Sum, 0, 0, &tid);

Sleep(10);

}

// Чекаємо, доки потоки не завершать свою работу

WaitForMultipleObjects(5, Thread, TRUE, INFINITE );

cout << "Потоки завершили виконання" << endl;

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

{

CloseHandle(Thread[i]);

}

k = 0;

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

{

Thread[i] = (HANDLE)_beginthreadex(NULL, 0, Sum2, 0, 0, &tid);

Sleep(10);

}

// Чекаємо, доки потоки не завершать свою работу

WaitForMultipleObjects(3, Thread, TRUE, INFINITE );

cout << "Потоки завершили виконання" << endl;

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

{CloseHandle(Thread[i]);}

p = 4;

k = 0;

i = 0;

Thread[1] = (HANDLE)_beginthreadex(NULL, 0, Sum2, 0, 0, &tid);

Sleep(10);

cout << "Потоки завершили виконання" << endl;

CloseHandle(Thread[1]);

p = 8;

k = 0;

i = 0;

Thread[2] = (HANDLE)_beginthreadex(NULL, 0, Sum2, 0, 0, &tid);

Sleep(10);

cout << "Потоки завершили виконання" << endl;

CloseHandle(Thread[1]);

_getch();

return 0;

}

Рис. 1 Схема розпаралелювання процесу

розпаралелювання число натуральний масив

На рис. 3 показано процес розпаралелювання. В першому та другому ярусі всі чотири процесори виконують функцію множення, в третьому - додавання. Як видно на малюнку при виконанні задачі не виникає конфліктів в пам'яті.

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

Размещено на Allbest.ru


Подобные документы

  • Топологічний аналіз початкового графу. Розробка підходів до розпаралелювання і послідовного рішення задачі – розрахунку потоків повітря у кожній гілці мережевого динамічного об’єкту – вентиляційної мережі. Аналіз ефективності паралельних рішень.

    курсовая работа [743,4 K], добавлен 27.08.2012

  • Блок-схема алгоритму та функціональні ряди. Код програми обчислення визначених інтегралів. Операції з масивами та значення накопичення функціональної суми. Діапазон зміни аргументу і обчислення функціональної суми у режимі відображення формул та графіки.

    отчет по практике [2,7 M], добавлен 30.11.2011

  • Лінійна програма на C++. Арифметичні вирази. Обчислення значень функції. Значення логічних виразів і логічних операцій. Види циклів, обчислення нескінченної суми з заданою точністю. Створення файлу цілих чисел з N компонент, виведення їх на екран.

    контрольная работа [12,7 K], добавлен 09.09.2011

  • Теоретичні відомості про язик С++. Розробка програми, що виконує основні арифметичні дії над простими та складними числами на язику С++. Опис алгоритму програми та її код. Інструкція по користуванню. Обгрунтовування вибору та складу технічних засобів.

    курсовая работа [852,8 K], добавлен 30.11.2011

  • Обчислення наближеного значення суми спадного ряду. Складання блок-схеми та програми, яка б виводила на друк сгенерований, сформований та впорядкований масиви. Використання операторів умовного переходу If - Then - Else. Розроблення програми на VBA.

    практическая работа [51,7 K], добавлен 09.11.2009

  • Складання блок-схеми і програми обчислення значення функції з заданою точністю та програми табулювання функції з заданим кроком. Обчислення двох значень поліному за допомогою схеми Горнера. Програма введення вхідних даних з клавіатури і з файлу ZAD4.DAT.

    контрольная работа [168,6 K], добавлен 29.09.2010

  • Сімейство процесорів ADSP-2100 та їх характеристика. Аналіз ресурсів та структурна схема обчислювального модуля ALU. Призначення регістра ASTAT. Блок-схема алгоритму та програма реалізації ділення цілих чисел на мові Асемблера поточного процесора ADSP.

    курсовая работа [463,2 K], добавлен 04.01.2014

  • Формирование устойчивой последовательности псевдослучайных чисел с использованием метода "середины квадрата". Разработка программы для определения среднего значения чисел, среднего значения квадратов чисел и дисперсии для последовательности из 20 чисел.

    лабораторная работа [1,4 M], добавлен 21.01.2015

  • Знайомство з комп’ютерною програмою, розробленою для використання у грі в шахи, розгляд особливостей застосування на практиці. Загальна характеристика результатів роботи програми. Аналіз основних способів кодування шахової дошки парою натуральних чисел.

    контрольная работа [479,8 K], добавлен 18.09.2014

  • Подання чисел у нормальній формі. Порядок нормалізації чисел з рухомою комою. Правила додавання двійкових чисел з рухомою комою. Алгоритми і програми додавання чисел в арифметиці з рухомою комою в інструкціях навчального комп'ютера-симулятора DeComp.

    лабораторная работа [31,7 K], добавлен 13.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.