SlideShare a Scribd company logo
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ КЛАСТЕРА НА ОСНОВЕ  GPU Лавриненко Ярослав  Сергеевич ученик 11-го класса Черкасский физико-математический лицей Богатырёв Александр Олегович Черкасского национального университета  имени Богдана Хмельницкого Кандидат физико-математических наук Черкассы 2011
ЦЕЛЬ РАБОТЫ Рассмотреть графические ускорители и их использование для решения неграфических задач Используя комбинирование технологий  MPI  та  OpenCL  создать   параллельные реализации: Дискретного косинус преобразования ( DCT – discrete cosine transformation) Метода внедренного атома ( EAM – embedded atom method) Определить ускорение получаемое при использовании графических ускорителей та их кластеров
ГРАФИЧЕСКИЙ ПРОЦЕССОР  (GPU) GPU –  многопроцессорная  система  SIMD   архитектуры Архитектура  nVidia Tesla 10
ТЕКСТУРНО-ПРОЦЕССОРНЫЙ КЛАСТЕР  (TPC) Мультипроцессор  nVidia Tesla 10
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ Программирование графических ускорителей требует использования специальных языков CUDA (Compute Unified Device Architecture)  –  система  библиотек  и  расширений  для  программирования   GPU , производимых  nVidia  начиная с  GeForce 8800 .  OpenCL (Open Computing Language)  –  фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических и центральных процессорах.
ПРОГРАМНАЯ МОДЕЛЬ SIMT  архитектура Исходная задача разбивается на подзадачи решаемые параллельно Каждая подзадача решается множеством нитей взаимодействующих между собой  Каждый потоковый мультипроцессор выполняет большое число разных нитей Нити разбиваются на  warp` ы (по 32 нити). Потоковый мультипроцессор управляет выполнением  warp` ов Нити в  warp` е выполняются физически параллельно Большое число  warp` ов покрывает латентность
ВЫЧИСЛИТЕЛЬНЫЕ КЛАСТЕРЫ Вычислительный кластер  – это MIMD-система состоящая из множества отдельных компьютеров объединенных единой коммуникационной средой. MPI ( Message Passing Interface ) –  программный интерфейс   позволяющий обмениваться сообщениями между процессами что выполняют одну задачу
КЛАСТЕРЫ НА БАЗЕ  GPU Высокая продуктивность при малых энергетических и экономических затратах Для программирования используются связки технологий  MPI  +  CUDA  или  MPI + OpenCL
ДИСКРЕТНОЕ КОСИНУС ПРЕОБРАЗОВАНИЕ ( DCT) Разбиение изображения на блоки пикселей размером  n*n  и  расчет   коэффициентов   DCT  для каждого блока. 2. Обратное преобразование описывает уравнение: 3. Коэффициенты задаются функцией:
ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ для  GPU:   Для каждого пиксела изображения создается отдельная нить, выполняемая на графическом процессоре Нити объединяются в группы 8х8 нитей в которых, рассчитываются коэффициенты  DCT   Нити используют быстродействующую  Shared Memory  графического ускорителя для хранения фрагментов изображения для кластера: Изображение разбивается на блоки большого размера и отправлялись на узлы кластера Каждый узел выполняет преобразование для своего фрагмента изображения
Результаты Полученное укскорение GPU: nVidia GeForce GT 460, CPU: AMD Phenom II x6 10 90 T 2.8  Ггц
Результаты Полученное укскорение 4  GPU: nVidia GeForce GT  240 ,  4  CPU: AMD Athlon II x2 4800+
МЕТОД ВНЕДРЕННОГО АТОМА EMBEDDED ATOM METHOD - EAM Является модификацией  метода  молекулярной динамики. Для расчета межатомного взаимодействия используется парный потенциал и локальная электронная плотность вокруг рассматриваемого атома В качестве парного потенциала использовался потенциал Ленарда-Джонса Для расчета положения и скорости использовался  Leapfrog  алгоритм
ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ для  GPU : Для каждой частицы системы создается нить, исполняемая на графическом ускорителе На графическом ускорителе происходит построение списков Верле и расчет межатомного взаимодействия для кластера: Система разбивается на блоки, которые отправлялись на узлы кластера для дальнейшей обработки Соседние узлы, в случаи необходимости после каждой итерации, обмениваются данными
Результаты (для одного ускорителя) Полученное ускорение GPU: nVidia GeForce GT 420M, CPU: Intel Core i5-460M 2.53  Ггц
ВЫВОДЫ Рассмотрено графический ускоритель как устройство с массивно-параллельной архитектурой, технологии его программирования Создано параллельную версию дискретного косинус преобразования и метода внедренного атома для кластера на базе  GPU Получено ускорение в 407 раз при использовании одного графического ускорителя и в 300 раз при использовании кластера графических ускорителей Ускорение в 2,5 раза было получено при моделировании методом внедренного атома
СПИСОК ЛИТЕРАТУРЫ M. Griebel, S. Knapek, G. Zumbusch. Numerical Simulation in Molecular Dynamics. 2007. – 416, [1-10]c./[38] c. Rapaport. The Art Of Molecular Dynamics Simulation .  Cambridge  2004. – 548, [1-7] c. NVIDIA CUDA Programming Guide. Ver 3.2. Червень 2010 — NVIDIA Corporation, 2010. А. В. Боресков, А. А. Харламов . Основы работы с технологией CUDA.  -  М .:ДМК Пресс, 2010. – 232 с. Introduction to OpenCL programming.  Травень 2010 –  Advanced Micro Devices Д. С эломон. Сжатие данных, изображений и звука.  ЗАО «РИЦ «Техносфера», 2004 – 367 с.

More Related Content

PPTX
Параллельное программирование на современных видеокартах
PPTX
Introduction in CUDA (1-3)
PDF
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
PDF
Лекция 9. Программирование GPU
PPTX
CUDA Best Practices (2-3)
PDF
Архитектура и программирование потоковых многоядерных процессоров для научных...
PDF
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
PDF
Семинар 8. Параллельное программирование на MPI (часть 1)
Параллельное программирование на современных видеокартах
Introduction in CUDA (1-3)
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, paral...
Лекция 9. Программирование GPU
CUDA Best Practices (2-3)
Архитектура и программирование потоковых многоядерных процессоров для научных...
Лекция 5. Основы параллельного программирования (Speedup, Amdahl's law, Paral...
Семинар 8. Параллельное программирование на MPI (часть 1)

What's hot (20)

PDF
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
PPT
Bgp методякоби
PPT
Efficiency vvv
PPTX
Modern neural net architectures - Year 2019 version
PDF
Нейронные сети в высокопроизводительных вычислениях
PDF
Распределенные мультикластерные вычислительные системы и параллельное мультип...
PDF
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
PDF
Cтруктурно-ориентированные алгоритмы коллективных обменов в распределенных вы...
PDF
Семинар 12. Параллельное программирование на MPI (часть 5)
PDF
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
PDF
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
PDF
Расчет минимального времени выполнения задач при оптимальном распределении на...
PDF
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
PDF
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
PDF
CUDA-Aware MPI
PDF
библиотеки с поддержкой Gpu
PPTX
Multiprocessor Programming Intro (lecture 1)
PDF
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
PDF
Введение в архитектуры нейронных сетей / HighLoad++ 2016
PDF
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Bgp методякоби
Efficiency vvv
Modern neural net architectures - Year 2019 version
Нейронные сети в высокопроизводительных вычислениях
Распределенные мультикластерные вычислительные системы и параллельное мультип...
Лекция 3. Оптимизация доступа к памяти (Memory access optimization, cache opt...
Cтруктурно-ориентированные алгоритмы коллективных обменов в распределенных вы...
Семинар 12. Параллельное программирование на MPI (часть 5)
MPIPerf: пакет оценки эффективности коммуникационных функций стандарта MPI
Использование Time-Stamp Counter для измерения времени выполнения кода на пр...
Расчет минимального времени выполнения задач при оптимальном распределении на...
Лекция 4. Векторизация кода (Code vectorization: SSE, AVX)
Лекция 2. Оптимизация ветвлений и циклов (Branch prediction and loop optimiz...
CUDA-Aware MPI
библиотеки с поддержкой Gpu
Multiprocessor Programming Intro (lecture 1)
Лекция 3: Векторизация кода (Code vectorization, SIMD, SSE, AVX)
Введение в архитектуры нейронных сетей / HighLoad++ 2016
Семинар 5. Многопоточное программирование на OpenMP (часть 5)
Ad

Similar to "Лавриненко Ярослав" HPC GPU CUDA (20)

PPT
Cuda, OpenCL
PPTX
Hpc 2.26.03.2013.
PPTX
проект Gpu quantum chemistry
PPT
введение в Gpu
PDF
обзор средств разработки для вычислений Gpgpu
PDF
overview of development tools for computing Gpgpu
PPTX
Introduction to CUDA calculations with GPU
PPTX
Доклад компании Simmakers - Технология GPGPU в высокопроизводительных вычисл...
PDF
A.g.demenev(perm su) 2014
PDF
11 встреча — Введение в GPGPU (А. Свириденков)
PDF
Инструментарий Nvidia для deep learning
PDF
Презентация бакалаврской работы Артема Лебедева
PPTX
Gpudigitallab experimental studio
PPTX
платформа Gpu digital lab microsoft
PPT
Пути увеличения эффективности реализации алгоритмов машинного обучения
PDF
Nvidia hpc day 2011 kiev
PDF
Nvidia Tesla @ Softlayer
PPT
NVIDIA Tesla
PPTX
Hpc 1.24.02.2013.
Cuda, OpenCL
Hpc 2.26.03.2013.
проект Gpu quantum chemistry
введение в Gpu
обзор средств разработки для вычислений Gpgpu
overview of development tools for computing Gpgpu
Introduction to CUDA calculations with GPU
Доклад компании Simmakers - Технология GPGPU в высокопроизводительных вычисл...
A.g.demenev(perm su) 2014
11 встреча — Введение в GPGPU (А. Свириденков)
Инструментарий Nvidia для deep learning
Презентация бакалаврской работы Артема Лебедева
Gpudigitallab experimental studio
платформа Gpu digital lab microsoft
Пути увеличения эффективности реализации алгоритмов машинного обучения
Nvidia hpc day 2011 kiev
Nvidia Tesla @ Softlayer
NVIDIA Tesla
Hpc 1.24.02.2013.
Ad

More from Oleg Nazarevych (20)

PDF
Етикет службового листування
PDF
Оцінка трудомісткості і термінів проекту
PDF
5 Управління ризиками (2016)
PDF
Л2 Управління проектами. Визначення та концепції
PDF
Л1 Введення в програмну інженерію
PDF
Ініціація проекту
PDF
4 Планування проекту (2018)
PDF
Введення в програмну інженерію. Моделі розробки проектів
PPTX
Відеоскрайбінг
PPTX
3D графіка
PPTX
Основи графічного дизайну
PPTX
Тема 1 Основні терміни і поняття
PPTX
Дебетові системи електронних платежів
PPTX
Тема 15 Банерна реклама
PPTX
Тема 3 (2) Основні принципи функціонування та роботи систем електронної комерції
PPTX
Тема 14 Пошукова оптимізація. SEO оптимізація
PPTX
Тема № 12. Дебетові системи електронних платежів
PPTX
Тема 5 Системи електронної комерції B2C
PPTX
Тема 7 (2) Послуги в електронній комерції
PPTX
Тема 18 Методи аналізу ефективності інтернет реклами
Етикет службового листування
Оцінка трудомісткості і термінів проекту
5 Управління ризиками (2016)
Л2 Управління проектами. Визначення та концепції
Л1 Введення в програмну інженерію
Ініціація проекту
4 Планування проекту (2018)
Введення в програмну інженерію. Моделі розробки проектів
Відеоскрайбінг
3D графіка
Основи графічного дизайну
Тема 1 Основні терміни і поняття
Дебетові системи електронних платежів
Тема 15 Банерна реклама
Тема 3 (2) Основні принципи функціонування та роботи систем електронної комерції
Тема 14 Пошукова оптимізація. SEO оптимізація
Тема № 12. Дебетові системи електронних платежів
Тема 5 Системи електронної комерції B2C
Тема 7 (2) Послуги в електронній комерції
Тема 18 Методи аналізу ефективності інтернет реклами

"Лавриненко Ярослав" HPC GPU CUDA

  • 1. ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ КЛАСТЕРА НА ОСНОВЕ GPU Лавриненко Ярослав Сергеевич ученик 11-го класса Черкасский физико-математический лицей Богатырёв Александр Олегович Черкасского национального университета имени Богдана Хмельницкого Кандидат физико-математических наук Черкассы 2011
  • 2. ЦЕЛЬ РАБОТЫ Рассмотреть графические ускорители и их использование для решения неграфических задач Используя комбинирование технологий MPI та OpenCL создать параллельные реализации: Дискретного косинус преобразования ( DCT – discrete cosine transformation) Метода внедренного атома ( EAM – embedded atom method) Определить ускорение получаемое при использовании графических ускорителей та их кластеров
  • 3. ГРАФИЧЕСКИЙ ПРОЦЕССОР (GPU) GPU – многопроцессорная система SIMD архитектуры Архитектура nVidia Tesla 10
  • 4. ТЕКСТУРНО-ПРОЦЕССОРНЫЙ КЛАСТЕР (TPC) Мультипроцессор nVidia Tesla 10
  • 5. ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ Программирование графических ускорителей требует использования специальных языков CUDA (Compute Unified Device Architecture) – система библиотек и расширений для программирования GPU , производимых nVidia начиная с GeForce 8800 . OpenCL (Open Computing Language) – фреймворк для написания компьютерных программ, связанных с параллельными вычислениями на различных графических и центральных процессорах.
  • 6. ПРОГРАМНАЯ МОДЕЛЬ SIMT архитектура Исходная задача разбивается на подзадачи решаемые параллельно Каждая подзадача решается множеством нитей взаимодействующих между собой Каждый потоковый мультипроцессор выполняет большое число разных нитей Нити разбиваются на warp` ы (по 32 нити). Потоковый мультипроцессор управляет выполнением warp` ов Нити в warp` е выполняются физически параллельно Большое число warp` ов покрывает латентность
  • 7. ВЫЧИСЛИТЕЛЬНЫЕ КЛАСТЕРЫ Вычислительный кластер – это MIMD-система состоящая из множества отдельных компьютеров объединенных единой коммуникационной средой. MPI ( Message Passing Interface ) – программный интерфейс позволяющий обмениваться сообщениями между процессами что выполняют одну задачу
  • 8. КЛАСТЕРЫ НА БАЗЕ GPU Высокая продуктивность при малых энергетических и экономических затратах Для программирования используются связки технологий MPI + CUDA или MPI + OpenCL
  • 9. ДИСКРЕТНОЕ КОСИНУС ПРЕОБРАЗОВАНИЕ ( DCT) Разбиение изображения на блоки пикселей размером n*n и расчет коэффициентов DCT для каждого блока. 2. Обратное преобразование описывает уравнение: 3. Коэффициенты задаются функцией:
  • 10. ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ для GPU: Для каждого пиксела изображения создается отдельная нить, выполняемая на графическом процессоре Нити объединяются в группы 8х8 нитей в которых, рассчитываются коэффициенты DCT Нити используют быстродействующую Shared Memory графического ускорителя для хранения фрагментов изображения для кластера: Изображение разбивается на блоки большого размера и отправлялись на узлы кластера Каждый узел выполняет преобразование для своего фрагмента изображения
  • 11. Результаты Полученное укскорение GPU: nVidia GeForce GT 460, CPU: AMD Phenom II x6 10 90 T 2.8 Ггц
  • 12. Результаты Полученное укскорение 4 GPU: nVidia GeForce GT 240 , 4 CPU: AMD Athlon II x2 4800+
  • 13. МЕТОД ВНЕДРЕННОГО АТОМА EMBEDDED ATOM METHOD - EAM Является модификацией метода молекулярной динамики. Для расчета межатомного взаимодействия используется парный потенциал и локальная электронная плотность вокруг рассматриваемого атома В качестве парного потенциала использовался потенциал Ленарда-Джонса Для расчета положения и скорости использовался Leapfrog алгоритм
  • 14. ПАРАЛЛЕЛЬНАЯ РЕАЛИЗАЦИЯ для GPU : Для каждой частицы системы создается нить, исполняемая на графическом ускорителе На графическом ускорителе происходит построение списков Верле и расчет межатомного взаимодействия для кластера: Система разбивается на блоки, которые отправлялись на узлы кластера для дальнейшей обработки Соседние узлы, в случаи необходимости после каждой итерации, обмениваются данными
  • 15. Результаты (для одного ускорителя) Полученное ускорение GPU: nVidia GeForce GT 420M, CPU: Intel Core i5-460M 2.53 Ггц
  • 16. ВЫВОДЫ Рассмотрено графический ускоритель как устройство с массивно-параллельной архитектурой, технологии его программирования Создано параллельную версию дискретного косинус преобразования и метода внедренного атома для кластера на базе GPU Получено ускорение в 407 раз при использовании одного графического ускорителя и в 300 раз при использовании кластера графических ускорителей Ускорение в 2,5 раза было получено при моделировании методом внедренного атома
  • 17. СПИСОК ЛИТЕРАТУРЫ M. Griebel, S. Knapek, G. Zumbusch. Numerical Simulation in Molecular Dynamics. 2007. – 416, [1-10]c./[38] c. Rapaport. The Art Of Molecular Dynamics Simulation . Cambridge 2004. – 548, [1-7] c. NVIDIA CUDA Programming Guide. Ver 3.2. Червень 2010 — NVIDIA Corporation, 2010. А. В. Боресков, А. А. Харламов . Основы работы с технологией CUDA. - М .:ДМК Пресс, 2010. – 232 с. Introduction to OpenCL programming. Травень 2010 – Advanced Micro Devices Д. С эломон. Сжатие данных, изображений и звука. ЗАО «РИЦ «Техносфера», 2004 – 367 с.