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

Параллельные вычисления

Автор:   •  Ноябрь 21, 2022  •  Лабораторная работа  •  7,045 Слов (29 Страниц)  •  358 Просмотры

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

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

Федеральное государственное бюджетное образовательное учреждение
высшего образования

«Сибирский государственный университет науки и технологий
имени академика М.Ф. Решетнева»

Институт информатики и телекоммуникаций

Кафедра информатики и вычислительной техники

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ

Параллельные вычисления

Знакомство с OpenMP

Руководитель                                          А.Г. Зотин

                подпись, дата        инициалы, фамилия

Обучающийся БПИ 20-01, 201219002                                В.Д. Антонов

        номер группы, зачетной книжки        подпись, дата        инициалы, фамилия

Красноярск 2022 г.

ЦЕЛЬ РАБОТЫ

Получение практических навыков разработки простых параллельных программ с использованием OpenMP. Ознакомление с основными функциями и директивами OpenMP.

постановка задачи

  1. Реализовать консольное приложение с поддержкой OpenMP, содержащее функции (с разным стилем вывода на экран – через cout и printf), в которых создается Х потоков, каждый из которых выводит сообщение приветствия от потока, например «Hello World! От потока #». До запуска функций программа должна вывести сообщение, показывающее максимально доступное в системе количество потоков. Пользователь может задать значение числа Х, которое может превышать максимально доступное в системе количество потоков.
  2. Разработать консольное приложение, реализующее сложение векторов и подсчет суммы всех элементов итогового вектора. Для каждой реализации функций выполните расчет времени. Для всех действий необходимо реализовать функции в нескольких вариантах.
  3. Провести экспериментальное исследование по обработке данных с разными реализациями алгоритмов на сборке Release. При исследовании использовать одномерные массивы типа double размерностью от 100000 до 250000. В ходе исследования необходимо выяснить время выполнения отдельных функций и полное время решения задачи (три шага: заполнение массивов, сложение массивов и подсчет суммы всех элементов итогового массива). Рассчитать показатели эффективности для решения задачи.

ХОД работы

Реализована программа согласно заданию 1, код программы представлен ниже.

#include <omp.h>

#include <iostream>

using namespace std;

void cout_omp(){

        cout << "Parallel cout:" << endl;

#pragma omp parallel

        {

                int i = omp_get_thread_num();

                cout << "Hello world from thread " << i << endl;

        }

        cout << endl;

}

void printf_omp(){

        cout << "Parallel printf:" << endl;

#pragma omp parallel

        {

                int i = omp_get_thread_num();

                printf("Hello world from thread %d\n", i);

        }

        cout << endl;

}

int main()

{        

        omp_set_dynamic(0);

        int n = omp_get_max_threads();

        cout << "Threads available: " << n << endl;

        cout << "Set threads as: ";

        cin >> n;

        cout << endl;

...

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