Страницу Назад
Поискать другие аналоги этой работы
300 Отказоустойчивые вычислительные системы. Лабораторная работа №1ID: 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
Вход в аккаунт: