Вы находитесь на старом сайте МЦСТ. Актуальный материал смотрите на новом сайте.

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

Прирост производительности на выбранных задачах пакета SPECfp95
Прирост производительности на выбранных задачах пакета SPECfp95

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

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

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

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

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

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

Содержание:

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

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

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

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

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

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

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

old.mcst.ru