MPI и OpenMP (по Бахтину) (Лекции)
Описание файла
Файл "MPI и OpenMP (по Бахтину)" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Гибридная модель параллельного программированияMPI/OpenMPБахтин Владимир АлександровичАссистент кафедры системного программированнияфакультета ВМК, МГУ им. М. В. ЛомоносоваК.ф.-м.н., зав. сектором Института прикладнойматематики им М.В.Келдыша РАНМГУ им. М.В. Ломоносова, Москва, 2011 г.Содержание Современные направления развития параллельныхвычислительных систем OpenMP – модель параллелизма по управлению Гибридная модель MPI/OpenMP21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP2 из 81Тенденции развития современных процессоровВ течение нескольких десятилетий развитие ЭВМ сопровождалосьудвоением их быстродействия каждые 1.5-2 года. Это обеспечивалось иповышением тактовой частоты и совершенствованием архитектуры(параллельное и конвейерное выполнение команд).Узким местом стала оперативная память.
Знаменитый закон Мура, такхорошо работающий для процессоров, совершенно не применим дляпамяти, где скорости доступа удваиваются в лучшем случае каждые 5-6лет.Совершенствовались системы кэш-памяти, увеличивался объем,усложнялись алгоритмы ее использования.Для процессора Intel Itanium:Latency to L1: 1-2 cyclesLatency to L2: 5 - 7 cyclesLatency to L3: 12 - 21 cyclesLatency to memory: 180 – 225 cyclesВажным параметром становится - GUPS (Giga Updates Per Second)21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP3 из 81Тенденции развития современных процессоровПотокВВПВППувеличили производительность процессора в 2 разаПотокВППВПВПоток или нить (поанглийски ―thread‖) – этолегковесный процесс,имеющий с другимипотоками общие ресурсы,включая общуюоперативную память.ВремяВПоток 4ВПоток 3ВПоток 2Поток 1В21 октябряМосква, 2011В- вычисленияВПВПВПВППВПВППВПВПППChipMultiThreadingП- доступ к памятиГибридная модель программирования MPI/OpenMPВремя4 из 81Тенденции развития современных процессоровСуперкомпьютер Jaguar Cray XT5-HE Opteron Six Core 2.6 GHz Пиковая производительность - 2331 TFlop/s Число ядер в системе — 224 162 Производительность на Linpack - 1759 TFlop/s (75.4% от пиковой) Энергопотребление комплекса - 6950.60 кВтВажным параметром становится – Power Efficency (Megaflops/watt)Как добиться максимальной производительности на Ватт => ChipMultiProcessing, многоядерность.21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP5 из 81Тенденции развития современных процессоровAMD Opteron серии 6100 (MagnyCours)6176 SE 12 ядер @ 2,3 ГГц, 12 МБL3 Cache6136 8 ядер @ 2,4 ГГц, 12 МБ L3Cacheвстроенный контроллер памяти (4канала памяти DDR3) до 42.7GB/s4 канала «точка-точка» сиспользованием HyperTransort 3.0до 25.6 GB/s21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP6 из 81Тенденции развития современных процессоровIntel Xeon серии 5600 (Nehalem)X5680 6 ядер @ 3,33 ГГц, 12 нитей, 12 МБ L3 CacheX5677 4 ядра @ 3,46 ГГц, 8 нитей, 12 МБ L3 CacheIntel® Turbo BoostIntel® Hyper-ThreadingIntel® QuickPath21 октябряМосква, 2011Intel® Intelligent PowerГибридная модель программирования MPI/OpenMP7 из 81Тенденции развития современных процессоровIntel Core i7 980X (Gulftown) 3,33 ГГц 6 ядeр 12 потоков с технологией Intel Hyper-Threading 12 МБ кэш-памяти Intel Smart Cache встроенный контроллер памяти (3 канала памятиDDR3 1066 МГц ) технология Intel QuickPath Interconnect21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP8 из 81Тенденции развития современных процессоровIntel Itanium 9350 (Tukwila) 1,73 ГГц 4 ядeр 8 потоков с технологией Intel Hyper-Threading 24 МБ L3 кэш-памяти технология Intel QuickPath Interconnect технология Intel Turbo Boost21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP9 из 81Тенденции развития современных процессоровIBM Power73,5 - 4,0 ГГц 8 ядер x 4 нити SimultaneuosMultiThreading L1 64КБ L2 256 КБ L3 32 МБ встроенный контроллер памяти21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP10 из 81Top 50021 октябряМосква, 2011Гибридная модель программирования MPI/OpenMPТенденции развития современных процессоров Темпы уменьшения латентности памяти гораздо ниже темповускорения процессоров + прогресс в технологии изготовлениякристаллов => CMT (Chip MultiThreading) Опережающий рост потребления энергии при росте тактовой частоты+ прогресс в технологии изготовления кристаллов => CMP (ChipMultiProcessing, многоядерность) И то и другое требует более глубокого распараллеливания дляэффективного использования аппаратуры21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP12 из 81Содержание Современные направления развития параллельныхвычислительных систем OpenMP – модель параллелизма по управлению Гибридная модель MPI/OpenMP21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP13 из 81История OpenMP19982002OpenMPC/C++ 1.0OpenMPC/C++ 2.0OpenMPFortran 1.0199720052008OpenMPF/C/C++ 2.5OpenMPF/C/C++ 3.02011OpenMPF/C/C++ 3.1OpenMPFortran 1.11999OpenMPFortran 2.0200021 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP14 из 81OpenMP Architecture Review BoardAMD Cray Fujitsu HP IBM Intel NEC The Portland Group, Inc. Oracle Corporation Microsoft Texas Instrument CAPS-Enterprise NVIDIA21 октябряМосква, 2011ANL ASC/LLNL cOMPunity EPCC LANL NASA RWTH Aachen University Texas Advanced ComputingCenterГибридная модель программирования MPI/OpenMP15 из 81Гибридная вычислительная система K-100…Node 121 октябряМосква, 2011Node 64Гибридная модель программирования MPI/OpenMP16 из 81Компиляторы, поддеживающие OpenMPOpenMP 3.0: Intel 11.0: Linux, Windows and MacOS Sun Studio Express 11/08: Linux and Solaris PGI 8.0: Linux and Windows IBM 10.1: Linux and AIX GNU gcc (4.4.0)Предыдущие версии OpenMP: Absoft Pro FortranMP Lahey/Fujitsu Fortran 95 PathScale HP Microsoft Visual Studio 2008 C++21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP17 из 81Обзор основных возможностей OpenMPC$OMP FLUSHC$OMP THREADPRIVATE(/ABC/)#pragma omp criticalCALL CALL OMP_SET_NUM_THREADS(10)C$OMP PARALLEL DO SHARED(A,B,C)CALL OMP_INIT_LOCK (LCK)C$OMP SINGLE PRIVATE(X)CALL OMP_TEST_LOCK(LCK)C$OMP ATOMICSETENV OMP_SCHEDULE “STATIC,4”C$OMP PARALLEL DO ORDERED PRIVATE (A, B, C)C$OMP PARALLELREDUCTION (+: A, B)#pragma omp parallel for private(a, b)C$OMP PARALLEL COPYIN(/blk/)C$OMP ORDEREDC$OMP SECTIONSC$OMP BARRIERC$OMP DO LASTPRIVATE(XX)nthrds = OMP_GET_NUM_PROCS()21 октябряМосква, 2011C$OMP MASTERomp_set_lock(lck)Гибридная модель программирования MPI/OpenMP18 из 81Содержание Современные направления развития параллельныхвычислительных систем OpenMP – модель параллелизма по управлению Гибридная модель MPI/OpenMP21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP19 из 81Гибридная модель MPI/OpenMPДанныеВычисленияMPICoreДанныеДанныеВычисленияВычисленияOpenMPOpenMPCore … CoreУзел 021 октябряМосква, 2011CoreCore … CoreУзел NГибридная модель программирования MPI/OpenMP20 из 81Достоинства использования в узлахOpenMP вместо MPI Возможность инкрементального распараллеливания. Упрощение программирования и эффективность нанерегулярных вычислениях, проводимых над общимиданными. Ликвидация или сокращение дублирования данных впамяти, свойственного MPI-программам. Дополнительный уровень параллелизма на OpenMPреализовать проще, чем на MPI.21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP21 из 81Преимущества OpenMP длямногоядерных процессоров Объемы оперативной памяти и кэш памяти,приходящиеся в среднем на одно ядро, будутсокращаться – присущая OpenMP экономия памятистановится очень важна. Ядра используют общую Кэш-память, что требуетсяучитывать при оптимизации программы.21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP22 из 81National Institute for ComputationalSciences.
University of TennesseeСуперкомпьютер Kraken Cray XT5-HE Opteron Six Core 2.6 GHz11 место в TOP 500http://nics.tennessee.eduПиковая производительность - 1028.85 TFlop/sЧисло процессоров/ядер в системе — 16 288 / 98 928Производительность на Linpack - 831.7 TFlop/s (81% от пиковой)Updrage: замена 4-х ядерных процессоров AMD Opteron на 6-ти ядерныепроцессоры AMD OpteronРезультат: 6-ое место в TOP500 в июне 2009 - 3-ье место в TOP500 вноябре 200921 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP23 из 81National Institute for ComputationalSciences.
University of Tennessee21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP24 из 81Межведомственный СуперкомпьютерныйЦентр Российской Академии НаукСуперкомпьютер MVS-100K76 место в TOP 500http://www.jscc.ru/Пиковая производительность - 140.16 TFlop/sЧисло процессоров/ядер в системе — 2 920/11 680Производительность на Linpack - 107.45 TFlop/s (76.7% от пиковой)Updrage: замена 2-х ядерных процессоров Intel Xeon 53xx на 4-х ядерныепроцессоры Intel Xeon 54xxРезультат: 57-ое место в TOP500 в июне 2008 - 36-ое место в TOP500 вноябре 200821 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP25 из 81Oak Ridge National LaboratoryСуперкомпьютер Jaguar Cray XT5-HE Opteron Six Core 2.6 GHz3 место в TOP 500http://computing.ornl.govПиковая производительность - 2331 TFlop/sЧисло ядер в системе — 224 162Производительность на Linpack - 1759 TFlop/s (75.4% от пиковой)Updrage: замена 4-х ядерных процессоров AMD Opteron на 6-ти ядерныепроцессоры AMD OpteronРезультат: 2-ое место в TOP500 в июне 2009 - 1-ое место в TOP500 вноябре 200921 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP26 из 81Oak Ridge National LaboratoryJaguar Scheduling PolicyMINCoresMAXCoresMAXIMUMWALL-TIME(HOURS)120 00021 октябряМосква, 20112440 008119 99924500440 0071220045003612 0032Гибридная модель программирования MPI/OpenMP27 из 81Cray MPI: параметры по умолчаниюMPI Environment Variable Name 1,000 PEs10,000 PEs50,000 PEs100,000 PesMPICH_MAX_SHORT_MSG_SIZE(This size determines whetherthe message uses the Eager orRandervous protocol)128,000Bytes20,48040962048MPICH_UNEX_BUFFER_SIZE(The buffer allocated to hold theunexpected Eager data)60 MB60 MB150 MB260 MBMPICH_PTL_UNEX_EVENTS20,480(Portals generates two events for eventseach unexpected messagereceived)22,000110,000220,000MPICH_PTL_OTHER_EVENTS(Portals send-side and expectedevents)250012,50025,00021 октябряМосква, 20112048eventsГибридная модель программирования MPI/OpenMP28 из 81Тесты NAS21 октябряМосква, 2011BT3D Навье-Стокс, метод переменных направленийCGОценка наибольшего собственного значениясимметричной разреженной матрицыEPГенерация пар случайных чисел ГауссаFTISLUБыстрое преобразование Фурье, 3D спектральныйметодПараллельная сортировка3D Навье-Стокс, метод верхней релаксацииMG3D уравнение Пуассона, метод MultigridSP3D Навье-Стокс, Beam-Warning approximatefactorizationГибридная модель программирования MPI/OpenMP29 из 81Тесты NASAnalyzing the Effect of Different Programming Models Upon Performanceand Memory Usage on Cray XT5 Platformshttps://www.nersc.gov/assets/NERSC-Staff-Publications/2010/Cug2010Shan.pdf21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP30 из 81Тесты NASAnalyzing the Effect of Different Programming Models Upon Performanceand Memory Usage on Cray XT5 Platformshttps://www.nersc.gov/assets/NERSC-Staff-Publications/2010/Cug2010Shan.pdf21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP31 из 81Тесты NASAnalyzing the Effect of Different Programming Models Upon Performanceand Memory Usage on Cray XT5 Platformshttps://www.nersc.gov/assets/NERSC-Staff-Publications/2010/Cug2010Shan.pdf21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP32 из 81Тесты NAS (класс B)9080Время выполнения, в сек706050403020100MPIOpenMPCG55,9152,02EP5,276,92FT36,8419,14IS2,11,13LU82,2764,82MG7,818,8Суперкомпьютер MVS-100Kmvapich 1.2Intel compiler, v.
10.1, -O321 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP33 из 81Тесты NAS (класс B)70Время выполнения, в сек6050403020100MPIOpenMPCG47,9642,48EP5,085,08FT31,615,44IS1,931,04LU63,4547,44MG5,135,14Суперкомпьютер СКИФ-МГУ «Чебышев»mvapich 1.2Intel compiler, v. 11.1, -O321 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP34 из 81Алгоритм Якоби. Последовательная версия/* Jacobi program */#include <stdio.h>#define L 1000#define ITMAX 100int i,j,it;double A[L][L];double B[L][L];int main(int an, char **as){printf("JAC STARTED\n");for(i=0;i<=L-1;i++)for(j=0;j<=L-1;j++){A[i][j]=0.;B[i][j]=1.+i+j;}21 октябряМосква, 2011Гибридная модель программирования MPI/OpenMP35 из 81Алгоритм Якоби.