Опубликован: 25.10.2007 | Доступ: свободный | Студентов: 1275 / 290 | Оценка: 4.40 / 4.36 | Длительность: 21:57:00
Специальности: Математик
Дополнительный материал 1:

Приложение. Параллельные вычисления на кластерах из персональных компьютеров в математической физике (В.Е.Карпов, А.И.Лобанов)

< Лекция 9 || Дополнительный материал 1: 12345

5. Выбор модели организации параллельных вычислений

Для решения уравнения (8) был выбран достаточно простой алгоритм, внутренний параллелизм которого практически очевиден. Тем не менее, для определения эффективной модели распараллеливания целесообразно использование системы анализа программ на параллельность BERT 77 (http://www.plogic.com/bert-des.html). BERT 77 опирается на полученные оценки выполнения элементарных конструкций языка программирования FORTRAN 77 без предварительного исполнения анализируемой программы. Эти оценки строятся для каждой тройки: вычислительная система, компилятор, система коммуникации. Были проведены исследования для разных комбинаций компонентов тройки. Они показали, что времена выполнения программных конструкций (включая вычисление выражений, организацию циклов, доступ к элементам многомерных массивов, организацию вызовов функций и подпрограмм) могут быть оценены при использовании небольшого количества (порядка 200 ) предварительно вычисленных времен выполнения элементарных операций для конкретной пары "вычислительная система-компилятор". Эксперименты по измерению скоростей передачи информации для различных коммуникационных систем приводят к зависимости времени передачи данных от их объема, подобной изображенной на рис. 2. Такие зависимости в системе BERT 77 приближаются непрерывными кусочно-линейными функциями вида t = t_i^0  + k_i  \times nbytes при n_i  \le nbytes \le n_{i + 1}, где ni пробегает значения 0, 1024, 2048, 4096 и т.д., t — полное время передачи данных, - латентности, ki — скорости передачи, а nbytes — количество передаваемых данных.

Типовой график зависимости времени передачи информации от ее объема

Рис. 2. Типовой график зависимости времени передачи информации от ее объема

Проанализируем эффективность различных моделей организации вычислений.

5.1. Потоковая модель

Входными переменными для параллельного яруса являются значения потенциала \phi во всех узлах сетки на предыдущей итерации, а выходными — значения потенциала на текущей итерации и значение относительной погрешности (5). Относительная погрешность является редукционной переменной по отношению к операции min, т.е. ее частичные значения могут быть вычислены на рабочих процессорах, а окончательное значение — применением редукционной операции при приеме частичных значений. Если задействовано N рабочих процессоров, то при идеальной балансировке загрузки время выполнения вычислений будет составлять \tau /N.

Количество узлов сетки на один процессор при нарезке рабочих областей по вертикали и правильной балансировке вряд ли будет различаться на двоичный порядок. Поэтому объемы передаваемых данных попадут на один участок кусочно-линейной аппроксимации, скажем, на участок j. Скорость передачи информации на нем составляет kj байтов в единицу времени. Если главный процессор будет отправлять рабочему процессору с номером i nbytesi байт, то время передачи составит t^{i}  = t_j^0  + k_j \times {nbytes}^{i}. Полное время передачи входных данных главным процессором при использовании 8-байтовых данных будет t = N \times t_j^0  + k_j \times {nnodes} \times 8, где nnodes — полное число узлов расчетной сетки. Независимо от значений N и j это время на порядок превышает время выполнения одной итерации. Даже без анализа передачи выходной информации видна неэффективность модели на имеющейся конфигурации вычислительной системы.

5.2. Динамическая модель

В динамической модели передача входных данных от главного процессора к рабочим отсутствует. Но вычисленные значения потенциала и относительной погрешности должны быть широковещательно разосланы всем процессорам. Аналогично получаем ту же оценку времени вычислений на одном процессоре — \tau /N и оценку снизу для времени передачи данных t = N \times t_j^0  + k_j  \times (N - 1) \times (({nnodes}/N) + 1) \times 8, которые доказывают неэффективность применения и этой модели.

< Лекция 9 || Дополнительный материал 1: 12345