Бенчмарк GREP - алгоритм сопоставления файловых строк шаблонам команды - Преимущества применения dataflow-парадигмы в вычислительных системах
Grep - хорошо известная утилита командной строки различных операционных систем. С ее помощью можно производить поиск по тексту строк, соответствующих некоторому заданному регулярному выражению.
Для проведения моделирования работы команды GREP необходим следующий набор функциональных устройств:
- - String Sourсe - Regexp Manager - Regexp Worker - Regexp Collector - String Receiver
Структура виртуальной вычислительной системы ОА-архитектуры для реализации бенчмарка GREP приведена на рис. 70.
ФУ для реализации бенчмарка команды GREP
В Таблица 20 собран набор милликоманд ФУ, предназначенных для прогона тестового приложения бенчмарка команды GREP (алгоритма сопоставления файловых строк шаблонам команды GREP) на модели суперкомпьютерной системы ОА-архитектуры.
Рисунок 15 - Структура вычислительной системы для моделирования GREP
Таблица 3 - Милликоманды устройства вычислений бенчмарка команды GREP
Индекс милликоманды |
Мнемоника милликоманды |
Описание |
0 |
Reset |
Сброс ФУ |
20 |
PatternSet |
Установка поискового шаблона (регулярное выражение) |
21 |
StringSet |
Установка входной строки для поиска |
22 |
PatternSetStart |
Установка поискового шаблона (регулярное выражение), затем запуск поиска |
23 |
StringSetStart |
Установка входной строки для поиска, затем запуск поиска |
25 |
ResultMkSet |
Установка милликоманды для отправки результата (первого найденного вхождения) |
26 |
ResultMatrMkSet |
Установка милликоманды для отправки результата в формате массива/матрицы (все внайденные вхождения) |
27 |
ResultMatrPop |
Выполнить милликоманду отправки результата в формате массива/матрицы |
28 |
ResultMatrPopMk |
Установить и выполнить милликоманду отправки результата в формате массива/матрицы |
29 |
ResultProgSet |
Установить миллипрограмму для отправки результата |
30 |
Start |
Запуск поиска |
41 |
IndexOffsetSet |
Установка стартового значения индекса при индексации входных строк. Используется в качестве милликоманды при приеме входной строки. (по умолчанию - 1000) |
42 |
ResultFUContextSet |
Установка контекста ФУ, которое будет принимать результаты поиска |
Предварительная настройка функциональных устройств
ФУ String Source. Данное функциональное устройство является поставщиком входных данных в программу моделирования программы GREP. Устройство производит построчное чтение некоторого заданного текстового файла и пересылка данных (строк) следующему функциональному устройству. Ниже приведен пример программы:
NewFU={Mnemo="StringSource" FUType=FUStringsSource}
...
StringSource. FileSet="eug3.txt"
StringSource. MkSet=RegManager. StringPut
Листинг 5. Пример вызова ФУ StringSource
ФУ Regexp Worker. Для проведения моделирования необходимо создать всего одно ФУ Regexp и провести его настройку. В качестве входных данных устройство принимает строку для поиска, а также поисковый шаблон, построенный по правилам регулярного выражения. После получения этих входных данных устройство произведет поиск искомой строки по шаблону и сформирует массив вхождений. Этот массив ФУ прикрепит в качестве нагрузки ко входной милликоманде и перенаправит ее на контекст устройства, определенного в переменной контекста ResultFUContextSet.
После настройки данного ФУ Regexp Manager произведет его "клонирование", т. е. система будет состоять из нескольких одинаково настроенных ФУ Regexp Worker, что обеспечит распараллеливание решаемой задачи. Ниже представлен пример программы:
NewFU={Mnemo="Reg" FUType=FURegexp}
...
Reg. PatternSet="[A-Za-z]+"
Reg. ContextPopMk=RegManager. RegexpFUSet
Листинг 6. Пример вызова ФУ RegexpWorker
ФУ Regexp Manager. Данное устройство выполняет функции инициализации "рабочих" ФУ Regexp Worker, а также функции распредения входных данных (строк) между ФУ Regexp. Перед запуском данного устройства необходимо сначала настроить одно ФУ Regexp, а затем передать ссылку на его контекст устройству Regexp Manager через милликоманду RegexpFUSet. Необходимо также определить количество "клонированных" устройств через милликоманду CountSet. Данная милликоманда не только определит переменную контекста Count, но и создаст и проинициализирует устройства ФУ Regexp, используя предустановленный в переменной RegexpFU контекст оригинального устройства-обработчика. За прием входной строки отвечает милликоманда StringPut (входная строка в нагрузке). После получения всех необходимых данных устройство начинает слать милликоманды (начиная с 1000), номера которых соответствуют индексам входных строк, увеличенных на тысячу (+1000). Т. е., первая строка будет передана некоторому устройству Regexp Worker милликомандой 1000, вторая - 1001, третья - 1002 и т. д. Ниже представлен пример программы.
NewFU={Mnemo="RegManager" FUType=FURegexpManager}
...
Reg. ContextPopMk=RegManager. RegexpFUSet
RegManager. Clone=10
StringSource. MkSet=RegManager. StringPut
Листинг 7. Пример вызова ФУ RegexpManager
Для запуска тестовой задачи бенчмарка GREP на вычислительной системе ОА-архитектуры необходимо выполнить следующую миллипрограмму на ПЯ (ОА-языке):
NewFU={Mnemo="Scheduler" FUType=FUScheduler}
Scheduler. ContextPopMk=MainBus. SchedulerContextSet Настройка ссылки на балансир (планировщик)
NewFU={Mnemo="StringSource" FUType=FUStringsSource}
NewFU={Mnemo="RegManager" FUType=FURegexpManager}
NewFU={Mnemo="Reg" FUType=FURegexp}
NewFU={Mnemo="RegCollector" FUType=FURegexpCollector}
NewFU={Mnemo="Eventser" FUType=FUEventser}
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="Grep parallel factor"
Eventser. OutProgSet={Eventser. CurrentTimePopMk=Plot. XSet Eventser. CurrentParallelFactorPopMk=Plot. YSet}
Eventser. CurrentTimePointPopMk=Scheduler. TimePointerSet
Eventser. ContextPopMk=Scheduler. EventserContextSet
Scheduler. EventserMkSet=1 Милликоманда добавления события для Eventser
Scheduler. NCoresSet=9
Eventser. NEUSet=9
Настройка эталонного ФУ Regexp
Reg. PatternSet="(день|ночь|она?|луна|мне|тебе|[0-9]+|[A-Za-z]+)"
Reg. ContextPopMk=RegManager. RegexpFUSet
RegCollector. ContextPopMk=Reg. ResultFUContextSet
Создание вычислительного поля
Reg. ManualModeSet=true
RegManager. Clone=40
StringSource. FileSet="eug2.txt"
StringSource. MkSet=RegManager. StringPut
RegManager. ManualModeSet=true
Настройка времени планирования вычислений
Scheduler. SheduleTimeSet=3000
Запуск теста
StringSource. Start
Eventser. Start
Вывода результатов тестаConsole. Out="Process time: " Eventser. CurrentTimePointPopMk=Console. OutLn
Console. Out="Process time: " Eventser. CurrentTimePointPopMk=Console. OutLn
Console. Out="Parallel factor: " Eventser. ParallelFactorPopMk=Console. OutLn
Console. Out="Use factor: " Eventser. UseFactorPopMk=Console. OutLn
Листинг 8. Реализация теста Regexp по обработке текстовых данных
На ПЯ также могут быть реализованы и миллипрограммы обработки результатов прогона тестовой задачи на ОА-архитектуры для их последующей визуализации и анализа. Например, миллипрограмма определения зависимости времени выполнения теста Grep от числа ФУ и ИУ будет выглядеть следующим образом.
NewFU={Mnemo="Scheduler" FUType=FUScheduler}
Scheduler. ContextPopMk=MainBus. SchedulerContextSet
NewFU={Mnemo="StringSource" FUType=FUStringsSource}
NewFU={Mnemo="RegManager" FUType=FURegexpManager}
NewFU={Mnemo="Reg" FUType=FURegexp}
NewFU={Mnemo="RegCollector" FUType=FURegexpCollector}
NewFU={Mnemo="Eventser" FUType=FUEventser}
NewFU={Mnemo="File" FUType=FUGatewayFile}
NewFU={Mnemo="Matr" FUType=FUConstMatr}
NewFU={Mnemo="GatewayFile" FUType=FUGatewayFile}
NewFU={Mnemo="Counter" FUType=FUCounter}
NewFU={Mnemo="Counter2" FUType=FUCounter}
Eventser. CurrentTimePointPopMk=Scheduler. TimePointerSet
Eventser. ContextPopMk=Scheduler. EventserContextSet
Scheduler. EventserMkSet=1 Милликоманда добавления события для Eventser
Scheduler. SheduleTimeSet=30
Reg. PatternSet="(день|ночь|она?|луна|мне|тебе|[0-9]+|[A-Za-z]+)"
Reg. ContextPopMk=RegManager. RegexpFUSet
RegCollector. ContextPopMk=Reg. ResultFUContextSet
Reg. ManualModeSet=true
RegManager. Clone=10
StringSource. FileSet="eug2.txt"
StringSource. MkSet=RegManager. StringPut
RegManager. ManualModeSet=true
Создание матрицы для вывода результатов теста
Matr. RowSet=51 Matr. ColSet=51
Matr. IndexModeSet=0
Matr. Create
Scheduler. SheduleTimeSet=1000
Цикл для сбора результатов
Counter. ValueSet=50
Counter2.ValueSet=50
Counter. LessEqProgSet={
Scheduler. ModelingReset
Eventser. ModelingReset
Counter2.PopMk=Scheduler. NCoresSet
Counter. PopMk=RegManager. Clone
StringSource. Start Eventser. Start
Counter. PopMk=Matr. RowSet Counter2.PopMk=Matr. ColSet
Eventser. CurrentTimePointPopMk=Matr. CellSet
Counter. Inc
}
Counter2.LessEqProgSet={Counter. Set=1 Counter2.Inc}
Counter2.Set=1
Вывод результатов тестирования в файл
GatewayFile. FileNameSet="RegResult. txt"
GatewayFile. SeparatorSet=";"
GatewayFile. OpenFileWrite
Matr. MatrPopMk=GatewayFile. LnOut
GatewayFile. CloseFile
Листинг 9. Реализация теста Regexp по обработке текстовых данных на ПЯ
Похожие статьи
-
Данный тест моделирует работу интернет-ресурсов социальных сетей. Социальная сеть представляется в виде графа, где узлы обозначают людей, а ребра - связи...
-
Моделирование различных вычислительных систем можно разделить на два главенствующих класса: матечатическое моделировании и имитационное. Математическое...
-
Ядром вычислительной dataflow-системы будем называть совокупность оборудования, которое осуществляет сбор данных для формирования исполняемого пакета. В...
-
В реалиазации милликомандного типа управления вычислительной системой основную роль играет функциональное устройство "Автомат". Это устройство отвечает...
-
ОА-архитектура - Преимущества применения dataflow-парадигмы в вычислительных системах
В данной работе предлагается использование объектно-атрибутной архитектуры ВС (или ОА-архитектуры). В отличие от классической ВС, ОА-архитектура работает...
-
В предыдущем разделе был приведен необходимый для получения набор выходных характеристик моделируемой вычислительной системы, требуемый от тестирования....
-
Оценка моделируемой ВС осуществляется на основе анализа функционирования ВС на тестовых задачах по следующему набору параметров: - общее число ИУ в ВС; -...
-
Введение - Преимущества применения dataflow-парадигмы в вычислительных системах
Dataflow-парадигма В архитектурах вычислительных сетей на сегодняшний день преобладающую роль играют ВС, управляемые потоком команд - Control Flow. Такая...
-
Выбор и обоснование критериев оценки моделируемой системы Основными критериями оценки созданной вычислительной системы с управлением потоком данных по...
-
Преимущества и недостатки системы Windows - Операционная система Windows
В заключение нужно упомянуть о преимуществах и недостатках системы Windows. К преимуществам Windows относят: - Удобство и поддержка устройств . Основное...
-
Основные требования и характеристики современных и применение технических средств АИС Автоматизированная информационная система (АИС) представляет собой...
-
Для проверки соответствия требованиям ТЗ, была поставлена задача разработки 3-D модели корпуса Kyocera KD-PB1D79 при помощи системы AutoCAD. В этой части...
-
1. НА 7 ПК ИСПОЛЬЗУЕТСЯ microsoft Windows xp sp2. 2. на 1 используется Altlinux 5 3. Программы офисного назначения: A) Microsoft Office Excel 2003 B)...
-
Поисковые системы - Глобальная вычислительная сеть Internet
Основная задача Internet -- предоставление необходимой ин-формации. Чтобы найти нужную информацию необходимо знать адрес Web-страницы, на которой эта...
-
Типы данных и команды SQL - Разработка информационной системы "Магазин компьютерных товаров"
Microsoft SQL Server поддерживает большинство типов данных SQL 2003. Также SQL Server поддерживает дополнительные типы данных, используемые для...
-
Сравнение алгоритмов поиска оптимальных решений в агентных системах
Аннотация Рассмотрены основные понятия теории агентов: тип агентов, основные задачи агентов, суть поиска решения агентом в пространстве состояния...
-
Тепловое моделирование было проведено в системе ANSYS Icepak. При заданных условиях окружающей среды (температура +40 ОС), температура на корпусе...
-
Преимущества и недостатки Windows - Операционная система Windows
Преимущества. Удобство и поддержка устройств. Основное отличие программ для DOS и для Windows состоит в том, что DOS-программа может работать с...
-
Выбор модуля CPU будем производить исходя из технического задания и выбранных входных и выходных модулей, и, учитывая то, что конфигурирование...
-
Информационно-поисковые системы - Осуществление хранения и поиска документов
ПС с большим набором функций и возможностей обычно входят в состав СУБД и именуются информационно-поисковыми системами. Они также создаются и...
-
Если в результате поиска на схеме по данным из таблицы будет найдено несколько экземпляров оборудования (т. е. с одинаковой маркировкой или...
-
Важнейшим вопросом при создании САПР после формализации процесса проектирования является вопрос отображения проектно-конструкторской деятельности...
-
Свойства алгоритмов - Алгоритм
Данное выше определение алгоритма нельзя считать строгим - не вполне ясно, что такое "точное предписание" или "последовательность действий,...
-
Разработка структурной схемы Для реализации устройства бегущая строка требуется, прежде всего, отображение информации для визуального восприятия, что...
-
Сетевыми протоколами называют протоколы первого и второго уровней, определяющих архитектуру локальной сети, в том числе ее топологию, передающую среду,...
-
После создания диапазона критериев можно запустить расширенный фильтр и подвергнуть данные списка фильтрации. Для этого надо: Поместить указатель ячейки...
-
Постановка задачи Необходимо разработать программу для поиска автобусных маршрутов. В качестве среды разработки должна использоваться Delphi 7. В...
-
Требования к программному обеспечению системы На сетевом оборудовании должна функционировать межсетевая операционная система, причем ее версия должна...
-
Иерархия параллельных вычислительных систем - Повышение производительности работы библиотеки GridMD
Одной из основополагающих классификаций параллельных систем является Таксономия Флинна , в которой различаются следующие типы систем по взаимодействию...
-
Строгое определение протокола выглядит как формализованный набор правил, используемый ПК для коммуникаций. Из-за сложности коммуникаций между системами и...
-
У цей час існують різні системи керування запасами, кожна з яких характеризується певними особливостями планування запасів. Розглянемо основні з даних...
-
Устойчивость элементов и устройств к внешним воздействиям. Характеристики климатических воздействий. Механическая прочность. Радиационная стойкость...
-
Постановление Правительства Российской Федерации №1119 "Об утверждении требований к защите персональных данных при их обработке в информационных системах...
-
Для тестирования процесса расчета оценок будет специально создан учебный курс с двумя модулями, один из которых будет включать экзамен, а другой - нет. В...
-
По Р. Шеннону (Robert E . Shannon - профессор университета в Хантсвилле, штат Алабама, США ), "имитационное моделирование - Есть процесс конструирования...
-
Цель Работы - изучить приемы создания и использования шаблонов классов. - Теоретические сведения Достаточно часто встречаются классы, объекты которых...
-
Объект ориентированный класс программирование Цель Работы - изучить методику создания одномерных динамических символьных массивов при помощи...
-
Характеристика - Программное обеспечение вычислительной техники и автоматизированных систем
На Носкова Максима Николаевича, 28 марта 1991 года рождения, русского, студента 3 курса отделения "Программное обеспечение вычислительной техники и...
-
Цель Работы - изучить основные способы работы с пользовательским типом данных "класс", его объектами, методами и способы доступа к ним. - Теоретические...
-
Для того, чтобы строить диаграммы в соответствии с рисунком 2.7, необходимо реализовать алгоритм соединения двух объектов линией. Для отображения линии...
Бенчмарк GREP - алгоритм сопоставления файловых строк шаблонам команды - Преимущества применения dataflow-парадигмы в вычислительных системах