Россия, г. Саранск |
Компиляция и запуск Microsoft High Performance Computing Server 2008
3.8. Дополнительное упражнение. Задача определения характеристик сети передачи данных
Особенностью разработки программ для кластерных систем является необходимость учитывать не только характеристики отдельных компьютеров (прежде всего это производительность процессора и скорость памяти), но и характеристики сети передачи данных между ними. Чаще всего эти характеристики используются для построения теоретических оценок времени работы алгоритмов, что позволяет предсказывать время работы программ в зависимости от размера входных данных. Получение характеристик сети - отдельная задача, решаемая запуском специальных тестовых программ на конкретном имеющемся оборудовании. Необходимость проведения тестов для каждого конкретного кластера объясняется тем, что данные, предоставляемые поставщиком аппаратного обеспечения, могут сильно отличаться в зависимости от используемого программного обеспечения, настроек кластера или особенностей взаимодействия оборудования разных моделей и изготовителей.
3.8.1. Описание характеристик, определяющих производительность сети
Основными характеристиками, определяющими производительность сети, являются латентность и пропускная способность. Латентностью (задержкой) называется время, затрачиваемое аппаратной и программной частью на обработку запроса отправки сетевого сообщения. То есть это время с момента поступления команды на пересылку информации до начала ее непосредственной передачи. Обычно латентность указывается в микросекундах ( мкс ).
Пропускной способностью сети называется количество информации, передаваемое между узлами сети за единицу времени. Обычно пропускная способность сети указывается в мегабайтах в секунду ( Мбайт/сек ) или мегабитах в секунду ( Мбит/сек ).
3.8.2. Общая характеристика алгоритма
Идея алгоритма определения характеристик сети, используемого в тестах данной работы, состоит в последовательной пересылке между 2 узлами сообщений различной длины, используя средства установленной реализации MPI, и измерения времени, затрачиваемого на пересылку. Имея эти данные, пропускную способность можно определить, поделив длину переданного сообщения на затраченное на передачу время. Для минимизации погрешности передачу повторяют N раз и усредняют результат. При этом оценка пропускной способности обычно увеличивается с ростом длины сообщения, стремясь к некоторому предельному значению. Обычно именно предельное значение (или значение, полученное при пересылке большого сообщения) целесообразно использовать как оценку пропускной способности.
За латентность обычно принимается время, затрачиваемое для пересылки сообщений нулевой длины.
В данной лабораторной работе рассматриваются 2 тестовые программы: Intel MPI Benchmark (IMB) и набор тестов, разработанный в НИВЦ МГУ.
3.8.3. Компиляция программы
Последнюю версию тестового пакета IMB в составе Intel Cluster Tools Вы можете скачать на сайте Intel по адресу http://www.intel.com/cd/software/products/asmo-na/eng/cluster/mpi/219848.htm . Для того, чтобы скомпилировать IMB для ОС Windows, Вам придется самостоятельно создать проект в Microsoft Visual Studio 2008 аналогично проектам, создание которых было описано в данной работе. Либо Вы можете воспользоваться заготовкой проекта, которая входит в состав лабораторной работы (папка IMB_2_3 ).
Скачать тесты НИВЦ МГУ можно по адресу http://parallel.ru/ftp/tests/mpi-bench-suite.zip . Для компиляции тестов в ОС Windows Вам также придется самостоятельно создать проект в Microsoft Visual Studio 2008, либо воспользоваться заготовкой проекта, входящей в состав лабораторной работы (папка MGU_tests ).
3.8.4. Выполнение программы
Тесты необходимо запускать на 2 узлах сети по одному процессу на каждом узле. Таким образом, для запуска тестов в HPC 2008 необходимо выполнить следующие действия:
- Откройте HPC Job Manager. Выполните команду меню Actions->Job Submission->New Job … Укажите имя задачи ( Job name ), имя шаблона ( Job template ) и другие настройки, при необходимости. Выберите в качестве ресурса задачи узел ( Node ). Минимальное и максимальное числа узлов укажите в 2. Перейдите на вкладку Task List.
- Добавьте задачу с именем IMB и командной строкой " mpiexec \\ws-2k-115-clust.ccam.cmc.unn.net\shared\IMB.exe " (замените на путь до исполняемого файла скомпилированного теста), введите минимальное и максимальное количества вычислительных ресурсов в 2. После сохранения задачи перейдите на вкладку Resource Selection для выбора узлов, на которых будет запущен тест.
- На вкладке Resource Selection поставьте флаг " Run this job only on nodes in the following list " и поставьте флажки около 2х узлов, на которых будет запущен тест. Нажмите кнопку Submit для постановки задания в очередь.
- Файлы, в которые был переправлен поток вывода, содержат результаты работы тестов. Важно отметить, что IMB проводит много различных тестов, но нас для получения характеристик сети интересует только первый из них, PingPong, так как он передает данные между двумя узлами сети используя блокирующие функции MPI_Send и MPI_Recv, что, вероятно, наилучшим образом подходит для оценки характеристик сети.
3.9. Контрольные вопросы
- Дайте определения терминам задание (job) и задача (task). В чем основные отличия?
- Какие основные настройки Microsoft Visual Studio 2005 необходимо произвести при компиляции параллельной программы для использования в среде MS MPI?
- В чем особенность запуска параллельных задач (скомпилированных для MS MPI) на кластере?
- Что такое параметрическое множество задач (parametric sweep)? Что такое поток задач (task flow)?
- Какие характеристики, определяющие производительность сети, Вы знаете? Дайте их определения.