1 / 28

Лекция 4

Лекция 4 . Использование многопроцессорной вычислительной техники с распределенной памятью при решении задач локальных атмосферных процессов и переноса примеси. План лекции. Назначение и архитектура ВВС Закон Амдаля Стандарты передачи сообщений. Введение в библиотеку MPI

oliana
Download Presentation

Лекция 4

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция 4 Использование многопроцессорной вычислительной техники с распределенной памятью при решении задач локальных атмосферных процессов и переноса примеси

  2. План лекции • Назначение и архитектура ВВС • Закон Амдаля • Стандарты передачи сообщений. Введение в библиотеку MPI • Работа с параллельными программами в ОС UNIX • Способы построения параллельных программ • Решение 3D уравнения диффузии на МВС с распределенной памятью • Реализация ЛСДМ на МВС с распределенной памятью

  3. С помощью высокопроизводительных вычислительных средств решают задачи следующих научных и научно-технических направлений: • предсказание погоды, климата и глобальных изменений в атмосфере • генетика человека • гидрогазодинамика и теплоперенос • прогноз катастрофических явлений в окружающей среде • разведка нефти и газа • исследование сверхпроводимости • распознавание изображений • защита информации

  4. Суперкомпьютеры делятся: • Векторно-конвейерные • Массивно-параллельные компьютеры с распределенной памятью • Параллельные компьютеры с общей памятью • Кластеры

  5. TOP 500 (21 редакция, июнь 2003)http://www.top500.org • (1) NEC Earth Simulator (5120 Procs), Rpeak=40960 Gflops, Rmax=35860 Gflops • (2) Hewlett-Packard (8192 Procs), Rpeak=20480 Gflops, Rmax=13880 Gflops • (3) Linux Networkx (2304 Procs), Rpeak=11060 Gflops, Rmax=7634 Gflops • … (95) MVS1000M (768 Procs) Rpeak=1024 Gflops, Rmax=735 Gflops • … (357) Hewlett-Packard (192 Procs), Rpeak=576 Gflops, Rmax=345 Gflops (Sberbank RF)

  6. Earth Simulator • ES – параллельная векторная суперкомпьютерная система с распределенной памятью. • ES состоит из 640 процессорных узлов. • Каждый узел – система с разделяемой памятью, состоящая из 8 векторных арифметических процессоров, 16 Гб ОЗУ • Пиковая производительность каждого арифметического процессора – 8Гфлопс. • ES: 5120 процессоров и 10Тб памяти Процессорный узел ES

  7. Вычислительный кластер ТГУ • 9 двухпроцессорных узлов с локальной памятью • Процессоры – Intel Pentium III, 650 MHz • Сервер – 512 Mb RAM, 2x18 Gb HDD • Вычислительные узлы – 256 Mb RAM • Сеть – 100 Mбит Fast Ethernet • ОС Unix FreeBSD 4.2 • Кластерный пакет – LAM MPI 6.3.2 для организации параллельных вычислений • Пиковая производительность – 11.7 Gflops • Производительность на тесте Linpack – 5.5 Gflops Вычислительный кластер ТГУ, http://cluster.tsu.ru

  8. Вычислительный кластер ИОА • 10 двухпроцессорных узлов с локальной памятью • Процессоры – Intel Pentium III, 1 GHz • Сервер – 1 Gb RAM, 3x18 Gb HDD • Вычислительные узлы – 1 Gb RAM • Сеть – Gigabit Ethernet • ОС Linix RadHat 7.1 • Кластерный пакет – MPICH • Пиковая производительность – 20 Gflops • Производительность на тесте Linpack – 11.5 Gflops Вычислительный кластер ИОА http://cluster.iao.ru

  9. Закон Амдаля • Будет ли созданная параллельная программа работать быстрее, чем ее последовательный вариант? • Соизмерим ли полученный выигрыш во времени, который дает параллельная программа, с затратами на программирование?

  10. Закон Амдаля Sp = t1/tp - ускорение параллельной программы;  - доля операций, которые выполняются сугубо последовательно; p - число процессоров

  11. Стандарты передачи сообщений. Введение в MPI Наиболее общим подходом при создании параллельных программ является применение библиотеки передачи сообщений, где процессы используют обращения к библиотеке MPI (Message Passing Interface), чтобы обмениваться сообщениями с другими процессами. MPI это стандарт передачи сообщений, который разрабатывался группой из 60 человек из 40 организаций США и Европы. MPI пригоден для широкого разнообразия платформ, начиная с массивно-параллельных систем (IBM SP2, Cray T3D, Intel Paragon) и заканчивая сетями рабочих станций (Sun4, Dec Alpha).

  12. Стандарт MPI включает 129 функций • Инициализации и закрытия параллельной части приложения • Приема и передачи сообщений между отдельными процессами • Осуществления коллективного взаимодействия процессов • Работы с группами процессов и коммуникаторами • Определения производных (составных) типов данных • Создания виртуальных топологий для обеспечения более простого взаимодействия процессов

  13. Процесс – исполнение программы одним процессорным элементом, на котором загружен MPI. Процессы объединяются в группы с единой областью связи, внутри которой каждый процесс имеет свой уникальный номер в диапазоне от 0 до N-1, где N – количество процессов в группе. Для взаимодействия процессов в группе используется коммуникатор, который реализует передачу сообщений (обмен данными) между процессами и их синхронизацию. Основные понятия MPI

  14. Методология MPI Обычно MPI-программа для многопроцессорных вычислительных систем пишется на языке С или Фортран с использованием коммуникационных функций библиотеки MPI. Запуск на выполнение MPI-программы представляет собой одновременный запуск совокупности параллельных процессов, количество которых определяет пользователь при запуске. Параллельная программа начинается с инициализации MPI. При этом все активированные процессы объединяются в группу с коммуникатором, который имеет имя MPI_COMM_WORLD. Далее средствами MPI в программу передается число активированных процессов, каждому из них присваивается свой номер. Каждый процесс, как правило, отвечает за выполнение своей ветви параллельной программы

  15. Компиляция и запуск MPI-программ • Компиляция: mpicc – o myexecutable mysource.c mpif77 –o myexecutable mysource.f • Запуск на счет:mpirun –np 3 myexecutable

  16. MPI-программа • Заголовочный файл (mpi.h или mpif.h) • Вызов п/п MPI_INIT для инициализации MPI • Вызов п/п MPI_COMM_SIZE, чтобы определить число (size) активированных процессов • Вызов п/п MPI_COMM_RANK, чтобы определить номер (rank) каждого активированного процесса • По номеру rank осуществляется создание ветвей параллельной программы • Взаимодействие процессов производится путем передачи сообщений между отдельными процессами с помощью п/п MPI_SEND и MPI_RECV • Вызов п/п MPI_FINALIZE для завершения параллельной части программы

  17. MPI-программа «Hello World» Program hello include ‘mpif.h’ integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) character(12) message call MPI_INIT(ierror) call MPI_COMM_SIZE(MPI_COMM_WORLD,size,ierror) call MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierror) tag=7 if(rank.eq.0) then message=‘Hello world’ do i=1,size-1 call MPI_SEND(message,12,MPI_CHARACTER,i,tag, MPI_COMM_WORLD,ierror) end do else call MPI_RECV(message,12,MPI_CHARACTER,0, tag,MPI_COMM_WORLD,status,ierror) end if print*, ‘node’,rank,’:’,message call MPI_FINALIZE(ierror) end node 1 : Hello world node 0 : Hello world node 2 : Hello world mpirun –np 3 hello.out

  18. Способы построения параллельных программ • Распараллеливание по данным – геометрическое решение • Распараллеливание по процессам – коллективное решение

  19. Геометрическое решение. Применение для сеточных уравнений . Sc – источники выбросов и осаждение примеси Rc – химические реакции

  20. Геометрическое решение Явно-неявная разностная схема

  21. Геометрическое решение • MPI_SENDRECV – для обмена приграничными данными между соседними процессами • MPI_BCAST, MPI_SCATTER – для распределения исходных данных между процессами • MPI_GATHER – для «сборки» полученных результатов перед завершением программы

  22. Геометрическое решение. Результаты На вычислительном кластере ТГУ (сетка 100х100х50) На вычислительном кластере ИОА расчет переноса четырех компонентов примеси (пыль, CO, NO2, SO2) в течение двух суток занимает не более трех часов

  23. Геометрическое решение Неявная разностная схема Метод неполной факторизации Н.И.Булеева

  24. Коллективное решение. Применение ЛДСМ N104 m=N/p

  25. Коллективное решение • MPI_BCAST и MPI_SCATTER для передачи информации о исходных данных всем процессам • MPI_REDUCE для суммирования значений концентрации в ячейках, рассчитанных на всех процессах

  26. Датчик случайных чисел для параллельных вычислений -  SPRNG (Scalable, Portable, Random Number Generators) –библиотека генераторов псевдослучайных чисел для высокопроизводительных параллельных вычислительных систем. SPRNG широко используется при применении параллельных методов Монте-Карло для решения математических задач. Структура реализации этих методов позволяет получить практически 100% эффективность параллельного вычислительного алгоритма.

  27. Коллективное решение

More Related