WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 24 |

• на рабочих местах разработчиков установлены библиотеки: для платформы Windows – Plapack 3.0 (см. www.cs.utexas.edu/users/ plapack) и MKL (см. developer.intel.com/software/products/mkl/ index.htm); для платформы Unix – ScaLAPACK (Scalable LAPACK – http://www.netlib.org/scalapack) • в качестве средств передачи данных между процессорами установлены две реализации стандарта MPI: для платформы Windows – Argonne MPICH (www-unix.mcs.anl.gov/mpi/MPICH/) и MP-MPICH (www.lfbs.rwth-aachen.de/~joachim/MP-MPICH.html);

для платформы Unix – Argonne MPICH (www-unix.mcs.anl.gov/ mpi/MPICH/);

• в опытной эксплуатации находится система разработки параллельных программ DVM (см. www.keldysh.ru/dvm/).

Оптимизация системного программного обеспечения для организации параллельных вычислений Поддержка стандарта MPI (см. www.mpi-forum.org) обеспечивается при помощи создания программных библиотек, и в настоящий момент известно достаточно большое число реализаций MPI. Эти разработки, обеспечивая поддержку единого стандарта, различаются по способам построения и могут быть ориентированы на различные операционные системы и аппаратные платформы. Как результат, при организации параллельных вычислений важным вопросом является выбор эффективной реализации MPI, наиболее соответствующей условиям применяемой вычислительной системы. При этом, если данный вопрос для операционной системы Unix практически разрешен в пользу библиотеки MPICH (см., например, wwwunix.mcs.anl.gov/mpi/MPICH/), то для многопроцессорных (кластерных) систем, построенных на основе операционной платформы Microsoft Windows, проблема выбора эффективного варианта MPI попрежнему имеет высокую значимость и актуальность.

Выполнение вычислительных экспериментов осуществлялось для определения пропускной способности и времени задержки (латентности) передачи данных коммуникационной среды кластера Нижегородского университета. Данные показатели являются одними из наиболее важных характеристик параллельных вычислительных систем (см., например, Андреев, Воеводин).

В рамках предусмотренных работ были выполнены три группы экспериментов:

1. Эксперименты для сравнения эффективности двух наиболее применяемых в системах под управлением ОС семейства Microsoft Windows свободно-распространяемых реализаций библиотек MPI: Argonne National Lab MPICH (www-unix.mcs.anl.gov/mpi/MPICH/) и RWTH Aachen MP-MPICH (www.lfbs.rwth-aachen.de/~joachim/MPMPICH.html) с целью выбора наилучшего варианта.

2. Эксперименты для сравнения наилучшей реализации MPI для Windows (MP-MPICH) с широко распространенной реализацией MPI для Unix Argonne National Lab MPICH.

3. Cерия экспериментов для сравнения Argonne National Lab MPICH и RWTH Aachen MP-MPICH для кластерных систем различных конфигураций.

Для примера результатов выполненных экспериментов в таблице приведены оценки величины латентности (задержки) перед началом передачи данных для библиотек MPICH и MP-MPICH под управлением ОС Windows.

Таблица 1.

Оценки величины латентности Тип взаимодействующих Латентность (мкс) узлов MPICH MP- MPICH Процессор двухпроцессорного сервера и рабочая станция кла162.217 109.стера, соединенных сетью Fast Ethernet Результаты приведенных экспериментов показывают, что время задержки начала передачи сообщений для варианта MPICH выше (по крайней мере, на 50%) по сравнению с реализацией MP-MPICH.

Результаты экспериментов для оценивания пропускной способности (скорости передачи) данных между процессором двухпроцессорного сервера кластера и рабочей станцией (сеть Fast Ethernet) представлены на рис. 1.

Таким образом, анализируя результаты проведенных экспериментов, можно сделать вывод о том, что библиотека MP-MPICH имеет очевидное преимущество перед библиотекой MPICH по таким важным параметрам, как латентность и пропускная способность.

Рис. 1. Скорость передачи данных между процессором двухпроцессорного сервера кластера и рабочей станцией, которые соединены сетью Fast Ethernet, для пакетов данных от 16 до 1024 байтов Результаты экспериментов для сравнения эффективности передачи данных для разных операционных систем (Windows и Linux) приводятся на рис. 2.

Оценка результатов экспериментов:

1. Обобщая результаты приведенных экспериментов для платформы Windows, в целом можно заключить, что использование реализации MP-MPICH обеспечивает большую скорость передачи данных по сравнению с вариантом библиотеки MPICH. Преимущество MPMPICH наиболее заметно при относительно небольших размерах пересылаемых пакетов данных при использовании сетей с высокой пропускной способностью (Gigabit Ethernet). Результаты экспериментов позволяют рекомендовать вариант библиотеки MP-MPICH в качестве системного программного обеспечения для организации параллельных вычислений в многопроцессорных (кластерных) системах, построенных на основе операционных платформ семейства Microsoft Windows.

Рис. 2. Скорость передачи данных между рабочими станциями кластера, соединенных сетью Fast Ethernet, для пакетов данных от 1024 до 2097152 байтов 2. Сравнение результатов для реализаций библиотек MPI для платформ Windows и Unix (Linux) показывает, что в случае обменов короткими сообщениями MPICH (Linux) обеспечивает более высокую скорость передачи данных, чем MP-MPICH (Windows). Реализация MPICH (Linux) обеспечивает также лучшие показатели по такому параметру, как латентность. Однако, при увеличении размера передаваемых пакетов, преимущество реализации MPICH (Linux) сходит на нет, и скорости передачи данных для обеих реализаций становятся практически одинаковыми.

Анализ эффективности параллельных вычислений с использованием библиотек численных методов Для оценки производительности кластерной системы использовался тест LINPACK, представляющий собой решение системы линейных уравнений методом LU-разложения. Тест LINPACK на сегодняшний день является признанным тестом производительности параллельных систем, по результатам этого теста составляется список Top(http://www.top500.org/ ) – список пятисот наиболее производительных систем в мире.



В данном разделе описываются результаты, полученные для теста LINPACK при его реализации с широким использованием двух библиотек параллельных вычислений PLAPACK (для ОС Windows) и ScaLAPACK (для ОС Linux).

Библиотека PLAPACK (Parallel Linear Algebra Package) представляет собой набор параллельных процедур линейной алгебры, необходимых при выполнении большого класса научно-технических расчетов. PLAPACK реализован с использованием библиотеки передачи сообщений MPI для операционных систем семейства Windows и включает интерфейсы для языков Fortran и С. Для работы PLAPACK требует наличия библиотеки, реализующей функции набора BLAS (Basic Linear Algebra Subprograms). Более подробная информация о библиотеке PLAPACK приведена, например, в документе http://www.cs.utexas.edu/users/plapack.

ScaLAPACK (Scalable Linear Algebra Package – http://www.netlib.org/scalapack) представляет собой набор параллельных процедур, по функциям аналогичный процедурам PLAPACK. Так же как и PLAPACK, ScaLAPACK реализован с использованием библиотеки передачи сообщений MPI, но разработка выполнена для платформы Unix.

В экспериментах, проводимых в рамках настоящего проекта под управлением ОС Windows с использованием библиотеки PLAPACK, в качестве реализации BLAS использовалась библиотека MKL (описание библиотеки приведено, например, в http://developer.intel.com/ software/products/mkl/index.htm). В качестве реализации MPI использовались две разные реализации (см. раздел 1):

• Argonne MPICH (http://www-unix.mcs.anl.gov/mpi/MPICH/);

• MP-MPICH (http://www.lfbs.rwth-aachen.de/~joachim/MP-MPICH.html).

В экспериментах под управлением ОС Unix (Linux) с применением библиотеки ScaLAPACK в качестве реализации MPI использовалась реализация Argonne MPICH (http://www-unix.mcs.anl.gov/mpi/MPICH/).

Для примера результатов выполненных экспериментов на рис. представлены достигнутые максимальные показатели производительности с использованием разного числа вычислительных узлов (компьютеров на базе процессоров Pentium 4 с тактовой частотой 1.3 GHz) и для разных реализаций MPI с разными операционными системами.

Произ водит е льнос т ь, по к а з а нна я на тесте LI NPACK. Сра вн е н ие W i ndows и Li nux 2, 1, 0, Колич е с т во узлов 2 MPI CH ( L in u x ) M P- M PI CH( W indows) M PI CH( W indows) Рис 3. Максимальные показатели производительности на тесте LINPACK Оценка результатов экспериментов:

1. Преимущество реализации стандарта MPI для ОС Windows в виде библиотеки MP-MPICH увеличивается с ростом числа используемых узлов.

2. Библиотека PLAPACK, реализованная для ОС Windows, обеспечила в проведенных тестах большую производительность, чем библиотека ScaLAPACK, реализованная для ОС Unix (Linux).

Оптимизация вычислений для многопроцессорных вычислительных серверов с общей памятью В данном разделе рассматриваются результаты вычислительных экспериментов, выполненных для определения способов эффективной производительность ( Гфлоп ) реализации параллельных вычислений в кластерных вычислительных системах при наличии многопроцессорных серверов с общей памятью (мультипроцессоров).

Разработка параллельных программ для мультипроцессоров может осуществляться в рамках следующих двух основных схем реализации:

• общий подход (как и в случае многопроцессорных вычислительных системах с распределенной памятью) на основе технологии передачи сообщений MPI;

• подход, основанный на использовании возможностей стандарта OpenMP.

Первый способ позволяет создавать мобильные параллельные программы, которые могут использоваться в многопроцессорных системах различного типа; второй подход обеспечивает учет возможностей архитектуры параллельной системы с общей памятью.

Программный интерфейс приложений (API) OpenMP (см., например, Chandra, R. аnd etc. (2000)) обеспечивает поддержку программирования в модели общей памяти на языках C/C++ и Fortran и представляет собой достаточно простой способ для разработки параллельных программ, являющихся переносимыми (мобильными) между различными типами мультипроцессоров и операционных систем.

Для проведения экспериментов применялись двух- и четырех- процессорные сервера вычислительного кластера Нижегородского университета. Разработка программ осуществлялась с помощью среды разработки Microsoft Visual Studio 6.0 с компиляторами Microsoft 32-bit C/C++ Optimizing Compiler и Intel C++ Compiler 5.0. При проведении расчетов в качестве контрольного примера использовалась задача матричного умножения, для решения которой были подготовлены три различные программные реализации одного и то же алгоритма умножения матриц:

• последовательная программа, разработанная на основе стандартного последовательного алгоритма умножения матриц;

• параллельная программа, полученная из последовательного варианта путем добавления соответствующих директив OpenMP; следует отметить, что выполнение этой работы не потребовала значительных усилий; главное изменение исходной программы свелось к вставке только одной директивы распараллеливания перед основными циклами умножения:





#pragma omp for private(i,j,k) nowait for (i=0;i

• параллельная программа, использующая для организации взаимодействия процессоров механизм передачи сообщений MPI; для распределения элементов перемножаемых матриц между процессорами была задействована ленточная схема организации параллельных матричных вычислений (см., например, Kumar and etc.

(1994)), когда на каждый процессор пересылается одновременно k строк матрицы A и k столбцов матрицы B (значение k может быть принято равным p, где p есть число имеющихся в системе процессоров).

Результаты экспериментов для двухпроцессорного (2 процессора Intel Pentium III Xeon 1000 MHz, 256 Mb RAM) в числовой форме сведены в таблице 2. В этой таблице приведены данные по времени выполнении операции перемножения матриц разного порядка (от до 2100) для всех трех вариантов программной реализации вычислений. Кроме того, для параллельных программ приведены показатели получаемого ускорения времени решения задачи по сравнению с временем работы последовательной программы S = Tпосл / Tпар.

Следует отметить, что при определении времени Tпосл, несмотря на выполнение последовательной программы, используются оба процессора вычислительного сервера (дополнительный процессор применяется, в частности, для исполнения процессов операционной системы). Как результат, реальное время последовательного выполнения является большим, чем приведено в таблице 2 (что, соответственно, увеличивает коэффициент ускорения, обеспечиваемого параллельными вариантами программ).

Для наглядности результаты вычислительных экспериментов представлены также на рис. 4 в графической форме в виде графика коэффициентов ускорения процесса решения задачи при использовании параллельных вычислений.

Таблица 2.

Сравнение времени выполнения последовательного варианта программы с вариантами OpenMP и MPI для 2-процессорного сервера OpenMP MPI Порядок Время Tпосл матрицы: (последовательУскореВремя Tпар Ускорение S Время T (N) ный алгоритм) ние S 300 0.42 0.39 0.1.08 1.600 4.69 3.55 3.1.32 1.900 16.20 12.05 14.1.34 1.1200 38.67 30.00 33.1.29 1.1500 76.56 58.20 60.1.32 1.1800 150.08 108.42 154.1.38 0.2100 258.09 171.75 177.1.50 1.Ускорение вычислений 1,1,1,0,0,0,0,300 600 900 1200 1500 1800 Размер задачи OpenMP MPI Рис. 4. Ускорение матричного умножения при использовании параллельных вычислений Ускорение В результате анализа полученных данных можно заключить, что при организации параллельных вычислений на многопроцессорных системах с общей памятью более эффективным является использование технологии разработки с возможностями OpenMP. Подобный вывод, в свою очередь, позволяет сформулировать предложение о целесообразности применения комбинированной технологии разработки параллельных программ, при которой для организации взаимодействия между узлами вычислительной системы используются средства MPI, а для обеспечения эффективных вычислений в пределах отдельных многопроцессорных узлов с общей памятью применяется способ распараллеливания на основе OpenMP.

Таблица 3.

Сравнение времени выполнения MPI и MPI+OpenMP вариантов программы для двух 2-процессорных серверов Время Tпар,с Порядок Ускорение S матрицы:

MPI MPI+OpenMP (N) 0.52 0.300 1.3.95 2.600 1.14.03 7.900 1.37.36 29.1200 1.65.39 32.1500 2.112.75 89.1800 1.185.85 101.2100 1.Для оценки подобного подхода были выполнены вычислительные эксперименты с использованием двух 2-процессорных серверов кластера. Для организации параллельных вычислений были разработаны два варианта программ для ленточного алгоритма перемножения матриц:

• программа с использованием только интерфейса передачи сообщений MPI; при выполнении экспериментов эта программа запускалась с генерацией 4 параллельных процессов (по два процесса на каждый двухпроцессорный сервер);

• программа с использованием интерфейса MPI и средств распараллеливания OPenMP; при выполнении этого варианта программы порождались 2 параллельных процесса (по одному процессу на каждый двухпроцессорный сервер), далее на каждом сервере для процессов средствами OpenMP создавались два параллельных потока (по одному на каждый процессор).

Ускорение (OpenMP+MPI)/MPI 2,1,0,0 500 1000 1500 2000 Размер задачи Рис. 5. Ускорение матричного умножения при использовании комбинированного OpenMP+ MPI варианта параллельной программы Результаты выполненных экспериментов приведены в таблице 3 и представлены в графическом виде на рис. 5. Как следует из приведенных данных, комбинированный вариант параллельной программы имеет заметное преимущество по эффективности в сравнении с программой, разработанной только для одного интерфейса MPI.

Оптимизация вычислений для однопроцессорных компьютерных систем Целью вычислительных экспериментов, описание которых проводится в данном разделе, являлось определение способов эффективной реализации алгоритмов и сравнение временных характеристик программ для различных С++ компиляторов на примере задачи умножения случайно генерируемых квадратных матриц.

Ускорение Необходимым условием для создания эффективных программ является наличие оптимизирующих компиляторов для наиболее распространенных языков программирования высокого уровня. В частности, в настоящее время для С++ активно используются компиляторы Intel C++ Compiler, Microsoft 32-bit C/C++ Optimizing Compiler, Borland C++ for Win32 Compiler.

Для примера результатов выполненных экспериментов в таблице приведены временные затраты для выполнения операции умножения матриц разного порядка.

Таблица 4.

Pages:     | 1 |   ...   | 3 | 4 || 6 | 7 |   ...   | 24 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.