Страницу Назад
Поискать другие аналоги этой работы

300

Отказоустойчивые вычислительные системы. Лабораторная работа №1

ID: 200422
Дата закачки: 12 Мая 2019
Продавец: nura (Напишите, если есть вопросы)
    Посмотреть другие работы этого продавца

Тип работы: Работа Лабораторная

Описание:
ЛАБОРОТОРНАЯ №1. ИЗУЧЕНИЕ РАБОТЫ С НИТЯМИ в OpenMP.
Цель лабораторной работы – знакомство с библиотекой OpenMP и получение первичных навыков параллельного программирования.
1. Создание приложения с применением OpenMP
1. Запустите Microsoft Visual Studio 2010.
2. Выбирите пункт в меню File -> New -> Project, или нажмите Ctrl+Shift+N
3. В окне New Project в раскрывающемся списке Visual C++ выбирите Win32. В подокне Templates установите Win32 Console Application. Введите имя (Name), например, example1, и место расположения (Location) проекта, например, С:\\My, и нажмите кнопку OK. См. Рис.1.

Рис.1
4. В открывшемся окне Win32 Application Wizard - example1 нажмите кнопку Next, и затем в Additional options поставьте галочку напротив Empty project. Нажмите кнопку Finish. См. Рис.2.

Рис.2
5. Теперь создадим файл с кодом нашего приложения. Выберите пункт в меню Project -> Add New Item..., или нажмите Ctrl+Shift+A. В категории Visual C++выбирите подкатегорию Code. В подокне Templates установите С++ File (.cpp). Введите имя файла с расширением .с, например, source.c, и нажмите кнопкуAdd. См. Рис.3.

Рис.3

6. В новом окне введите код на Си. Затем сохраните файл, выбрав пункт меню File -> Save source.c, или нажав Ctrl+S.
7. Для построения приложения выберите пункт меню Build -> Build Solution, или нажмите F7.
8. Для запуска приложения выберите пункт меню Debug -> Start Without Debugging, или нажмите Ctrl+F5.
2. Выполнение примеров.
В OpenMP реализован набор директив, которые позволяют управлять процессом создания нитей и их использованием в процессе параллельных вычислений
Базовая директива: - директива parallel – инициализирует, создает параллельную область, которая исполняется всеми нитями.
Директива parallel
Параллельная область инициализируется вызовом директивы parallel. В результате выполнения директивы порождается группа нитей. Нити в группе получают уникальный номер от 0 до OMP_NUM_THREADS-1, константа OMP_NUM_THREADS определяет количество нитей в группе. Во время выполнения параллельной области размер группы не может быть изменен. После завершения параллельной области выполняется неявная синхронизация и уничтожение порожденных нитей.
При выполнении параллельной области все нити исполняют один о тот же код, поэтому для распределения вычислений между нитями используются директивы (section, do, workshare) или логические условие на номер нити в группе.
Директива parallel – инициализирует параллельную область и создает группу из OMP_NUM_THREADS нитей.

Синтаксис оператора. Язык Си++
#pragma omp parallel [опция[[,] опция]...]
{параллельная область}



Пример_1 Выводит на экран текст.

#include <omp.h>
#include <iostream>
#include <stdio.h>
#include <time.h>
int main()
{
 using namespace std;
 {
  cout << "Hello, World!" << endl;
 }
}

Пример_2. Выводит Hello, World!" 4 раза, в зависимости от количества нитей.
Каждая нить параллельно выводит на экран текст.

#include <omp.h>
#include <iostream>
#include <stdio.h>
#include <time.h>
int main()
{
 using namespace std;
 omp_set_num_threads(4);
#pragma omp parallel num_threads(4)

 {
  cout << "Hello, World!" << endl;
 }
}

// Пример 3. Каждая нить называет свой номер из общего количества.
//Нити представляются в том порядке, в каком успели


#include <omp.h>
#include <iostream>
#include <stdio.h>
#include <time.h>
int main()
{
#pragma omp parallel num_threads(3)
{
printf ("Hello! I am %d thread to %d threads! \\n", omp_get_thread_num(),omp_get_num_threads());

}
}

Пример 4. На экран выводят только четные нити

#include<omp.h>
#include<iostream>
#include<stdio.h>
#include<time.h>
#include<conio.h>

int main()
{
usingnamespacestd;
#pragmaomp parallel num_threads(6)
{
intnum=omp_get_thread_num();
if (num%2==0) printf ("Hello! Iameventhread %d\\n", num);// те нити, номера которых четные
}
return 0;
}


Комментарии: Уважаемый студент, дистанционного обучения,
Оценена Ваша работа по предмету: Отказоустойчивые вычислительные системы (ДВ 3.2)
Вид работы: Лабораторная работа 1
Оценка:Зачет
Дата оценки: 27.04.2019
Рецензия:
Задорожный Анатолий Филиппович

Размер файла: 3,7 Мбайт
Фаил: Упакованные файлы (.rar)

   Скачать

   Добавить в корзину


    Скачано: 7         Коментариев: 0


Есть вопросы? Посмотри часто задаваемые вопросы и ответы на них.
Опять не то? Мы можем помочь сделать!

Некоторые похожие работы:

Лабораторные работы №1,2,3 по дисциплине: Отказоустойчивые вычислительные системы. Вариант №1
Лабораторная работа №1 по дисциплине: Отказоустойчивые вычислительные системы. Для всех вариантов
Контрольная и лабораторные работы №1,2,3 по дисциплине: Отказоустойчивые вычислительные системы. Вариант №4
Лабораторная работа №3 по дисциплине: Отказоустойчивые вычислительные системы. Вариант №4
Контрольная и Лабораторная работа 2-3 по дисциплине: Отказоустойчивые вычислительные системы. Вариант 7
Лабораторная работа №2 по дисциплине: Отказоустойчивые вычислительные системы. Вариант №4
Лабораторная работа 2-3 по дисциплине: Отказоустойчивые вычислительные системы. Вариант 7
Ещё искать по базе с такими же ключевыми словами.

Не можешь найти то что нужно? Мы можем помочь сделать! 

От 350 руб. за реферат, низкие цены. Просто заполни форму и всё.

Спеши, предложение ограничено !



Что бы написать комментарий, вам надо войти в аккаунт, либо зарегистрироваться.

Страницу Назад

  Cодержание / Вычислительные машины, системы и сети / Отказоустойчивые вычислительные системы. Лабораторная работа №1
Вход в аккаунт:
Войти

Забыли ваш пароль?

Вы еще не зарегистрированы?

Создать новый Аккаунт


Способы оплаты:
UnionPay СБР Ю-Money qiwi Payeer Крипто-валюты Крипто-валюты


И еще более 50 способов оплаты...
Гарантии возврата денег

Как скачать и покупать?

Как скачивать и покупать в картинках


Сайт помощи студентам, без посредников!