Бенчмарк GRAPH500 на основе алгоритмов решения теоретико-графовых задач - Преимущества применения dataflow-парадигмы в вычислительных системах

Данный тест моделирует работу интернет-ресурсов социальных сетей. Социальная сеть представляется в виде графа, где узлы обозначают людей, а ребра - связи (знакомства) между ними. Таким образом строится тестовая задача на основе графовой модели. Первая часть задачи - это создание графа, т. е. синтез ребер графа, который осуществляется на основе деления матрицы смежности графа на четыре части (рис. 69).

функциональная схема теста graph500

Рисунок 14 - Функциональная схема теста Graph500

За проведение первой фазы теста ответственно ВФУ Graph500Manager. Размерность матрицы смежности задается параметром Scale. Число вершин анализируемого графа N= 2Scale. В графе для теста синтезируется M ребер (обычно M=16*N).

Для моделирования данной задачи для реализации на ОА-архитектуре dataflow-ВС были использованы следующие значения постоянных параметров:

    - Число вершин графа: 210 = 1024 - Число ребер графа: 16*210 - Число ФУ для реализации теста: 27 = 128 - Число итераций теста: 64

ФУ для реализации приложения бенчмарка GRAPH500

В Таблице 1 и Таблице 2 собраны наборы милликоманд ФУ, предназначенных для прогона тестовых приложений бенчмарка GRAPH500 на модели суперкомпьютерной системы ОА-архитектуры.

Менеджер по управлению ФУ на тесте GRAPH500

Таблица 1 - Милликоманды устройства "решателя графовых задач"

Индекс милликоманды

Мнемоника милликоманды

Описание

0

Reset

Сброс ФУ

1

ScaleSet

Установить scale (корень от числа вершин)

5

EdgeSet

Установить число ребер в графе

10

EdgeFactorSet

Установить число ребер с помощью коэффицента от числа вершин графа

20

CollectorSet

Установить ссылку на сборщика результатов

25

FUFieldRangeSet

Установить размерность поля для анализа графа (число ФУ на одной грани вычислительного поля)

100

Run

Начать тест (генерацию FU для анализа графа)

На входе - количество шагов моделирования

(по умолчанию прогоняется 64 итерации)

Сборщик результатов работы по тесту Graph500 (Graph500Collector)

Таблица 2 - Милликоманды устройства сбора данных для решателя графовых задач

Мнемоника милликоманды

Описание

Reset

Сброс ФУ

GraphGenSet

Устновить ссылку на генератор графа

PointSet

Принять номер вершины с итераций

CountPopMk

Выдать милликоманду со значением счетчика вершин

TraceLongPopMk

Выдать милликоманду со средней длиной пути в графе

IterationSet

Установить номер текущей итерации

TraceLongIterationPopMk

Выдать длину пути для итерации

TraceLongIterationPopMkList

Выдать длину пути для итерации

Программирование тестовой задачи бенчмарка GRAPH500 для суперкомпьютерной системы ОА-архитектуры осуществляется с помощью следующей миллипрограммы на ПЯ, особенностью которой является то, что она позволяет варьировать во время моделирования число ИУ в моделируемой системе.

NewFU={Mnemo="Scheduler" FUType=FUScheduler}

Scheduler. ContextPopMk=MainBus. SchedulerContextSet Настройка ссылки на балансир (планировщик)

NewFU={Mnemo="Eventser" FUType=FUEventser}

NewFU={Mnemo="GraphGen" FUType=FUGraph500Manager}

NewFU={Mnemo="GraphCollector" FUType=FUGraph500Collector}

NewFU={Mnemo="Chart" FUType=FUChart}

NewFU={Mnemo="Plot" FUType=FUPlot}

Настройка рисования графика

Plot. SeriaCreat

Chart. ParentSet

Chart. Caption="Parallel factor"

Chart. Focus

Plot. SeriaCreat

Chart. ChartPopMk=Plot. ParentSet

Plot. ColorSet=clRed

Plot. PenWidthSet=3

Chart. TitleYSet="Parallel factor"

Chart. TitleXSet="Model time"

Chart. TitleSet="Graph500 parallel factor"

Scheduler. SheduleTimeSet=0

Подпрограмма вывода параметра в окно графика

Eventser. OutProgSet={Eventser. CurrentTimePopMk=Plot. XSet Eventser. CurrentParallelFactorPopMk=Plot. YSet}

Eventser. CurrentTimePointPopMk=Scheduler. TimePointerSet

Eventser. ContextPopMk=Scheduler. EventserContextSet

Настройка Eventser-а

Scheduler. NCoresSet=30

Eventser. NEUSet=30

Настройка ФУ вычислительного поля для теста Graph500

GraphGen. ContextPopMk=GraphCollector. GraphGenSet

GraphGen. ScaleSet=10

GraphGen. EdgeFactorSet=16

GraphGen. FUFieldRangeSet=7

Перевод ФУ в режим моделирования

GraphGen. ManualModeSet=true

GraphCollector. ManualModeSet=true

Запуск теста

GraphGen. Run=64

Console. Out="Средняя длина пути в графе: "

GraphCollector. TraceLongPopMk=Console. Out

Eventser. Start

Вывод результатов моделирования

Console. LnOut="Process time: " Eventser. CurrentTimePointPopMk=Console. OutLn

Console. LnOut="Parallel dipertion: "Eventser. DispParallelFactorPopMk=Console. Out

Console. LnOut="Evens count: "Eventser. EventsCountPopMk=Console. Out

Console. LnOut="Use factor: " Eventser. UseFactorPopMk=Console. Out

Листинг 4. Реализация теста бенчмарка Graph500 на ПЯ

Похожие статьи




Бенчмарк GRAPH500 на основе алгоритмов решения теоретико-графовых задач - Преимущества применения dataflow-парадигмы в вычислительных системах

Предыдущая | Следующая