Презентация Технологии параллельного программирования онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Технологии параллельного программирования абсолютно бесплатно. Урок-презентация на эту тему содержит всего 79 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Технологии параллельного программирования



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    79 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    1.32 MB
  • Просмотров:
    99
  • Скачиваний:
    0
  • Автор:
    неизвестен



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

№1 слайд
Содержание слайда:  

№2 слайд
ТЕХНОЛОГИИ ПАРАЛЛЕЛЬНОГО
Содержание слайда: ТЕХНОЛОГИИ ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ OpenMP TBB MPI CUDA OpenCL OpenACC Chapel

№3 слайд
https en.wikipedia.org wiki
Содержание слайда: https://en.wikipedia.org/wiki/OpenMP

№4 слайд
Содержание слайда:

№5 слайд
OpenMP uses a portable,
Содержание слайда: OpenMP uses a portable, scalable model with a simple interface for developing parallel applications for platforms ranging from the standard desktop computer to the supercomputer. OpenMP uses a portable, scalable model with a simple interface for developing parallel applications for platforms ranging from the standard desktop computer to the supercomputer.

№6 слайд
По умолчанию в компиляторах
Содержание слайда: По умолчанию в компиляторах поддержка OpenMP выключена. Для её включения следует использовать дополнительную опцию gcc, g++, gfortran: опция -fopenmp По умолчанию в компиляторах поддержка OpenMP выключена. Для её включения следует использовать дополнительную опцию gcc, g++, gfortran: опция -fopenmp icc, icpc, ifort: опция -openmp под linux, /Qopenmp под windows xlc, xlc++, xlf: опция -qsmp=omp MSVC: опция /openmp Borland: поддержка OpenMP отсутствует

№7 слайд
Содержание слайда:

№8 слайд
Содержание слайда:

№9 слайд
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ OPEN MP
Содержание слайда: ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ OPEN MP НА С++ СМОТРИ ТУТ ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ OPEN MP НА С++ СМОТРИ ТУТ

№10 слайд
Message Passing Interface
Содержание слайда: Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Разработан Уильямом Гроуппом, Эвином Ласком и другими. Message Passing Interface (MPI, интерфейс передачи сообщений) — программный интерфейс (API) для передачи информации, который позволяет обмениваться сообщениями между процессами, выполняющими одну задачу. Разработан Уильямом Гроуппом, Эвином Ласком и другими. MPI является наиболее распространённым стандартом интерфейса обмена данными в параллельном программировании, существуют его реализации для большого числа компьютерных платформ. Используется при разработке программ для кластеров и суперкомпьютеров . Основным средством коммуникации между процессами в MPI является передача сообщений друг другу. Существуют реализации MPI для языков  Фортран,  Java,  Си и Си++.

№11 слайд
Содержание слайда:

№12 слайд
В первую очередь MPI
Содержание слайда: В первую очередь MPI ориентирован на системы с распределенной памятью, то есть когда затраты на передачу данных велики, в то время как OpenMP ориентирован на системы с общей памятью (многоядерные с общим кешем). Обе технологии могут использоваться совместно, чтобы оптимально использовать в кластере многоядерные системы. В первую очередь MPI ориентирован на системы с распределенной памятью, то есть когда затраты на передачу данных велики, в то время как OpenMP ориентирован на системы с общей памятью (многоядерные с общим кешем). Обе технологии могут использоваться совместно, чтобы оптимально использовать в кластере многоядерные системы.

№13 слайд
Intel Threading Building
Содержание слайда: Intel Threading Building Blocks (также известная как TBB) — кроссплатформенная библиотека шаблонов С++, разработанная компанией Intel для параллельного программирования.  Intel Threading Building Blocks (также известная как TBB) — кроссплатформенная библиотека шаблонов С++, разработанная компанией Intel для параллельного программирования.  Версия 1.0 была выпущена фирмой Интел 29 августа 2006, через год после выпуска своего первого двуядерного процессора Pentium D. Поддерживаемые операционные системы Коммерческая версия TBB 4.0 поддерживает Microsoft Windows (XP или выше),  Mac OS X(версия 10.5.8 или выше) и  Linux, используя различные компиляторы (Visual C++ (версия 8.0 или выше, только на Windows),  Intel C++ compiler (версия 11.1 или выше) или GNU Compiler Collection (gcc, версия 3.4 и выше)). Кроме того, сообщество открытой версии TBB портировало её на Sun Solaris, PowerPC, Xbox 360, QNX Neutrino, и FreeBSD.

№14 слайд
Содержание слайда:

№15 слайд
The open standard for
Содержание слайда: The open standard for parallel programming of heterogeneous systems The open standard for parallel programming of heterogeneous systems OpenCL ™ (Open Computing Language) - это открытый, стандарт для кросс-платформенного параллельного программирования различных процессоров, имеющихся на персональных компьютерах, серверах, мобильных устройствах и встроенных платформах. OpenCL значительно улучшает скорость и отзывчивость широкого спектра приложений во многих рыночных категориях, включая игровые и развлекательные звания, научное и медицинское программное обеспечение, профессиональные креативные инструменты, обработку зрения и обучение и вывод нейронной сети.

№16 слайд
https habrahabr.ru post
Содержание слайда: https://habrahabr.ru/post/261323/

№17 слайд
CUDA vs OpenCL CUDA это
Содержание слайда: CUDA vs OpenCL CUDA это архитектура параллельных вычислений от NVIDIA, позволяющая существенно увеличить вычислительную производительность благодаря использованию GPU (графических процессоров). Поддержка архитектур x86, x86-64, Itanium, SpursEngine (Cell), NVidia GPU, AMD GPU, VIA (S3 Graphics) GPU. Для каждого из этих типов процессов существует свой SDK (ну кроме разве что VIA), свой язык программирования и программная модель.

№18 слайд
CUDA vs OpenCL То есть если
Содержание слайда: CUDA vs OpenCL То есть если Вы захотите чтобы ваш движок рендеринга или программа расчета нагрузок на крыло боинга 787 работала на простой рабочей станции, суперкомпьютере BlueGene, или компьютере оборудованном двумя ускорителями NVidia Tesla – Вам будет необходимо переписывать достаточно большую часть программы, так как каждая из платформ в силу своей архитектуры имеет набор жестких ограничений.

№19 слайд
CUDA vs OpenCL было решено
Содержание слайда: CUDA vs OpenCL было решено создать некий единый стандарт для программ, исполняющихся в гетерогенной среде. Это означает, что программа, вообще говоря, должна быть способна исполняться на компьютере, в котором установлены одновременно GPU NVidia и AMD, Toshiba SpursEngine итд.

№20 слайд
CUDA vs OpenCL Решение
Содержание слайда: CUDA vs OpenCL Решение проблемы Для разработки открытого стандарта решили привлечь людей, у которых уже есть опыт в разработке подобного стандарта: Khronos Group, на чьей совести уже OpenGL и OpenML и еще много всего. OpenCL является торговой маркой Apple Inc. В разработке (и финансировании, конечно же), кроме Apple, участвовали такие компании IT как AMD, IBM, Activision Blizzard, Intel, NVidia и тд. 

№21 слайд
Содержание слайда:

№22 слайд
Попробуем решить одну простую
Содержание слайда: Попробуем решить одну простую задачу с помощью актуальных технологий параллельного программирования (OpenMP, TBB, MPI, CUDA, OpenCL, OpenACC, Chapel). Попробуем решить одну простую задачу с помощью актуальных технологий параллельного программирования (OpenMP, TBB, MPI, CUDA, OpenCL, OpenACC, Chapel).

№23 слайд
Вычислим число Пи путем
Содержание слайда:  Вычислим число Пи путем численного интегрирования, будем использовать метод прямоугольников

№24 слайд
Объявим количество шагов, на
Содержание слайда: Объявим количество шагов, на которые разобьем интеграл a – левый предел интеграла b – правый предел интеграла n – количество отрезков на которые разбиваем ось ОХ

№25 слайд
Содержание слайда:

№26 слайд
Вычислим площадь
Содержание слайда: Вычислим площадь криволинейной трапеции, посчитав значение функции в каждом прямоугольнике и домножив на основание //определение значения функции в середине шага //Умножение значения функции в середине шага на основание for (int i=0;i<n;i++){ x=(i+0.5)*step; y=(4/(1+x*x));//вычислили значение функции pi=pi+y*step; //умножили значение функции на основание прямоугольника }

№27 слайд
Попробуем решить задачу
Содержание слайда: Попробуем решить задачу сначала последовательным алгоритмом, а затем с использованием технологий параллельного программирования. И сравним время выполнения программ Попробуем решить задачу сначала последовательным алгоритмом, а затем с использованием технологий параллельного программирования. И сравним время выполнения программ

№28 слайд
Последовательное
Содержание слайда: Последовательное программирование package parallelprog; public class ParallelProg { static double x=0; static double a=0;//левый предел static double b=1;//правый предел static double y=0;//значение функции в точке Х static double pi=0;//значение интеграла static double n=1000000;//количество шагов static double step=0; //ширина шага static long start = 0; //время начала выполнения процесса static long finish = 0; //время окончания static double time = 0; //разница времени начала и конца

№29 слайд
public static void main
Содержание слайда: public static void main(String[] args) { public static void main(String[] args) { start = System.nanoTime();//Отметим время начала step=Math.abs(a-b)/n; System.out.println("Начинаем вычислять интеграл"); //определение значения функции в середине шага for (int i=0;i<n;i++){ x=(i+0.5)*step; y=(4/(1+x*x));//вычислили значение функции pi=pi+y*step; //умножили значение функции на основание прямоугольника } //Закончив вычислять интеграл, проверим прошедшее время finish = System.nanoTime(); time=finish-start; //Переводим в секунды time= (double)time / 1000000000.0; System.out.println("Закончили вычислять интеграл"); System.out.println("pi="+pi); System.out.println("Время выполнения: "+time+ "сек"); } }

№30 слайд
Результат последовательного
Содержание слайда: Результат последовательного программирования

№31 слайд
ТЕПЕРЬ ПОПРОБУЕМ РЕШИТЬ
Содержание слайда: ТЕПЕРЬ ПОПРОБУЕМ РЕШИТЬ ЗАДАЧУ С ПОМОЩЬЮ ПАРАЛЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ ТЕПЕРЬ ПОПРОБУЕМ РЕШИТЬ ЗАДАЧУ С ПОМОЩЬЮ ПАРАЛЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ

№32 слайд
Самая доступная простым
Содержание слайда: Самая доступная простым пользователям параллельная архитектура — это обычный многоядерный процессор или несколько процессоров на одной материнской плате. Самая доступная простым пользователям параллельная архитектура — это обычный многоядерный процессор или несколько процессоров на одной материнской плате.

№33 слайд
Одно ядро также способно
Содержание слайда: Одно ядро также способно исполнять параллельно несколько потоков — такой режим называется псевдо-параллельным или конкурентным. Ядро переключается между процессами, выделяя каждому квант времени. В принципе такой режим выполнения уже может привести к росту производительности за счет сокрытия латентности памяти. Одно ядро также способно исполнять параллельно несколько потоков — такой режим называется псевдо-параллельным или конкурентным. Ядро переключается между процессами, выделяя каждому квант времени. В принципе такой режим выполнения уже может привести к росту производительности за счет сокрытия латентности памяти.

№34 слайд
Латентность задержка - это
Содержание слайда: Латентность (задержка) - это время, которое затрачивается на чтение из памяти одного слова данных (восьми байт) . Чем ниже латентность оперативной памяти, тем меньше центральный процессор будет находиться в состоянии простоя. Латентность (задержка) - это время, которое затрачивается на чтение из памяти одного слова данных (восьми байт) . Чем ниже латентность оперативной памяти, тем меньше центральный процессор будет находиться в состоянии простоя.

№35 слайд
Самый исторический способ
Содержание слайда: Самый «исторический» способ использовать сразу несколько ядер на процессоре — это механизм потоков операционной системы, который существовал задолго до истинно-параллельных процессоров для конкретности хотя бы ради более удобного написания программ. Самый «исторический» способ использовать сразу несколько ядер на процессоре — это механизм потоков операционной системы, который существовал задолго до истинно-параллельных процессоров для конкретности хотя бы ради более удобного написания программ.

№36 слайд
С точки зрения программиста
Содержание слайда: С точки зрения программиста важно то, что параллельные потоки, исполняемые на разных ядрах или процессорах видят одно и то же адресное пространство, т.е нет нужды явно передавать данные между потоками. Зато если вдруг разные потоки пишут\читают одну и ту же переменную — то придётся озаботиться синхронизацией.  С точки зрения программиста важно то, что параллельные потоки, исполняемые на разных ядрах или процессорах видят одно и то же адресное пространство, т.е нет нужды явно передавать данные между потоками. Зато если вдруг разные потоки пишут\читают одну и ту же переменную — то придётся озаботиться синхронизацией. 

№37 слайд
ВЕРНЕМСЯ К НАШЕЙ ЗАДАЧЕ
Содержание слайда: ВЕРНЕМСЯ К НАШЕЙ ЗАДАЧЕ: ВЫЧИСЛЕНИЕ ИНТЕГРАЛА ВЕРНЕМСЯ К НАШЕЙ ЗАДАЧЕ: ВЫЧИСЛЕНИЕ ИНТЕГРАЛА

№38 слайд
РАЗОБЬЕМ ИНТЕГРАЛ НА ЛЕВУЮ И
Содержание слайда: РАЗОБЬЕМ ИНТЕГРАЛ НА ЛЕВУЮ И ПРАВУЮ ЧАСТИ. ПЕРВЫЙ ПОТОК БУДЕТ ВЫЧИСЛЯТЬ ИНТЕГРАЛ СЛЕВА НАПРАВО, НАЧИНАЯ ОТ ТОЧКИ А, ДРУГОЙ ПОТОК БУДЕТ ВЫЧИСЛЯТЬ ИНТЕГРАЛ СПРАВА НАЛЕВО, НАЧИНАЯ ОТ ПРАВОЙ ГРАНИЦЫ. РАЗОБЬЕМ ИНТЕГРАЛ НА ЛЕВУЮ И ПРАВУЮ ЧАСТИ. ПЕРВЫЙ ПОТОК БУДЕТ ВЫЧИСЛЯТЬ ИНТЕГРАЛ СЛЕВА НАПРАВО, НАЧИНАЯ ОТ ТОЧКИ А, ДРУГОЙ ПОТОК БУДЕТ ВЫЧИСЛЯТЬ ИНТЕГРАЛ СПРАВА НАЛЕВО, НАЧИНАЯ ОТ ПРАВОЙ ГРАНИЦЫ.

№39 слайд
ВОПРОС Почему будет
Содержание слайда: ВОПРОС: Почему будет неэффективным решением разбить интервал АВ на равные доли и отдать параллельным потокам на исполнение, чтобы один поток вычислял интеграл от А до |A-B|/2, а второй от В до |A-B|/2 ???? ВОПРОС: Почему будет неэффективным решением разбить интервал АВ на равные доли и отдать параллельным потокам на исполнение, чтобы один поток вычислял интеграл от А до |A-B|/2, а второй от В до |A-B|/2 ????

№40 слайд
ОТВЕТ Если один из потоков
Содержание слайда: ОТВЕТ: Если один из потоков посчитает свою часть раньше — то соответствующее ядро будет простаивать, т.е. мы потеряем производительность. ОТВЕТ: Если один из потоков посчитает свою часть раньше — то соответствующее ядро будет простаивать, т.е. мы потеряем производительность.

№41 слайд
Поэтому оба потока будут
Содержание слайда: Поэтому оба потока будут вычислять интеграл с разной скоростью, пока не встретятся лицом к лицу Поэтому оба потока будут вычислять интеграл с разной скоростью, пока не встретятся лицом к лицу

№42 слайд
Что касаемо программы Что
Содержание слайда: Что касаемо программы Что касаемо программы

№43 слайд
Процесс это совокупность кода
Содержание слайда: Процесс — это совокупность кода и данных, разделяющих общее виртуальное адресное пространство (VAS). Чаще всего одна программа состоит из одного процесса Процесс — это совокупность кода и данных, разделяющих общее виртуальное адресное пространство (VAS). Чаще всего одна программа состоит из одного процесса Процессы изолированы друг от друга, поэтому прямой доступ к памяти чужого процесса невозможен. Для каждого процесса ОС создает VAS, к которому процесс имеет прямой доступ. Это пространство принадлежит процессу, содержит только его данные и находится в полном его распоряжении. ОС же отвечает за то, как виртуальное пространство процесса проецируется на физическую память.

№44 слайд
Содержание слайда:

№45 слайд
ОС оперирует так называемыми
Содержание слайда: ОС оперирует так называемыми страницами памяти, которые представляют собой просто область определенного фиксированного размера. Если процессу становится недостаточно памяти, система выделяет ему дополнительные страницы из физической памяти. Страницы виртуальной памяти могут проецироваться на физическую память в произвольном порядке. ОС оперирует так называемыми страницами памяти, которые представляют собой просто область определенного фиксированного размера. Если процессу становится недостаточно памяти, система выделяет ему дополнительные страницы из физической памяти. Страницы виртуальной памяти могут проецироваться на физическую память в произвольном порядке.

№46 слайд
Один поток это одна единица
Содержание слайда: Один поток – это одна единица исполнения кода. Каждый поток последовательно выполняет инструкции процесса, которому он принадлежит, параллельно с другими потоками этого процесса. Один поток – это одна единица исполнения кода. Каждый поток последовательно выполняет инструкции процесса, которому он принадлежит, параллельно с другими потоками этого процесса. Следует отдельно обговорить фразу «параллельно с другими потоками». Известно, что на одно ядро процессора, в каждый момент времени, приходится один поток. То есть одноядерный процессор может обрабатывать команды только последовательно, по одной за раз (в упрощенном случае). Однако запуск нескольких параллельных потоков возможен и в системах с одноядерными процессорами. В этом случае система будет периодически переключаться между потоками, поочередно давая выполняться то одному, то другому потоку. Такая схема называется псевдо-параллелизмом. 

№47 слайд
Псевдо-параллелизм. Система
Содержание слайда: Псевдо-параллелизм. Система запоминает состояние (контекст) каждого потока, перед тем как переключиться на другой поток, и восстанавливает его по возвращению к выполнению потока. В контекст потока входят такие параметры, как стек, набор значений регистров процессора, адрес исполняемой команды и прочее… Проще говоря, при псевдопараллельном выполнении потоков процессор мечется между выполнением нескольких потоков, выполняя по очереди часть каждого из них.

№48 слайд
УКРЕПИМ ЗНАНИЯ Процессы
Содержание слайда: УКРЕПИМ ЗНАНИЯ: Процессы изолированы друг от друга, поэтому прямой доступ к памяти чужого процесса невозможен. параллельные потоки, исполняемые на разных ядрах или процессорах видят одно и то же адресное пространство, т.е нет нужды явно передавать данные между потоками. 

№49 слайд
JAVA Каждый процесс имеет
Содержание слайда: JAVA Каждый процесс имеет хотя бы один выполняющийся поток. Тот поток, с которого начинается выполнение программы, называется главным. В языке Java, после создания процесса, выполнение главного потока начинается с метода main(). Затем, по мере необходимости, запускаются другие побочные потоки. В языке Java поток представляется в виде объекта-потомка класса Thread.

№50 слайд
КАК СОЗДАТЬ ПОТОКИ В JAVA
Содержание слайда: КАК СОЗДАТЬ ПОТОКИ В JAVA

№51 слайд
СПОСОБ СОЗДАТЬ ПОТОК В JAVA С
Содержание слайда: СПОСОБ №1 СОЗДАТЬ ПОТОК В JAVA С ПОМОЩЬЮ ИНТЕРФЕЙСА RUNNABLE

№52 слайд
public class MyThread
Содержание слайда: public class MyThread implements Runnable{ public class MyThread implements Runnable{ @Override public void run() { /*Код который должен выполнить поток*/ } }

№53 слайд
СПОСОБ НАСЛЕДОВАНИЕ ОТ КЛАССА
Содержание слайда: СПОСОБ №2: НАСЛЕДОВАНИЕ ОТ КЛАССА THREAD

№54 слайд
public class MyThread extends
Содержание слайда: public class MyThread extends Thread{ public class MyThread extends Thread{ @Override public void run() { /*Код который должен выполнить поток*/ } }

№55 слайд
В ЧЕМ РАЗНИЦА МЕЖДУ
Содержание слайда: В ЧЕМ РАЗНИЦА МЕЖДУ РЕАЛИЗАЦИЕЙ ИНТЕРФЕЙСА RUNNABLE И НАСЛЕДОВАНИЕМ ОТ КЛАССА THREAD? http://qaru.site/questions/57/implements-runnable-vs-extends-thread

№56 слайд
ДАВАЙТЕ ИЗУЧИМ КОД
Содержание слайда: ДАВАЙТЕ ИЗУЧИМ КОД:

№57 слайд
Содержание слайда:

№58 слайд
Содержание слайда:

№59 слайд
В интерфейсе Runnable
Содержание слайда: В интерфейсе Runnable создается только один экземпляр класса, и он разделяется различными потоками. Таким образом, значение счетчика увеличивается для каждого доступа к потоку. В интерфейсе Runnable создается только один экземпляр класса, и он разделяется различными потоками. Таким образом, значение счетчика увеличивается для каждого доступа к потоку. В то время как подход класса Thread, вы должны создать отдельный экземпляр для каждого потока. Следовательно, для каждого экземпляра класса выделяется различная память и каждый имеет отдельный счетчик, значение остается таким же, что означает, что приращение не произойдет, потому что ни одна из ссылок на объекты не является такой же.

№60 слайд
Когда использовать Runnable?
Содержание слайда: Когда использовать Runnable?  Используйте интерфейс Runnable, если вы хотите получить доступ к одному и тому же ресурсу из группы потоков. Избегайте использования класса Thread здесь, поскольку создание нескольких объектов потребляет больше памяти Когда использовать Runnable?  Используйте интерфейс Runnable, если вы хотите получить доступ к одному и тому же ресурсу из группы потоков. Избегайте использования класса Thread здесь, поскольку создание нескольких объектов потребляет больше памяти Если вы хотите реализовать или расширить какой-либо другой класс, тогда Runnable интерфейс наиболее предпочтителен другим, если вы не хотите, чтобы какой-либо другой класс расширялся или реализовывался, тогда класс Thread предпочтительнее

№61 слайд
Когда вы реализуете интерфейс
Содержание слайда: Когда вы реализуете интерфейс Runnable, вы можете сохранить пространство для своего класса для расширения любого другого класса. Когда вы реализуете интерфейс Runnable, вы можете сохранить пространство для своего класса для расширения любого другого класса. Java не поддерживает множественное наследование, а это значит, что вы можете расширять только один класс на Java, поэтому, как только вы расширили класс Thread, вы потеряли свой шанс и не можете расширять или наследовать другой класс на Java.

№62 слайд
В задачи нашего курса не
Содержание слайда: В задачи нашего курса не входит освоение ЯВУ, давайте все же вернемся к нашей задаче, которую мы хотели реализовать параллельно: задача вычисления интеграла В задачи нашего курса не входит освоение ЯВУ, давайте все же вернемся к нашей задаче, которую мы хотели реализовать параллельно: задача вычисления интеграла

№63 слайд
Мы создали потока, которые
Содержание слайда: Мы создали 2 потока, которые вычисляют интеграл.

№64 слайд
Давайте посмотрим как эти два
Содержание слайда: Давайте посмотрим как эти два потока борются за один и тот же ресурс – ядро. Пример №1

№65 слайд
Давайте посмотрим как эти два
Содержание слайда: Давайте посмотрим как эти два потока борются за один и тот же ресурс – ядро. Пример №2

№66 слайд
Вот что происходит с
Содержание слайда: Вот что происходит с процессором, когда оба потока запущены.

№67 слайд
Вот что происходит с
Содержание слайда: Вот что происходит с процессором, когда оба потока прекратили вычисления.

№68 слайд
РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ
Содержание слайда: РЕЗУЛЬТАТЫ ТЕСТИРОВАНИЯ

№69 слайд
ВОПРОС ПОЧЕМУ ВРЕМЯ
Содержание слайда: ВОПРОС: ПОЧЕМУ ВРЕМЯ ВЫЧИСЛЕНИЯ ИНТЕГРАЛА НЕ УЛУЧШИЛОСЬ ПРИ ПАРАЛЛЕЛЬНОМ ПОДХОДЕ НА 50% , ВЕДЬ ПО ИДЕИ ЕСЛИ ДВЕ ПОДЗАДАЧИ ВЫПОЛНЯЮТСЯ ПАРАЛЛЕЛЬНО И НЕЗАВИСИМО ДРУГ ОТ ДРУГА, ТО ЗАДАЧА ДОЛЖНА РЕШИТЬСЯ В 2 РАЗА БЫСТРЕЕ? ВОПРОС: ПОЧЕМУ ВРЕМЯ ВЫЧИСЛЕНИЯ ИНТЕГРАЛА НЕ УЛУЧШИЛОСЬ ПРИ ПАРАЛЛЕЛЬНОМ ПОДХОДЕ НА 50% , ВЕДЬ ПО ИДЕИ ЕСЛИ ДВЕ ПОДЗАДАЧИ ВЫПОЛНЯЮТСЯ ПАРАЛЛЕЛЬНО И НЕЗАВИСИМО ДРУГ ОТ ДРУГА, ТО ЗАДАЧА ДОЛЖНА РЕШИТЬСЯ В 2 РАЗА БЫСТРЕЕ?

№70 слайд
ОТВЕТ ОТВЕТ В данном примере
Содержание слайда: ОТВЕТ: ОТВЕТ: В данном примере обе задачи были однотипные, а значит им требовались одни и те же АЛУ (вычисления с плавающей запятой). Если бы задачи были разного типа, например одна на целочисленные вычисления, другая на вычисления с плавающей запятой то, тогда им бы понабились разные АЛУ, и они бы не стояли в очереди к одному аппаратному ресурсу.

№71 слайд
ПРОВЕДЕМ НОВЫЕ ИССЛЕДОВАНИЯ!
Содержание слайда: ПРОВЕДЕМ НОВЫЕ ИССЛЕДОВАНИЯ! Создадим два параллельных потока: Первый поток будет вычислять интеграл для числа Pi (как в примере раньше) Второй поток будет работать с графикой и ему понадобиться рисовать фигуру (треугольник) каждый раз на разном фоне (то на белом фоне, то на черном, в зависимости от переключения логической переменной)

№72 слайд
КОГДА ОБА ПОТОКА РАБОТАЮТ
Содержание слайда: КОГДА ОБА ПОТОКА РАБОТАЮТ

№73 слайд
ПОТОК ЗАВЕРШИЛ ВЫЧИСЛЕНИЯ
Содержание слайда: ПОТОК 1 ЗАВЕРШИЛ ВЫЧИСЛЕНИЯ

№74 слайд
ОБРАТИМСЯ К ФИЛОСОФИИ Ответит
Содержание слайда: ОБРАТИМСЯ К ФИЛОСОФИИ Ответит ли нам программа на вечный вопрос: Что появилось раньше: Яйцо или Курица? Один поток выводит на экран сообщение, что раньше появилось Яйцо, другой выводит ответ, что первее Курица. Программа будет работать в течении 5 секунд и каждый раз предугадать, какой ответ она выдаст трудно. Но мы попытаемся предугадать что ответит программа. Проведем 100 исследований и найдем вероятность того или иного ответа.

№75 слайд
РЕЗУЛЬТАТЫ СПОРА
Содержание слайда: РЕЗУЛЬТАТЫ СПОРА:

№76 слайд
НАГРУЗКА НА ЦП МИНИМАЛЬНА
Содержание слайда: НАГРУЗКА НА ЦП МИНИМАЛЬНА (ВЫЧИСЛЕНИЙ НЕТ)

№77 слайд
ПРОВЕДЕМ АНАЛОГИЧНЫХ ТЕСТОВ,
Содержание слайда: ПРОВЕДЕМ 100 АНАЛОГИЧНЫХ ТЕСТОВ, ЧТОБЫ УЗНАТЬ ВЕРОЯТНОСТЬ ВЫДАЧИ ОТВЕТА

№78 слайд
РЕЗУЛЬТАТЫ ТЕСТИРОАНИЯ
Содержание слайда: РЕЗУЛЬТАТЫ ТЕСТИРОАНИЯ:

№79 слайд
The end! The end!
Содержание слайда: The end! The end!

Скачать все slide презентации Технологии параллельного программирования одним архивом: