Вы здесь

Исследование влияния подсистемы памяти на производительность распараллеленных программ

В статье дан анализ причин конфликтов при исполнении распараллеленных программ на ВК Эльбрус-3М, обладающем высоким параллелизмом на уровне операций и параллелизмом на уровне потоков управления.

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

Эффективность распараллеливания, как на уровне операций, так и на уровне параллельных потоков управления, существенно зависит от архитектуры и пропускной способности подсистемы памяти, т.к. параллельное исполнение многократно увеличивает поток обмена данными с памятью. Включение нескольких уровней кэш-памяти сокращает время доступа (за счет чего лучше поддерживается параллелизм операций) и повышает пропускную способность, значительно сокращая число обменов данными между процессором и оперативной памятью за счет их локализации в разных уровнях кэш-памяти [3].

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

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

Все перечисленные выше свойства подсистемы памяти по-разному проявляются при распараллеливании программ на уровне операций и на уровне потоков управления. Целью является изучение влияния архитектуры и иерархии памяти на эффективность одновременного распараллеливания программ как на уровне операций, так и на уровне потоков управления. Для исследования используется симметричная многопроцессорная система на общей памяти ВК Эльбрус-3М [4,5,6], базирующаяся на микропроцессорах с очень большим явным параллелизмом операций. Для исследования были выбраны задачи, которые одновременно обладают обоими видами параллелизма, и этот параллелизм может быть обнаружен автоматически с помощью оптимизирующего компилятора.

Подробнее... Загрузить файл 

Содержание:

Введение
1. Важнейшие характеристики архитектуры ВК Эльбрус-3М
2. Методы распараллеливания в оптимизирующем компиляторе

2.1. Оптимизации и распараллеливание на уровне операций
2.2. Автоматическое распараллеливание на потоки управления

3. Результаты исследования

3.1. Анализ конфликтов подсистемы памяти при одиночном и одновременном запуске задач
3.2. Результаты применения автоматического распараллеливания

Заключение
Литература

 

В.Ю.Волконский
А.В.Грабежной
Л.Е.Муханов
М.И.Нейман-заде