В. В. РОСЛОВЦЕВ

Научный руководитель ─ М. И. АРШАВСКИЙ, к. т.н., доцент

Московский инженерно-физический институт (государственный университет)

ПОСТРОЕНИЕ МОДЕЛИ БЛОКА ПАМЯТИ
ДЛЯ ОПИСАНИЯ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ

Предлагается подход к построению модели блока памяти для лабораторного практикума по курсу параллельные алгоритмы.

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

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

Для реализации операций над двумерными массивами необходимо решить задачу такого их размещения в памяти, при котором не возникает конфликтов. Известны следующие способы их размещения [1]

-  скошенное хранение

-  метод BSP

-  метод ассоциативных таблиц

В этих методах необходимо осуществить отображение (i, j)→(l, k), где
i, j – индексы элемента исходной матрицы, l – адрес в БП, k – номер БП. Описание метода задаёт прямые функции l=f1(i, j), k=f2(i, j). Модель такой памяти содержит группу параллельных процессов, каждый из которых управляет соответствующим БП. Это управление заключается в адресации БП и в определении источника и преемника данных. Для описания процессов необходимо найти функции q=g(d, row/col, w/r),
u= g(d, row/col, w/r), где d, – номер строки или столбца, q – адрес в БП,
u – позиция во входном или выходном регистрах, row/col – задаёт режим работы со строкой или столбцом, а w/r – задаёт задает режим записи или чтения.

НЕ нашли? Не то? Что вы ищете?

В первом и третьем методах функции f1(i, j) и f2(i, j) имеют симметричную форму и проблем с построением описания не возникает. Но в методе BSP используются функции l= div N и k=a mod M, где a – линейный адрес элемента (i, j) в исходной матрице, N – размер матрицы, а M – число БП, причём число M≥N и является простым. В левой части таблицы 1 показано размещение в памяти элементов матрицы размера 4×4, а в правой части – размещение матрицы методом BSP.

Таблица 1.

А41

А42

А43

А44

А44

Х

А14

А24

А34

А31

А32

А33

А34

А33

А43

Х

А13

А23

А21

А22

А23

А24

А22

А32

А42

Х

А12

А11

А12

А13

А14

А11

А21

А31

А41

Х

Банк 0

Банк 1

Банк 2

Банк 3

Банк 0

Банк 1

Банк 2

Банк 3

Банк 4

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

Для полученных таблиц легко найти аналитическое представление реализующих их функций. Например, функцию, записи столбца, можно описать выражением l = (d+k) mod 5.

ЗАПИСЬ СТОЛБЦА

ЗАПИСЬ СТРОКИ

номер

банка

номер столбца

номер

банка

номер строки

1

2

3

4

1

2

3

4

0

1

2

3

4

0

1

2

3

4

1

2

3

4

1

1

2

3

2

3

4

1

2

4

1

2

3

4

1

2

3

3

4

1

4

1

2

3

4

2

3

4

Таким образом, удаётся построить модель блока памяти с возможностью выполнения параллельных операций над массивами данных

Список литературы

1. Джесхоуп Дж. Параллельные ЭВМ. Радио и связь. 1988.