🗊Презентация ПП тема 1

Категория: Образование
Нажмите для полного просмотра!
ПП тема 1, слайд №1ПП тема 1, слайд №2ПП тема 1, слайд №3ПП тема 1, слайд №4ПП тема 1, слайд №5ПП тема 1, слайд №6ПП тема 1, слайд №7ПП тема 1, слайд №8ПП тема 1, слайд №9ПП тема 1, слайд №10ПП тема 1, слайд №11ПП тема 1, слайд №12ПП тема 1, слайд №13ПП тема 1, слайд №14ПП тема 1, слайд №15ПП тема 1, слайд №16ПП тема 1, слайд №17ПП тема 1, слайд №18ПП тема 1, слайд №19ПП тема 1, слайд №20ПП тема 1, слайд №21ПП тема 1, слайд №22ПП тема 1, слайд №23ПП тема 1, слайд №24ПП тема 1, слайд №25ПП тема 1, слайд №26ПП тема 1, слайд №27ПП тема 1, слайд №28ПП тема 1, слайд №29ПП тема 1, слайд №30ПП тема 1, слайд №31ПП тема 1, слайд №32

Содержание

Вы можете ознакомиться и скачать презентацию на тему ПП тема 1. Доклад-сообщение содержит 32 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Параллельное программирование
Описание слайда:
Параллельное программирование

Слайд 2





Литература:
Методическое пособие А. С. Антонова «Введение в параллельные вычисления»
Лекции по параллельным вычислениям: учеб. пособие / В.П. Гергель, В.А.Фурсов. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2009.
Антонов А.С. Параллельное программирование с использованием технологии OpenMP: Учебное пособие.-М.: Изд-во МГУ, 2009. - 77 с.
А.В. Боресков, А.А. Харламов Основы работы с технологией CUDA 2010г
Описание слайда:
Литература: Методическое пособие А. С. Антонова «Введение в параллельные вычисления» Лекции по параллельным вычислениям: учеб. пособие / В.П. Гергель, В.А.Фурсов. – Самара: Изд-во Самар. гос. аэрокосм. ун-та, 2009. Антонов А.С. Параллельное программирование с использованием технологии OpenMP: Учебное пособие.-М.: Изд-во МГУ, 2009. - 77 с. А.В. Боресков, А.А. Харламов Основы работы с технологией CUDA 2010г

Слайд 3






Распределенная система — это набор независимых компьютеров, представляющиеся их пользователям единой объединенной системой.
Эндрю Таненбаум, Мартин ван Стеен Распределенные системы. Принципы и парадигмы. — Санкт-Петербург: Питер, 2003	
Параллельные вычисления — вычисления, которые можно реализовать на многопроцессорных системах с использованием возможности одновременного выполнения многих действий, порождаемых процессом решения одной или многих задач.
Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989
Описание слайда:
Распределенная система — это набор независимых компьютеров, представляющиеся их пользователям единой объединенной системой. Эндрю Таненбаум, Мартин ван Стеен Распределенные системы. Принципы и парадигмы. — Санкт-Петербург: Питер, 2003 Параллельные вычисления — вычисления, которые можно реализовать на многопроцессорных системах с использованием возможности одновременного выполнения многих действий, порождаемых процессом решения одной или многих задач. Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989

Слайд 4





Закон Амдала
 
Описание слайда:
Закон Амдала  

Слайд 5





Параллельная обработка данных
Параллельная обработка данных, воплощая идею одновременного выполнения нескольких действий, имеет две разновидности: 
конвейерность,
параллельность.
Описание слайда:
Параллельная обработка данных Параллельная обработка данных, воплощая идею одновременного выполнения нескольких действий, имеет две разновидности: конвейерность, параллельность.

Слайд 6





Классификация М. Флинна
Описание слайда:
Классификация М. Флинна

Слайд 7


ПП тема 1, слайд №7
Описание слайда:

Слайд 8


ПП тема 1, слайд №8
Описание слайда:

Слайд 9


ПП тема 1, слайд №9
Описание слайда:

Слайд 10


ПП тема 1, слайд №10
Описание слайда:

Слайд 11





Проблемы координации
Для координации задач, выполняемых параллельно, требуется обеспечить связь между ними и синхронизацию их работы. Возможны четыре типа проблем:
«Гонка» данных,
Бесконечная отсрочка,
Взаимоблокировка,
Трудности организации связи.
Описание слайда:
Проблемы координации Для координации задач, выполняемых параллельно, требуется обеспечить связь между ними и синхронизацию их работы. Возможны четыре типа проблем: «Гонка» данных, Бесконечная отсрочка, Взаимоблокировка, Трудности организации связи.

Слайд 12





«Гонка» данных
Если несколько задач одновременно попытаются изменить некоторую общую область данных, а конечное значение данных при этом будет зависеть от того, какая задача обратится к этой области первой, возникнет ситуация, которую называют состоянием «гонок» (race condition). В случае, когда несколько задач попытаются обновить один и тот же ресурс данных, такое состояние «гонок» называют «гонкой»данных (data race). Какая задача в нашей программе поддержки электронного банка первой получит доступ к остатку на счете, определяется результатом работы планировщика задач операционной системы, состоянием процессоров, временем ожидания и случайными причинами.
Описание слайда:
«Гонка» данных Если несколько задач одновременно попытаются изменить некоторую общую область данных, а конечное значение данных при этом будет зависеть от того, какая задача обратится к этой области первой, возникнет ситуация, которую называют состоянием «гонок» (race condition). В случае, когда несколько задач попытаются обновить один и тот же ресурс данных, такое состояние «гонок» называют «гонкой»данных (data race). Какая задача в нашей программе поддержки электронного банка первой получит доступ к остатку на счете, определяется результатом работы планировщика задач операционной системы, состоянием процессоров, временем ожидания и случайными причинами.

Слайд 13





Бесконечная отсрочка
Если одна или несколько задач ожидают сеанса связи до своего выполнения, то в случае, если ожидаемый сеанс связи не состоится, состоится слишком поздно или не полностью, эти задачи могут так никогда и не выполниться. И точно так же, если ожидаемое событие или условие, которое должно произойти (или наступить), но в действительности не происходит (или не наступает), то приостановленные нами задачи будут вечно находиться в состоянии ожидания. Если приостановить одну или несколько задач до наступления события (или условия), которое никогда не произойдет, возникнет ситуация, называемая бесконечной отсрочкой (indefinite postponement).
Описание слайда:
Бесконечная отсрочка Если одна или несколько задач ожидают сеанса связи до своего выполнения, то в случае, если ожидаемый сеанс связи не состоится, состоится слишком поздно или не полностью, эти задачи могут так никогда и не выполниться. И точно так же, если ожидаемое событие или условие, которое должно произойти (или наступить), но в действительности не происходит (или не наступает), то приостановленные нами задачи будут вечно находиться в состоянии ожидания. Если приостановить одну или несколько задач до наступления события (или условия), которое никогда не произойдет, возникнет ситуация, называемая бесконечной отсрочкой (indefinite postponement).

Слайд 14





Взаимоблокировка
Взаимная блокировка (deadlock) — ситуация, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.
Описание слайда:
Взаимоблокировка Взаимная блокировка (deadlock) — ситуация, при которой несколько процессов находятся в состоянии бесконечного ожидания ресурсов, занятых самими этими процессами.

Слайд 15





Трудности организации связи
Многие распространенные параллельные среды (например, кластеры) зачастую состоят из гетерогенных компьютерных сетей. Гетерогенные компьютерные сети— это системы, которые состоят из компьютеров различных типов, работающих в общем случае под управлением различных операционных систем и использующих различные сетевые протоколы. Их процессоры могут иметь различную архитектуру, обрабатывать слова различной длины и использовать различные машинные языки. Системы могут различаться параметрами передачи данных. Это делает обработку ошибок и исключительных ситуаций (исключений) особенно сложной.
Описание слайда:
Трудности организации связи Многие распространенные параллельные среды (например, кластеры) зачастую состоят из гетерогенных компьютерных сетей. Гетерогенные компьютерные сети— это системы, которые состоят из компьютеров различных типов, работающих в общем случае под управлением различных операционных систем и использующих различные сетевые протоколы. Их процессоры могут иметь различную архитектуру, обрабатывать слова различной длины и использовать различные машинные языки. Системы могут различаться параметрами передачи данных. Это делает обработку ошибок и исключительных ситуаций (исключений) особенно сложной.

Слайд 16





 Модели параллельных вычислений
POSIX Threads - стандарт для нитей. Стандарт определяет API для создания и манипуляции нитями. 
POSIX (Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) – набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой 
PVM (Parallel Virtual Machine) – свободная реализация платформы для параллельных вычислений в гетерогенных сетях. 
MPI (Message Passing Interface] – языко-независимый протокол, используемый для программирования параллельных процессов. 
OpenMP  – открытый API, поддерживающий программирование мультипроцессорных ЭВМ с разделенной моделью памяти. 
CUDA  (Compute Unified Device Architecture) — программно-аппаратная архитектура параллельных вычислений с использованием графических процессоров фирмы Nvidia.
Описание слайда:
Модели параллельных вычислений POSIX Threads - стандарт для нитей. Стандарт определяет API для создания и манипуляции нитями. POSIX (Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) – набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой PVM (Parallel Virtual Machine) – свободная реализация платформы для параллельных вычислений в гетерогенных сетях. MPI (Message Passing Interface] – языко-независимый протокол, используемый для программирования параллельных процессов. OpenMP – открытый API, поддерживающий программирование мультипроцессорных ЭВМ с разделенной моделью памяти. CUDA  (Compute Unified Device Architecture) — программно-аппаратная архитектура параллельных вычислений с использованием графических процессоров фирмы Nvidia.

Слайд 17





 POSIX Threads
POSIX определяет основной набор функций и структур данных, чтобы многопоточный код можно было легко передавать из одной операционной системы в другую. 
Pthreads представляет собой прикладной программный интерфейс для выполнения большинства действий, необходимых для потоков. Сюда входит создание и прерывание потоков, ожидание завершения потоков и управление взаимодействием между ними, имеется несколько способов блокировки, которые не дают двум потокам одновременно изменять одни и те же значения данных. 
Pthreads обеспечивает расширенное управление многопоточными операциями и является низкоуровневым, что приводит к выполнению простых задач разбиения на потоки в несколько этапов. Например, использование многопоточного цикла для последовательной обработки большого блока данных требует объявления многопоточных структур, создания каждого потока по отдельности, вычисления и назначения границ циклов для каждого потока, и, наконец, обработки прерывания потоков — все эти функции должны быть закодированы разработчиком. Если цикл не просто повторяется, объем кода, обеспечивающего потоки, может существенно увеличиться.
Описание слайда:
POSIX Threads POSIX определяет основной набор функций и структур данных, чтобы многопоточный код можно было легко передавать из одной операционной системы в другую. Pthreads представляет собой прикладной программный интерфейс для выполнения большинства действий, необходимых для потоков. Сюда входит создание и прерывание потоков, ожидание завершения потоков и управление взаимодействием между ними, имеется несколько способов блокировки, которые не дают двум потокам одновременно изменять одни и те же значения данных. Pthreads обеспечивает расширенное управление многопоточными операциями и является низкоуровневым, что приводит к выполнению простых задач разбиения на потоки в несколько этапов. Например, использование многопоточного цикла для последовательной обработки большого блока данных требует объявления многопоточных структур, создания каждого потока по отдельности, вычисления и назначения границ циклов для каждого потока, и, наконец, обработки прерывания потоков — все эти функции должны быть закодированы разработчиком. Если цикл не просто повторяется, объем кода, обеспечивающего потоки, может существенно увеличиться.

Слайд 18





PVM (Parallel Virtual Machine)
PVM представляет собой набор программных средств и библиотек, которые эмулируют общецелевые, гибкие гетерогенные вычислительные структуры для параллелизма во взаимосвязанных компьютерах с различными архитектурами. Главной целью системы PVM является обеспечение возможности совместного использования группы компьютеров совместно для взаимосвязанных или параллельных вычислений. 
Конфигурируемый пользователем пул хостов: вычислительные задачи приложения выполняются с привлечением набора машин, которые выбираются пользователем для данной программы PVM. Вычисления, производимые с помощью процессов: единицей параллелизма в PVM является задача  - независимый последовательный поток управления, который может быть либо коммуникационным, либо вычислительным. 
Система PVM состоит из двух частей. Первая часть - это «демон»' под названием pvmd3, - который помещается на все компьютеры, создающие виртуальную машину. 
Вторая часть системы - это библиотека подпрограмм интерфейса PVM. Она содержит функционально полный набор примитивов, которые необходимы для взаимодействия между задачами приложения.
Описание слайда:
PVM (Parallel Virtual Machine) PVM представляет собой набор программных средств и библиотек, которые эмулируют общецелевые, гибкие гетерогенные вычислительные структуры для параллелизма во взаимосвязанных компьютерах с различными архитектурами. Главной целью системы PVM является обеспечение возможности совместного использования группы компьютеров совместно для взаимосвязанных или параллельных вычислений. Конфигурируемый пользователем пул хостов: вычислительные задачи приложения выполняются с привлечением набора машин, которые выбираются пользователем для данной программы PVM. Вычисления, производимые с помощью процессов: единицей параллелизма в PVM является задача - независимый последовательный поток управления, который может быть либо коммуникационным, либо вычислительным. Система PVM состоит из двух частей. Первая часть - это «демон»' под названием pvmd3, - который помещается на все компьютеры, создающие виртуальную машину. Вторая часть системы - это библиотека подпрограмм интерфейса PVM. Она содержит функционально полный набор примитивов, которые необходимы для взаимодействия между задачами приложения.

Слайд 19





MPI (Message Passing Interface)
Базовым механизмом связи между MPI процессами является передача и приём сообщений. Сообщение несёт в себе передаваемые данные и информацию, позволяющую принимающей стороне осуществлять их выборочный приём.
Операции приёма и передачи могут быть блокирующимися и неблокирующимися. Для неблокирующихся операций определены функции проверки готовности и ожидания выполнения операции.
Другим способом связи является удалённый доступ к памяти, позволяющий читать и изменять область памяти удалённого процесса. 
Локальный процесс может переносить область памяти удалённого процесса в свою память и обратно, а также комбинировать данные, передаваемые в удалённый процесс с имеющимися в его памяти данными. 
Все операции удалённого доступа к памяти не блокирующиеся, однако, до и после их выполнения необходимо вызывать блокирующиеся функции синхронизации.
Описание слайда:
MPI (Message Passing Interface) Базовым механизмом связи между MPI процессами является передача и приём сообщений. Сообщение несёт в себе передаваемые данные и информацию, позволяющую принимающей стороне осуществлять их выборочный приём. Операции приёма и передачи могут быть блокирующимися и неблокирующимися. Для неблокирующихся операций определены функции проверки готовности и ожидания выполнения операции. Другим способом связи является удалённый доступ к памяти, позволяющий читать и изменять область памяти удалённого процесса. Локальный процесс может переносить область памяти удалённого процесса в свою память и обратно, а также комбинировать данные, передаваемые в удалённый процесс с имеющимися в его памяти данными. Все операции удалённого доступа к памяти не блокирующиеся, однако, до и после их выполнения необходимо вызывать блокирующиеся функции синхронизации.

Слайд 20





OpenMP
Описание слайда:
OpenMP

Слайд 21





CUDA (Compute Unified Device Architecture)
Технология CUDA вводит ряд дополнительных расширений для языка C, которые необходимы для написания кода для GPU:
Спецификаторы функций, которые показывают, как и откуда буду выполняться функции. 
Спецификаторы переменных, которые служат для указания типа используемой памяти GPU. 
Спецификаторы запуска ядра GPU. 
Встроенные переменные для идентификации нитей, блоков и др. параметров при исполнении кода в ядре GPU .
Дополнительные типы переменных.
Основой для эффективного использования GPU в научных и иных неграфических расчётах является распараллеливание алгоритмов на сотни исполнительных блоков. 
Описание слайда:
CUDA (Compute Unified Device Architecture) Технология CUDA вводит ряд дополнительных расширений для языка C, которые необходимы для написания кода для GPU: Спецификаторы функций, которые показывают, как и откуда буду выполняться функции. Спецификаторы переменных, которые служат для указания типа используемой памяти GPU. Спецификаторы запуска ядра GPU. Встроенные переменные для идентификации нитей, блоков и др. параметров при исполнении кода в ядре GPU . Дополнительные типы переменных. Основой для эффективного использования GPU в научных и иных неграфических расчётах является распараллеливание алгоритмов на сотни исполнительных блоков. 

Слайд 22





Использование моделей ПВ :
При необходимости решения задач распределенных вычислений на базе SMP-систем (Symmetric Multiprocessing), в качестве базы целесообразно выбирать OpenMP;
При необходимости решения задач распределенных вычислений на базе гетерогенных систем лучше использовать PVM — он проще, чем MPI и потому способен дать в среднем более производительное решение;
MPI следует использовать только в случае наличия в команде специалиста, имеющего опыт работы с этим API — будучи архитектурно достаточно сложным комплексом, в неумелых руках он способен дать меньшее ускорение, чем PVM.
Описание слайда:
Использование моделей ПВ : При необходимости решения задач распределенных вычислений на базе SMP-систем (Symmetric Multiprocessing), в качестве базы целесообразно выбирать OpenMP; При необходимости решения задач распределенных вычислений на базе гетерогенных систем лучше использовать PVM — он проще, чем MPI и потому способен дать в среднем более производительное решение; MPI следует использовать только в случае наличия в команде специалиста, имеющего опыт работы с этим API — будучи архитектурно достаточно сложным комплексом, в неумелых руках он способен дать меньшее ускорение, чем PVM.

Слайд 23





Основные понятия
Компиляция программы
Модель параллельной программы 
Директивы и функции 
Выполнение программы
Замер времени
Описание слайда:
Основные понятия Компиляция программы Модель параллельной программы Директивы и функции Выполнение программы Замер времени

Слайд 24





OpenMP
Описание слайда:
OpenMP

Слайд 25





Преимущества OpenMP 
1. Разработчик не создает новую параллельную программу, а просто последовательно добавляет в текст последовательной программы OpenMP-директивы.
2. OpenMP - достаточно гибкий механизм.
3. Нет необходимости поддерживать последовательную и параллельную версии. Директивы OpenMP просто игнорируются последовательным компилятором.
4.  Директивы синхронизации и распределения работы могут не входить непосредственно в текст параллельной области ("orphan" (оторванные) директивы) .
Описание слайда:
Преимущества OpenMP 1. Разработчик не создает новую параллельную программу, а просто последовательно добавляет в текст последовательной программы OpenMP-директивы. 2. OpenMP - достаточно гибкий механизм. 3. Нет необходимости поддерживать последовательную и параллельную версии. Директивы OpenMP просто игнорируются последовательным компилятором. 4.  Директивы синхронизации и распределения работы могут не входить непосредственно в текст параллельной области ("orphan" (оторванные) директивы) .

Слайд 26





Модель параллельной программы
Описание слайда:
Модель параллельной программы

Слайд 27





Компиляция программы
Для использования механизмов OpenMP нужно скомпилировать программу компилятором, поддерживающим OpenMP, с указанием соответствующего ключа (например, в Visual C++       - /openmp). 
В Microsoft Visual Studio для использования OpenMP в настройках проекта необходимо включить поддержку: Включение OpenMP 
(Проект -> свойства -> C/C++ -> Язык -> Поддержка Open MP)
Описание слайда:
Компиляция программы Для использования механизмов OpenMP нужно скомпилировать программу компилятором, поддерживающим OpenMP, с указанием соответствующего ключа (например, в Visual C++ - /openmp). В Microsoft Visual Studio для использования OpenMP в настройках проекта необходимо включить поддержку: Включение OpenMP (Проект -> свойства -> C/C++ -> Язык -> Поддержка Open MP)

Слайд 28





Использование OpenMP
Заголовочный файл библиотеки называется omp.h: 
#include <omp.h>
Директивы OpenMP для C/C++ в общем случае выглядят так:  
#pragma omp <директива> [<не обязательные пункты директивы>] 
Где директива определяет что нужно сделать, а пункты директивы управляют ее работой.
макрос _OPENMP определён в формате yyyymm, где yyyy и mm – цифры года и месяца, когда был принят поддерживаемый стандарт OpenMP (стандарт OpenMP 3.0, определяет _OPENMP в 200805).
Описание слайда:
Использование OpenMP Заголовочный файл библиотеки называется omp.h: #include <omp.h> Директивы OpenMP для C/C++ в общем случае выглядят так: #pragma omp <директива> [<не обязательные пункты директивы>] Где директива определяет что нужно сделать, а пункты директивы управляют ее работой. макрос _OPENMP определён в формате yyyymm, где yyyy и mm – цифры года и месяца, когда был принят поддерживаемый стандарт OpenMP (стандарт OpenMP 3.0, определяет _OPENMP в 200805).

Слайд 29





Пример 1
#include "stdafx.h"               
#include <iostream>      
#include "windows.h"              
#include <omp.h>
using namespace std;              
int main(){
SetConsoleCP(1251); 
SetConsoleOutputCP(1251);          
  cout<<"Есть поддержка OpenMP ??? \n";
#ifdef  _OPENMP    
cout<<"Поддержка есть! \n";
cout<<"Версия OpenMP:" << _OPENMP << "\n";
#else 
 cout<<" Поддержки НЕТ !!! \n"; 
#endif 
system("Pause");
}
Описание слайда:
Пример 1 #include "stdafx.h" #include <iostream> #include "windows.h" #include <omp.h> using namespace std; int main(){ SetConsoleCP(1251); SetConsoleOutputCP(1251); cout<<"Есть поддержка OpenMP ??? \n"; #ifdef _OPENMP cout<<"Поддержка есть! \n"; cout<<"Версия OpenMP:" << _OPENMP << "\n"; #else cout<<" Поддержки НЕТ !!! \n"; #endif system("Pause"); }

Слайд 30





Директивы и функции
Формат директивы на Си/Си++:  
#pragma omp directive-name [опция[[,] опция]...]
Ассоциированные с директивы OpenMP :
определение параллельной области, 
распределение работы, 
синхронизация. 
Каждая директива может иметь несколько дополнительных атрибутов – опций (clause).
 Все функции, используемые в OpenMP, начинаются с префикса omp_ и записываются строчными буквами.
Описание слайда:
Директивы и функции Формат директивы на Си/Си++: #pragma omp directive-name [опция[[,] опция]...] Ассоциированные с директивы OpenMP : определение параллельной области, распределение работы, синхронизация. Каждая директива может иметь несколько дополнительных атрибутов – опций (clause). Все функции, используемые в OpenMP, начинаются с префикса omp_ и записываются строчными буквами.

Слайд 31





Замер времени
Функции для работы с системным таймером:
omp_get_wtime() - возвращает в вызвавшей нити астрономическое время в секундах (вещественное число двойной точности), прошедшее с некоторого момента в прошлом. (double omp_get_wtime(void)); 
Гарантируется, что момент времени, используемый в качестве точки отсчета, не будет изменён за время существования процесса. Таймеры разных нитей могут быть не синхронизированы и выдавать различные значения. 
omp_get_wtick() возвращает в вызвавшей нити разрешение таймера в секундах(точность таймера). (double omp_get_wtick(void))
Описание слайда:
Замер времени Функции для работы с системным таймером: omp_get_wtime() - возвращает в вызвавшей нити астрономическое время в секундах (вещественное число двойной точности), прошедшее с некоторого момента в прошлом. (double omp_get_wtime(void)); Гарантируется, что момент времени, используемый в качестве точки отсчета, не будет изменён за время существования процесса. Таймеры разных нитей могут быть не синхронизированы и выдавать различные значения. omp_get_wtick() возвращает в вызвавшей нити разрешение таймера в секундах(точность таймера). (double omp_get_wtick(void))

Слайд 32





Пример 2
#include "stdafx.h"       
#include <iostream>      
#include "windows.h"      
#include <omp.h>
using namespace std;   
int main(){
SetConsoleCP(1251); 
SetConsoleOutputCP(1251); 
 double start_time, end_time, tick; 
 start_time = omp_get_wtime(); 
 end_time = omp_get_wtime(); 
 tick = omp_get_wtick(); 
 cout<< "Время на замер времени " << end_time << " -  "
<< start_time  << " =  "  << end_time-start_time <<"\n"; 
 cout << "Точность таймера  " <<   tick << "\n"; 
system("Pause");
}
Описание слайда:
Пример 2 #include "stdafx.h" #include <iostream> #include "windows.h" #include <omp.h> using namespace std; int main(){ SetConsoleCP(1251); SetConsoleOutputCP(1251); double start_time, end_time, tick; start_time = omp_get_wtime(); end_time = omp_get_wtime(); tick = omp_get_wtick(); cout<< "Время на замер времени " << end_time << " - " << start_time << " = " << end_time-start_time <<"\n"; cout << "Точность таймера " << tick << "\n"; system("Pause"); }



Теги ПП тема 1
Похожие презентации
Mypresentation.ru
Загрузить презентацию