Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы 2014.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.93 Mб
Скачать

Линейная сеть процессоров

Каждый элемент связан с двумя соседями. Степень сети равна 2 для внутренних элементов и 1 – для крайних. Диаметр сети = n.

Пропускная способность = 1.

Пример:

Найти минимум в массиве: 3; 4; 2; 6; 15.

шаг

p1

p2

p3

p4

p5

min

1

3

3

2

4

3

3

3

2

4

3

2

4

6

2

4

3

2

5

15

6

2

4

3

2

Повышение эффективности решения задач на линейной сети процессоров

  1. Разбиение всей последовательности элементов на отдельные группы

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

П ри использовании тракторного алгоритма одновременно можно решать несколько задач каждым из процессоров: нахождение минимального элемента, максимального элемента, заданного элемента. Все элементарные операции могут быть выполнены за один проход.

Задача сортировки

:

В этом случае по окончанию ввода данных самый левый процессор должен хранить минимальный элемент. Одновременно происходит засылка данных и их сортировка.

3 , 4, 2. 6, 1, 5

Такт

p1

p2

p3

p4

p5

p6

1

5

2

1

5

3

1

5

6

4

1

5 2

5

6

5

1

2

5 4

5

6

6

1

2

4 3

4

5

6

Преимущество такого подхода:

количество шагов, необходимых для сортировки примерно равно числу элементов. Это оптимальный алгоритм сортировки для линейной сети процессоров. Данный алгоритм аналогичен алгоритму сортировки выбором.

7.3 Перспективы развития vpp (Vector Parallel Processor)

Fujitsu-VPP5000 (vector parallel processing) ), MPP архитектура. Производительность 1 процессора составляет 9.6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти - 8 Тб. Система масштабируется до 512 узлов.  Парадигма программирования на PVP системах предусматривает векторизацию циклов (для достижения разумной производительности одного процессора) и их распараллеливание (для одновременной загрузки нескольких процессоров одним приложением). 

На практике рекомендуют следующие процедуры: 

• производить векторизацию вручную, цель - перевести задачу в матричную форму. При этом, в соответствии с длиной вектора, размеры матрицы должны быть кратны 128 или 256.  • работать с векторами в виртуальном пространстве, разлагая искомую функцию в ряд и оставляя число членов ряда, кратное 128 или 256. 

За счет большой физической памяти (доли терабайта), даже плохо векторизуемые задачи на PVP системах решаются быстрее, на системах со скалярными процессорами.

Формирование адреса команды осуществляется на скалярном процессоре (x1), выборка из ОП (x2) и декодирование на скалярном процессоре (x3).

Дальнейшее развитие – класса VPP. Предпосылка развития VPP (причина) –для написания программ для этого класса машин можно было использовать ЯВУ (например, Фортран, PL), т.е. последовательные языки. Следовательно, все накопленное ПО (БД, ППП и тп.) остались без изменений. Для использования же MPP и МКМД требуется разработка параллельных языков, следовательно, разработка новых компиляторов, новых ППП. VPP: Программа пишется последовательно, затем производится векторизация. Этим занимается векторный контроллер. Основная задача векторного контроллера – девекторизация команды, чтобы ее можно было выполнить на арифметическом конвейере и запоминание результата (5) и очистка регистров(6).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]