Отказоустойчивые вычислительные системы. Лабораторная работа №1
Состав работы
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Работа представляет собой rar архив с файлами (распаковать онлайн), которые открываются в программах:
- Microsoft Word
Описание
ЛАБОРОТОРНАЯ №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 from %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;
}
Цель лабораторной работы – знакомство с библиотекой 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 from %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.2)
Вид работы: Лабораторная работа 1
Оценка:Зачет
Дата оценки: 27.04.2019
Рецензия:
Задорожный Анатолий Филиппович
Похожие материалы
Лабораторная работа №1 по дисциплине: Отказоустойчивые вычислительные системы. Для всех вариантов
IT-STUDHELP
: 16 июня 2019
ЛАБОРОТОРНАЯ №1. ИЗУЧЕНИЕ РАБОТЫ С НИТЯМИ в OpenMP
Задание
Знакомство с библиотекой OpenMP и получение первичных навыков параллельного программирования.
290 руб.
Отказоустойчивые вычислительные системы
nura
: 15 июня 2019
96. Дан одномерный массив A из n элементов, расположенный в общей памяти. Написать программу определения маскимального и минимального элементов массива A. (Примечание: использование опции reduction директивы parallel).
106. Написать и реализовать параллельную программу перемножения квадратных матриц на 4-х ядерном процессоре. Размерность массивов N = № пароля *100. Использовать OpenMP.
116. Написать программу параллельного решения задачи Дирихле методом Гаусса-Зейделя для 4-х процесcорной ВС.
200 руб.
Отказоустойчивые вычислительные системы. Билет №17
Prorabs
: 29 декабря 2019
1. В каких величинах проводится оценки производительности многопроцессорных вычислительных систем?
4. К какому классу в соответствии с систематикой Флинна относятся векторные и векторно-конвейерные ВС?
8. В качестве системообразующего вычислительного модуля в кластерных системах используется....
9. Два или более ПК, объединяемых по топологии «шина» или с помощью коммутатора и являющиеся единым информационно-вычислительным ресурсом, называют ....
200 руб.
Отказоустойчивые вычислительные системы. Лабораторная работа №2
nura
: 12 мая 2019
ЛАБОРОТОРНАЯ №2. СОЗДАНИЕ ПАРАЛЛЕЛЬНЫХ ОБЛАСТЕЙ В OpenMP.
Цель лабораторной работы – рассмотреть Условия выполнения параллельных областей. Распределение выполняемой программой работы между главно нитью и остальными.
2.1.Обзор директив разделения задач
При запуске программы создается процесс и запускается одна нить приложения OpenMP. Первая нить называется главная, она существует на протяжении всего цикла работы программы, в литературе не редко главная нить называется нить-мастер (master threa
550 руб.
Отказоустойчивые вычислительные системы. Лабораторная работа №3
nura
: 12 мая 2019
ЛАБОРАТОРНАЯ №3. ПАРАЛЛЕЛЬНЫЕ ЦИКЛЫ В OpenMP
3.1.Опции директивы parallel
Директива parallel – инициализирует параллельную область и создает группу из OMP_NUM_THREADS нитей. Определение и задание переменной OMP_NUM_THREADS будет дано в следующем параграфе.
Синтаксис оператора. Язык Си
#pragma omp parallel [опция[[,] опция]...]
Возможные опции:
if(условие) – выполнение параллельной области по условию. Вхождение в параллельную область осуществляется только при выполнении некоторого условия.
550 руб.
Зачет по дисциплине: Отказоустойчивые вычислительные системы. Билет № 2
IT-STUDHELP
: 18 апреля 2021
Билет № 2
2. Критериями оценки эффективности многопроцессорных вычислительных систем являются:
Масштабируемость, Отказоустойчивость, Производительность.
Многопроцессорность, Надежность, Вычислительная мощность.
Надежность, Производительность, Мультипроцессность.
4. К какому классу в соответствии с систематикой Флинна относятся векторные и векторно-конвейерные ВС?
SIMD.
SISD.
MISD.
MIMD.
6. Какие преимущества предоставляет пользователям вычислительных систем с суперкомпьютерным уровнем кластер
400 руб.
Зачет по дисциплине: Отказоустойчивые вычислительные системы. Билет №18
IT-STUDHELP
: 7 февраля 2020
Билет No18
2. Критериями оценки эффективности многопроцессорных вычислительных систем являются:
Масштабируемость, Отказоустойчивость, Производительность.
Многопроцессорность, Надежность, Вычислительная мощность.
Надежность, Производительность, Мультипроцессность.
5. Масштабируемость вычислительных систем – это
возможность пропорционального увеличения общей производительности системы путем добавления соответствующих аппаратных ресурсов;
масштабное увеличение мощности за определенный промежут
400 руб.
Отказоустойчивые вычислительные системы. Билет 68. Зачетная работа
Михаил18
: 26 сентября 2019
Билет №68
5. Масштабируемость вычислительных систем – это
возможность пропорционального увеличения общей производительности системы путем добавления соответствующих аппаратных ресурсов;
масштабное увеличение мощности за определенный промежуток времени (закон Мура);
разбиение сложной задачи на множество подзадач.
6. Какие преимущества предоставляет пользователям вычислительных систем с суперкомпьютерным уровнем кластерная архитектура?
Наиболее выгодное соотношение "цена/производительность".
150 руб.
Другие работы
Контрольные работы по гидростатике и гидродинамике ИжГТУ К.р. 1 Задача 1 Вариант 21
Z24
: 4 декабря 2025
Определить давление р0 воздуха в напорном баке по показанию ртутного манометра. Какой высоты Н должен быть пьезометр для измерения того же давления р0? Высоты h, h1, h2. Плотность воды ρ=1000 кг/м³, ртути ρ=13600 кг/м³.
Результат выразить в Па, кгс/см², мм рт. ст.
160 руб.
Курсовая работа Теория электрических цепей (часть 2) Вариант 6 (2019г май)
mixail1903
: 16 августа 2019
Дано:
На входе полосового фильтра действуют периодические радиоимпульсы (рис. 1.1) с параметрами:
период следования импульсов Tи=320мкс= 320•10-6с;
длительность импульсов tи = 80мкс=80•10-6с;
период несущей частоты Tн = 20мкс=20•10-6с;
амплитуда колебаний несущей частоты Um.н=6 В.
Фильтр должен обеспечить максимально допустимое ослабление в полосе пропускания Аmax = ΔA = 3 дБ.
Полное ослабление на границах полос непропускания АПОЛ= 21дБ. Сопротивления генератора радиоимпульсов RГ и сопрот
450 руб.
РД 34.26.508 (ТИ 34-70-019-83) Типовая инструкция по эксплуатации редукционно-охладительных установок (БРОУ, РОУ, ПСБУ И ПСБУ СН)
Qiwir
: 27 июня 2013
Настоящая Типовая инструкция разработана применительно к тепловым схемам блочных установок, а также электростанций (теплоэлектроцентралей) на давление 9 (90) и 13 (130) МПа (кгс/см2). На основе данной Типовой инструкции должны быть разработаны местные инструкции по эксплуатации БРОУ, РОУ и ПСБУ энергоблоков, учитывающие особенности тепловой схемы электростанции, а также условия снабжения потребителя паром из отборов турбин и от редукционно-охладительных установок.
4 руб.
Экзаменационная работа по дисциплине: «Основы построения телекоммуникационных систем и сетей». Билет №13
aleks797
: 2 февраля 2013
1. Циклические коды. Определение ошибочного разряда в кодовой комбинации ЦК. Структурная схема декодера ЦК.
2. Типы компьютерных сетей. Понятие сервера и клиента. Преимущества сетей на основе сервера. Комбинированные сети.
3. За время испытаний 1 час, при скорости модуляции 50 бод было ошибочно принято 8 единичных элементов. Все элементы сгруппированы в кодовые комбинации по 10 элементов. Определить коэффициенты ошибок по единичным элементам и кодовым комбинациям.
100 руб.