Параллельные вычисления.ppt
- Количество слайдов: 29
Параллельные вычисления Выполнил: Лукьяненко И. А. , студент 1 курса магистратуры ФКН, ВГУ
Содержание Тенденции развития современных процессоров Существующие подходы для создания параллельных программ
Тенденции развития современных процессоров Поток В В П Поток или нить (поанглийски “thread”) – это легковесный процесс, имеющий с другими потоками общие ресурсы, включая общую оперативную память. П увеличили производительность процессора в 2 раза В П П В Время Поток 3 В Поток 2 Поток 1 В - В В вычисления В П П В Поток 4 В В П П В П - доступ к памяти П П П Chip Multi. Threading П Время
Тенденции развития современных процессоров Суперкомпьютер Jaguar Cray XT 5 -HE Opteron Six Core 2. 6 GHz 2 место в TOP 500 Пиковая производительность - 2331 TFlop/s Число ядер в системе — 224 162 Производительность на Linpack - 1759 TFlop/s (75. 4% от пиковой) Энергопотребление комплекса - 6950. 60 к. Вт Важным параметром становится – Power Efficency (Megaflops/watt) Как добиться максимальной производительности на Ватт => Chip Multi. Processing, многоядерность. Updrage: замена 4 -х ядерных процессоров AMD Opteron на 6 -ти ядерные процессоры AMD Opteron Результат: 2 -ое место в TOP 500 в июне 2009 - 1 -ое место в TOP 500 в ноябре 2009
Тенденции развития современных процессоров AMD Opteron серии 6100 (Magny. Cours) 6176 SE 12 ядер @ 2, 3 ГГц, 12 МБ L 3 Cache 6136 8 ядер @ 2, 4 ГГц, 12 МБ L 3 Cache встроенный контроллер памяти (4 канала памяти DDR 3) до 42. 7 GB/s 4 канала «точка-точка» с использованием Hyper. Transort 3. 0 до 25. 6 GB/s
Тенденции развития современных процессоров Intel Xeon серии 5600 (Nehalem) X 5680 6 ядер @ 3, 33 ГГц, 12 нитей, 12 МБ L 3 Cache X 5677 4 ядра @ 3, 46 ГГц, 8 нитей, 12 МБ L 3 Cache Intel® Turbo Boost Intel® Hyper-Threading Intel® Quick. Path Intel® Intelligent Power
Тенденции развития современных процессоров Intel Core i 7 980 X (Gulftown) 3, 33 ГГц 6 ядeр 12 потоков с технологией Intel Hyper-Threading 12 МБ кэш-памяти Intel Smart Cache встроенный контроллер памяти (3 канала памяти DDR 3 1066 МГц ) технология Intel Quick. Path Interconnect
Тенденции развития современных процессоров Intel Itanium 9350 (Tukwila) 1, 73 ГГц 4 ядeр 8 потоков с технологией Intel Hyper-Threading 24 МБ L 3 кэш-памяти технология Intel Quick. Path Interconnect технология Intel Turbo Boost
Тенденции развития современных процессоров IBM Power 7 3, 5 - 4, 0 ГГц 8 ядер x 4 нити Simultaneuos Multi. Threading L 1 64 КБ L 2 256 КБ L 3 32 МБ встроенный контроллер памяти
Тенденции развития современных процессоров Темпы уменьшения латентности памяти гораздо ниже темпов ускорения процессоров + прогресс в технологии изготовления кристаллов => CMT (Chip Multi. Threading) Опережающий рост потребления энергии при росте тактовой частоты + прогресс в технологии изготовления кристаллов => CMP (Chip Multi. Processing, многоядерность) И то и другое требует более глубокого распараллеливания для эффективного использования аппаратуры
Существующие подходы для создания параллельных программ Автоматическое / автоматизированное распараллеливание Библиотеки нитей • • Библиотеки передачи сообщений • Win 32 API POSIX MPI Open. MP
История MPI 1992 г. Начало работ над стандартом библиотеки передачи сообщений (Oak Ridge National Laboratory, Rice University). Ноябрь 1992 г. Объявление рабочего варианта стандарта MPI 1. Ноябрь 1993 г. Обсуждение стандарта на конференции Supercomputing'93. 5 мая 1994 г. Окончательный вариант стандарта MPI 1. 0. 12 Июня 1995 г. Новая версия стандарта - MPI 1. 1. 18 Июля 1997 г. Опубликован стандарт MPI-2: Extensions to the Message-Passing Interface. Параллельные вычисления ННГУ, Н. Новгород, 2001 4. 12
Вычисление числа 1 (1+x ) 4. 0 2 dx = F(x) = 4. 0/(1+x 2) 0 Мы можем аппроксимировать интеграл как сумму прямоугольников: N 2. 0 F(x ) x i i=0 0. 0 X 1. 0 Где каждый прямоугольник имеет ширину x и высоту F(xi) в середине интервала
Вычисление числа . Последовательная программа. #include
int main (int" src="https://present5.com/presentation/3/11092859_152412603.pdf-img/11092859_152412603.pdf-15.jpg" alt="Вычисление числа с использованием MPI #include "mpi. h" #include
Вычисление числа с использованием MPI for (i = myid + 1; i <= n; i += numprocs) { x = h * ((double)i - 0. 5); sum += (4. 0 / (1. 0 + x*x)); } mypi = h * sum; MPI_Reduce(&mypi, &pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD); if (myid == 0) printf("pi is approximately %. 16 f”, pi); MPI_Finalize(); return 0; }
Достоинства использования Open. MP вместо MPI для многоядерных процессоров Возможность инкрементального распараллеливания Упрощение программирования и эффективность на нерегулярных вычислениях, проводимых над общими данными Ликвидация дублирования данных в памяти, свойственного MPIпрограммам Объем памяти пропорционален быстродействию процессора. В последние годы увеличение производительности процессора достигается увеличением числа ядер, при этом частота каждого ядра не увеличивается. Наблюдается тенденция к сокращению объема оперативной памяти, приходящейся на одно ядро. Присущая Open. MP экономия памяти становится очень важна. Наличие локальных и/или разделяемых ядрами КЭШей будут учитываться при оптимизации Open. MP-программ компиляторами, что не могут делать компиляторы с последовательных языков для MPI-процессов. 17 из 149
Достоинства использования Open. MP вместо MPI для многоядерных процессоров Для получения программы, способной работать на кластере, необходимо распределить данные и вычисления между процессорами. После распределения данных требуется организовать межпроцессорные взаимодействия. В данном случае - для доступа к удаленным данным используются “теневые” грани, которые являются источником дублирования данных.
История Open. MP 1998 2002 2005 Open. MP C/C++ 1. 0 Open. MP C/C++ 2. 0 Open. MP F/C/C++ 2. 5 Open. MP Fortran 1. 0 Open. MP Fortran 1. 1 1997 1999 Open. MP Fortran 2. 0 2000 2010 Open. MP F/C/C++ 3. 0
Open. MP Architecture Review Board AMD Cray Fujitsu HP IBM Intel NEC The Portland Group, Inc. SGI Sun Microsoft ASC/LLNL c. OMPunity EPCC NASA RWTH Aachen University
Cимметричные мультипроцессорные системы (SMP) Все процессоры имеют доступ к любой точке памяти с одинаковой скоростью. Процессоры подключены к памяти либо с помощью общей шины, либо с помощью crossbar-коммутатора. Аппаратно поддерживается когерентность кэшей.
Cимметричные мультипроцессорные системы (SMP) Fujitsu SPARC Enterprise M 9000 SPARC 64 VII 2, 88 / 2, 52 GHz 64 процессоров, 256 ядер, 512 нитей (Simultaneous Multi Threading) 4 TB памяти OS Solaris 10 http: //www. fujitsu. com/sparcenterprise/
Системы с неоднородным доступом к памяти (NUMA) Система состоит из однородных базовых модулей (плат), состоящих из небольшого числа процессоров и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство. Доступ к локальной памяти в несколько раз быстрее, чем к удаленной.
Системы с неоднородным доступом к памяти (NUMA) SGI Altix UV (Ultra. Violoet) 1000 256 Intel® Xeon® quad-, six- or eight-core 7500 series (2048 cores) 16 TB памяти Interconnect Speed 15 ГБ/с, 1 мкс http: //www. sgi. com/products/servers/altix/uv/
Выполнение Open. MP-программы Fork-Join параллелизм: Главная (master) нить порождает группу (team) нитей по мере небходимости. Параллелизм добавляется инкрементально. Параллельные области
Модель памяти в Open. MP 001 Нить
Тесты NAS Analyzing the Effect of Different Programming Models Upon Performance and Memory Usage on Cray XT 5 Platforms http: //www. nersc. gov/news/reports/technical/Cug 2010 Shan. pdf
Литература http: //www. openmp. org http: //www. compunity. org Антонов А. С. Параллельное программирование с использованием технологии Open. MP: Учебное пособие. -М. : Изд-во МГУ, 2009. http: //parallel. ru/info/parallel/openmp/Open. MP. p df
Спасибо за внимание!


