Научная статья на тему 'Моделирование конвейерных и волновых вычислений'

Моделирование конвейерных и волновых вычислений Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
399
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫЧИСЛИТЕЛЬНЫЙ КОНВЕЙЕР / АСИНХРОННЫЙ КОНВЕЙЕР / БУФЕРНАЯ ПАМЯТЬ / СЕТЬ ПЕТРИ / РАСЧЕТ ПРОИЗВОДИТЕЛЬНОСТИ / КАНАЛЫ ОС UNIX / МНОГОПОТОЧНОЕ ПРИЛОЖЕНИЕ / СЕМАФОР / УСКОРЕНИЕ ПАРАЛЛЕЛЬНОГО ВЫПОЛНЕНИЯ / ЗАДАЧА О ПРОИЗВОДИТЕЛЕ И ПОТРЕБИТЕЛЕ / ТРАССА / ВОЛНОВАЯ СИСТЕМА / ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ / COMPUTATIONAL PIPELINE / ASYNCHRONOUS PIPELINE / BUFFER STORAGE / PETRI NET / PERFORMANCE COMPUTATION / OS UNIX CHANNEL / MULTITHREADED APPLICATION / SEMAPHORE / PARALLEL PROCESSING SPEEDUP / PRODUCER-CONSUMER PROBLEM / TRACE / WAVE SYSTEM / OBJECT-ORIENTED PROGRAMMING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Кудряшова Екатерина Сергеевна, Михайлова Наталья Николаевна, Хусаинов Ахмет Аксанович

Предложена компьютерная модель многопроцессорного асинхронного вычислительного конвейера с буферной памятью. Она допускает программную реализацию с помощью многопоточного приложения на языке С++ под управлением операционных систем Windows XP, Windows 7. Эксперименты с компьютерной моделью были проведены на различных процессорах, включая Intel(R) Core(TM) i3-2310M CPU. Роль функциональных устройств играют потоки. Буферная память программно реализована с помощью объектов класса канал, имеющего операции записи и чтения, работающие по алгоритму Дейкстры для решения задачи о производителе и потребителе. Экспериментально установлено, что эта модель может быть применена для исследования производительности и историй параллельного процесса, состоящего из вычислительных операций и операций передачи данных между функциональными устройствами асинхронного конвейера. Приведены графики зависимости ускорения от объема входных данных, полученные с помощью эксперимента. Эти графики подтверждают формулу для расчета ускорения асинхронного конвейера. На основании исследования ускорения с помощью этой компьютерной модели сделаны выводы о том, что ускорение для асинхронного линейного конвейера не зависит от объема буферной памяти. Рассмотрено использование этой модели для изучения явления пузырька в конвейере. Эта модель расширена также для имитации работы волновой системы. Для волновой системы высказана и экспериментально проверена гипотеза о линейной зависимости времени обработки данных от их объема.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Modeling of pipeline and wave computations

A computer model of asynchronous multiprocessor computing pipeline with a buffer storage is proposed. The model allows the software implementation using the multi-threaded application written in C++ running under operating systems Windows XP, Windows 7. The experiments with the computer model were performed on a variety of processors, including the Intel(R) Core(TM) i3-2310M CPU. Threads act as functional devices. The buffer storage is implemented using class channel objects. It has read and write operations, working on the Dijkstra algorithm for solving the producer-consumer problem. Experimentally established that this model can be used to study the performance and the histories of the parallel process, which consists of computing operations and data transfer operations between functional units of asynchronous pipeline. The plots of speedup depending on the number of input data, obtained by experiment, are shown. These plots confirm the formula for calculating the speedup for the asynchronous pipeline. Conclusions are obtained that a speedup for the asynchronous pipeline is independent on the volume of its buffer storage. This model is considered for studying the bubble effect in the pipeline. The model is also extended to simulate a wave system. For the wave system, it is suggested and experimentally tested a conjecture of a linear dependence of the data on their volume.

Текст научной работы на тему «Моделирование конвейерных и волновых вычислений»

УДК 004.9

Кудряшова Екатерина Сергеевна

ФГБОУ ВПО «Комсомольский-на-Амуре государственный технический университет»

Россия, Комсомольск-на-Амуре1 Аспирант, ассистент E-Mail: ekatt@inbox.ru

Михайлова Наталья Николаевна

ФГБОУ ВПО «Комсомольский-на-Амуре государственный технический университет»

Россия, Комсомольск-на-Амуре Старший преподаватель E-Mail: mnataly4217@yandex.ru

Хусаинов Ахмет Аксанович

ФГБОУ ВПО «Комсомольский-на-Амуре государственный технический университет»

Россия, Комсомольск-на-Амуре Доктор физико-математических наук, профессор E-Mail: husainov51@yandex.ru

Моделирование конвейерных и волновых вычислений

Аннотация: Предложена компьютерная модель многопроцессорного асинхронного вычислительного конвейера с буферной памятью. Она допускает программную реализацию с помощью многопоточного приложения на языке C++ под управлением операционных систем Windows XP, Windows 7. Эксперименты с компьютерной моделью были проведены на различных процессорах, включая Intel(R) Core(TM) i3-2310M CPU. Роль функциональных устройств играют потоки. Буферная память программно реализована с помощью объектов класса канал, имеющего операции записи и чтения, работающие по алгоритму Дейкстры для решения задачи о производителе и потребителе. Экспериментально установлено, что эта модель может быть применена для исследования производительности и историй параллельного процесса, состоящего из вычислительных операций и операций передачи данных между функциональными устройствами асинхронного конвейера. Приведены графики зависимости ускорения от объема входных данных, полученные с помощью эксперимента. Эти графики подтверждают формулу для расчета ускорения асинхронного конвейера. На основании исследования ускорения с помощью этой компьютерной модели сделаны выводы о том, что ускорение для асинхронного линейного конвейера не зависит от объема буферной памяти. Рассмотрено использование этой модели для изучения явления пузырька в конвейере. Эта модель расширена также для имитации работы волновой системы. Для волновой системы высказана и экспериментально проверена гипотеза о линейной зависимости времени обработки данных от их объема.

Ключевые слова: Вычислительный конвейер; асинхронный конвейер; буферная память; сеть Петри; расчет производительности; каналы ОС Unix; многопоточное приложение; семафор; ускорение параллельного выполнения; задача о производителе и потребителе; трасса; волновая система; объектно-ориентированное программирование.

Идентификационный номер статьи в журнале 56TVN114

1 681013 Россия, г. Комсомольск-на-Амуре, пр. Ленина, д. 27 1

Ekaterina Kudryashova

Komsomolsk-on-Amur State Technical University Russia, Komsomolsk-on-Amur E-Mail: ekatt@inbox.ru

Natalya Mikhailova

Komsomolsk-on-Amur State Technical University Russia, Komsomolsk-on-Amur E-Mail: mnataly4217@yandex.ru

Ahmet Husainov

Komsomolsk-on-Amur State Technical University Russia, Komsomolsk-on-Amur E-Mail: husainov51@yandex.ru

Modeling of pipeline and wave computations

Abstract: A computer model of asynchronous multiprocessor computing pipeline with a buffer storage is proposed. The model allows the software implementation using the multi-threaded application written in C++ running under operating systems Windows XP, Windows 7. The experiments with the computer model were performed on a variety of processors, including the Intel(R) Core(TM) i3-2310M CPU. Threads act as functional devices. The buffer storage is implemented using class channel objects. It has read and write operations, working on the Dijkstra algorithm for solving the producer-consumer problem. Experimentally established that this model can be used to study the performance and the histories of the parallel process, which consists of computing operations and data transfer operations between functional units of asynchronous pipeline. The plots of speedup depending on the number of input data, obtained by experiment, are shown. These plots confirm the formula for calculating the speedup for the asynchronous pipeline. Conclusions are obtained that a speedup for the asynchronous pipeline is independent on the volume of its buffer storage. This model is considered for studying the bubble effect in the pipeline. The model is also extended to simulate a wave system. For the wave system, it is suggested and experimentally tested a conjecture of a linear dependence of the data on their volume.

Keywords: Computational pipeline; asynchronous pipeline; buffer storage; Petri net; performance computation; OS Unix channel; multithreaded application; semaphore; parallel processing speedup; producer-consumer problem; trace; wave system; object-oriented programming.

Identification number of article 56TVN114

Введение

Вычислительная волновая система состоит из функциональных устройств и каналов для передачи данных между этими устройствами. Мы моделируем каналы с помощью каналов ОС Unix [1], а функциональные устройства - с помощью потоков (нитей). Вычислительная волновая система должна удовлетворять следующим условиям:

1. Каждый канал имеет единственное функциональное устройство, считывающее данные из этого канала или единственное устройство, записывающее данные в этот канал (или и то, и другое).

2. Для каждого функционального устройства существует, по крайней мере, один канал, в который это устройство записывает, и, по крайней мере, один канал, из которого оно считывает.

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

Таким образом, волновая система является обобщением линейного конвейера в смысле [2] и частным случаем нелинейного конвейера [2]. Волновая система может быть реализована как сеть транспьютеров и составлять вычислительную систему с высокой интенсивностью вычислений и большими объемами входных и выходных данных. Она во многом похожа на систолическую матрицу. Но в волновой системе отсутствует глобальная система синхронизации. Волновая система является асинхронной.

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

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

Каждое функциональное устройство выполняет цикл, включающий чтение данных из входного канала, выполнение операции и запись результата операции в выходной канал. Функциональные устройства имеют различную скорость выполнения. Каналы могут иметь различные времена чтения и записи. Один канал не может работать одновременно с двумя функциональными устройствами. Если каждый канал состоит из одного регистра, а скорости выполнения операций одинаковы, мы получаем синхронный линейный конвейер [2].

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

Похожая формула рассматривается в [5], где время выполнения операций может быть различным. Но в [5] предполагается, что скорость обмена данными между каналами и функциональными устройствами одинакова, а чтение из канала и запись в этот канал может

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

Формула для нахождения ускорения

Рассмотрим конвейер, состоящий из р функциональных устройств и р + 1 каналов с0,..., Ср. Пусть щ - последовательность действий, выполняемых за 1 шаг, 0 < / < р — 1. Она состоит из чтения из канала С1, вычислительной операции и записи в канал С1+1. Время выполнения щ равно г(с^ + т(а{) + w(Ci+1), где г(с^ обозначает время чтения из канала С1, ж(с{) - время записи в канал С1, т(а^ - время выполнения операции , 0 < / < р — 1.

Под ускорением 5р(п) мы будем подразумевать отношение времени Тзец

последовательного выполнения вычислительных операций над п элементами входных данных к времени Тр параллельного выполнения этих операций с помощью р процессоров. Ускорение

П

можно определить также как отношение — .

тр

Одной из наших задач будет экспериментальное подтверждение следующей формулы для расчета ускорения для асинхронного вычислительного конвейера с буферной памятью:

5 (п) =____________________________________________________

Р Т?_1(г(сд+т(ад+м(си1))+(п-1) тах [г(с1)+т(а1)+м(си1)]

1_1 0<1<р-1

Мы не будем использовать эту формулу для вывода каких-либо утверждений. Ее пока можно считать гипотетической.

Математическая модель

Пусть N = {0,1,2...} - множество неотрицательных целых чисел. Для произвольного конечного множества Р обозначим через N множество функций М: Р ^ N. Сетью Петри называется четверка (Р, Т, pre, post, М0), состоящая из произвольных конечных множеств Р = {р0, ...,рп-1] и Т = {t0, ...,tm-1], функций pre,post: Т ^ Np и функции М0: Р ^ N. Элементы из Р называются местами, а из Т - переходами. Маркировкой называется функция М: Р ^ N. Функция М0 называется начальной маркировкой.

Сеть Петри наглядно изображается с помощью кругов, прямоугольников и стрелок. Места изображаются в виде кругов, переходам соответствуют прямоугольники. Для всех ti Е Т значения функций pre,post:T ^ N сами будут функциями pre(ti):P ^ N, post(ti):P ^ N. Если pre(ti)(pj) = к > 0, то рисуется к стрелок с началом в круге pj и с концом в прямоугольнике ti. Если post(ti)(pj) = к > 0, то проводится к стрелок от перехода t^ к месту Pj. Кроме того, для указания значений маркировки, рисуются точки в кругах. Если M(pi) = к >

0, то в месте pi рисуется к фишек.

Состояния сети Петри определены маркировками, которые получаются из начальной с помощью последовательности срабатывания переходов. Переход ti называется допускающим срабатывание, если для текущей маркировки M для всех pj Е Р имеют место неравенства pre(ti)(pj) > M(pj). В этом случае говорят, что маркировка M’ получена в результате срабатывания перехода, если для всех PjEP верно M'(pj) = M(pj) — pre(ti)(pj) + post(ti)(pj).

Вычислительный конвейер, во входной канал которого записано п входных элементов, можно представить с помощью математической модели в виде сети Петри. На рисунке 1 показана сеть Петри конвейера, состоящего из четырех функциональных устройств и пяти каналов. Входные данные состоят из трех элементов.

Рис. 1. Конвейер из четырех функциональных устройств

Для каждого функционального устройства щ, 0 < / < р — 1, задано время выполнения. Функциональное устройство выполняет последовательно чтение из канала , вычисление операции и запись в канал С(+ь 0</<р — 1. Время выполнения обозначим через т(и{). Имеет место равенство т(щ) = + т(а^) + w(Ci+1). Для сетей Петри вводится отношение

независимости, при котором два перехода независимы, если они не имеют общих входных и выходных мест. В сети Петри на рисунке 1 переходы и0 и и1 зависимы, поскольку во время записи устройство и0 должно захватить канал, из которого читает устройство и1. Для того, чтобы учесть это правило, мы измельчаем переходы сети Петри на переходы, время работы которых равно 1. Для того чтобы переходы, полученные после измельчения перехода щ, выполнялись как последовательная подпрограмма, мы добавим сверху место с фишкой, соединенное с первым и последним переходами. В результате для всех 0 < I < р — 1 переход щ будет заменен частью сети Петри, показанной на рисунке 2. Стрелка, входившая раньше в переход щ, будет теперь входить в а^0, а выходившая из щ будет выходить из ^1,т(щ)-1.

Передача данных через каналы будет производиться с помощью алгоритма Дейкстры для решения задачи о производителе и потребителе [6]. В этом алгоритме очередь канала при чтении и записи данных захватывается с помощью бинарного семафора. Отсюда следует, что запись в канал и чтение из него являются зависимыми действиями, в том смысле, что они не могут происходить одновременно.

Рис. 2. Измельчение 1-ого перехода

Напомним определение трассы, введенное Мазуркевичем [7]. С этой целью рассмотрим параллельный вычислительный процесс, состоящий из операций, принадлежащих некоторому множеству команд Е. Если операции могут выполняться одновременно, то будем называть их независимыми. В противном случае они зависимы. Историей [1] называется конечная последовательность операций. Для любого процесса, заданного с помощью конечной последовательности выполняемых операций мы можем переставлять выполнение рядом стоящих независимых операций - результат выполнения процесса не изменится. Поэтому можно отождествлять истории, полученные друг из друга с помощью таких перестановок. Классы историй, полученных с помощью описанного отождествления, называются трассами

[7].

Обработка п элементов данных конвейером и0 ...ир-1 описывается трассой, состоящей из операций у, 0</<р — 1, 0 < _/ < т (щ) — 1, со временем выполнения 1:

1ар-1,1ар-1,2 ■" ар-1,т(ир-1)-1) ,

(а00а0д — ^о,т(и1)-1ар-1,1ар-1,2

в которой для каждого / попарно зависимы операции а^0, а^д,а^,т(^)-1, принадлежащие щ, а также для каждого I из диапазона 0 < I < р — 2 зависимы операции

а1,т(и;)-1 и а1 + 1,0-

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

Всякой сети Петри соответствует асинхронная система (см. [8]). Ее состояниями служат маркировки. Операции определены переходами, действующими на маркировках с помощью срабатываний. Значит, можно воспользоваться результатами работы [8], в которой было показано, что минимальное время обработки п элементов данных будет равно высоте нормальной форме Фоаты этой трассы. Приведение трассы к нормальной форме Фоаты аналогично построению канонической ярусно-параллельной нормальной формы в терминологии [9].

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

Описание компьютерной модели

При построении компьютерной модели мы ориентируемся на сеть Петри, показанную ниже. Местам будут соответствовать каналы с[0], с[1], ..., с[р].

Рис. 3. Конвейер из p устройств

Компьютерная модель будет состоять из р потоков (нитей). Они взаимодействуют с помощью операторов чтения из канала и записи в канал. Перед началом работы п элементов входных данных записывается в канал с[0]. Затем загружаются потоки 0 < і < р — 1:

Thr(i)

I

int x;

for (int j=0; j<n; j++)

I

c[i]>>x; Sleep(tau[i]); c[i+1]<<x;

}

}

Здесь tau[i] равно т(Uj). Пусть r[i] - число, равное времени чтения r(q) из канала q, а w[i+1] - время записи w(ci+1) в канал Cj+b 0 < i < р — 1.

Эти потоки будут работать параллельно. Синхронизация достигается с помощью класса канала.

Наша компьютерная модель имитирует многопроцессорную систему. Это становится возможным благодаря использованию подпрограммы Sleep(t), усыпляющей вызвавший ее поток на время t в миллисекундах. Мы проводили отладку программного обеспечения и испытания, используя процессор Intel(R) Core (TM) i3-2310M CPU. Заметим, что программная реализация возможна и на однопроцессорной системе. Но единица времени, с помощью которой мы считаем ускорение, в некоторых случаях должна увеличиваться. Например, для процессора Intel(R) ATOM(TM) CPU N270 эта единица времени должна быть равна 1 секунде, в этом случае аргумент для подпрограммы Sleep() надо умножить на 1000.

Класс канала состоит из циклической очереди, определенной как массив целых чисел. Одна из программных реализаций этого класса и примеры использования приведены в учебном пособии [10].

Выполнение оператора c[i]>>x начинается с ожидания события «канал не пуст». Затем поток захватывает канал c[i], извлекает из него элемент и освобождает канал. Перед освобождением мы добавили оператор Sleep(r[i]).

Запись c[i+1]<<x состоит из ожидания «свободного места» в очереди канала c[i+1]. Затем поток захватывает канал c[i+1], записывает в него элемент, выполняет задержку Sleep(w[i+1]) и освобождает канал.

На экран выводятся графики ускорений, изображенные на рисунке 4. Графики, состоящие из отрезков, получены с помощью формулы (1). Графики ускорений, полученных опытным путем, выводятся точками. Полученные графики почти не отличаются. Это, во-первых, дает подтверждение формулы (1) опытным путем. Во-вторых, мы получаем адекватную модель асинхронного конвейера с буферной памятью.

Гипотетическая формула для нахождения ускорения получена в предположении, что размер буферной памяти достаточно большой. Исследования графиков ускорения при различных размерах буферной памяти показывают, что все эти графики практически совпадают с гипотетическим. Следовательно, производительность асинхронного конвейера почти не зависит от размера буфера. На практике, скорость обмена с одним регистром выше, чем с массивом регистров. Отсюда можно сделать предположение, что асинхронные конвейеры, у которых каналы состоят из одного регистра, являются оптимальными, как для производства, так и для использования.

Рис. 4. Графики зависимости ускорений от объема входных данных

Компьютерную модель можно применять также для исследования других свойств конвейера. Например, для явления пузырька, которое имеет место в случае кратковременного замедления действия одного из устройств конвейера. В этом случае на графике ускорения появится скачок:

Рис. 5. Явление пузырька

Исследование волновых систем

Переход I сети Петри называется входным для места р, если ро5^)(р) >1. В этом случае проводится стрелка от I к р. Он называется выходным для р, если рге^)(р) >1. В этом случае проводится стрелка от р к I. Сеть Петри называется ацикличной, если в ней нет направленных циклов, состоящих из стрелок р0 ^ t0 ^ р1 ^ 11 ^ ^ ^ рк = р0.

Рассмотрим волновые системы [10]. Волновую систему можно рассматривать как параллельный процесс, заданный с помощью ацикличной сети Петри, каждое место которой имеет единственный входной переход или единственный выходной переход. Возможно, оно имеет и входной, и выходной переходы. Начальная маркировка для каждого места, не

имеющего входной переход, равна некоторому числу п > 0. Переходам соответствуют функциональные устройства, взаимодействующие через буферную память, находящуюся в местах. Термин “волновая” был введен в [11]. Мы рассмотрим в качестве примера волновую систему, имеющую следующую сеть Петри:

Рис. 6. Сеть Петри волновой системы

Входные данные размещаются в местах, имеющих один выходной переход. На рисунке

6 входные данные размещаются в каналах с0 и с1. Результаты вычислений записываются в каналы, соответствующие местам, имеющим по одному входному переходу. Для данного примера, этими каналами будут с6 и с7.

Компьютерная модель этой волновой системы состоит из потоков, соответствующих переходам ее сети Петри и каналов, соответствующим ее местам. Программная реализация использует описанный выше класс канала. Всякий поток, соответствующий переходу, состоит из цикла. В теле цикла сначала принимаются данные из входных каналов. Затем имитируется выполнение операции с помощью подпрограммы 81еер(). После этого передаются данные в выходные каналы. Для волновой системы, показанной на рисунке 6, были получены следующие графики зависимости времени Т5(п) обработки п пар элементов входных данных, где п изменяется от 1 до 99.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 6. Графики времени обработки для волновой системы

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

Времена обработки функциональных устройств

т(и0) т(и1) Т(и2) т(и3) т(и4)

2 2 1 0 1

2 2 3 4 3

2 2 3 5 3

6 5 6 5 4

6 5 7 5 4

6 5 7 8 4

Были проведены эксперименты с другими волновыми системами. Во всех случаях графики хорошо приближаются прямым. На основании этого мы выдвигаем следующую гипотезу:

Для всякой волновой системы, состоящей из р функциональных устройств, существуют константы А и В, такие, что время обработки данных объема п, которые передаются через входные каналы волновой системы, можно вычислять по формуле Тр(п) = А + В(п — 1).

В этом случае константа А будет равна Тр(1), а В = Тр(2) — Тр(1) . Очень возможно, что В = тах0й1йр-1 т(и.1) . Доказательство этой гипотезы значительно облегчит расчет ускорения и производительности волновой системы.

Заключение

Результаты экспериментов позволяют сделать вывод о том, что построенная нами компьютерная модель асинхронного конвейера с буферной памятью подходит для исследования поведения этого конвейера. Исследования привели к выводу, что объем буферной памяти не влияет на ускорение. Мы нашли также возможность моделирования явления пузырьков. Компьютерная модель была также обобщена нами для изучения волновых систем. Мы высказали и экспериментально подтвердили гипотезу о том, что для волновой системы график зависимости времени обработки данных от числа входных элементов описывается с помощью прямой линии.

Данная работа была выполнена в рамках программы стратегического развития государственных образовательных учреждений высшего профессионального образования, грант № 2011-ПР-054.

ЛИТЕРАТУРА

1. Andrews, G. R. Foundations of multithreaded, parallel, and distributed programming. Wesley, University of Arizona, USA, 2000.

2. Цилькер, Б. Я. Организация ЭВМ и систем: учебник для вузов / Б. Я. Цилькер, С.

А. Орлов. - СПб.: Питер, 2011. - 668 с.

3. Соколинский, Л. Б. Методы организации параллельных систем баз данных на

вычислительных системах с массовым параллелизмом: дис. ... доктора физ.-мат. наук. - Челябинск, 2003. - 247 с.

4. Герасимов, А. А. Способы формального описания асинхронных схем / А. А.

Герасимов, П. В. Кустарев // Сборник трудов молодых ученых и сотрудников кафедры ВТ / Под ред. д.т.н., проф. Т. И. Алиева. - СПб: СПбГУ ИТМО, 2010. С. 31-35.

5. Герценбергер, К. В. Аналитическая модель оценки производительности многопроцессорной обработки данных для набора параллельных алгоритмических структур / К. В. Герценбергер, Е. В. Чепин // Бизнес-информатика. 2011. Т.18. №4. С. 24-30.

6. Dijkstra, E. W. Co-operating Sequential Processes. F // Programming Languages. - New York: Academic Press, 1968. P. 65-138.

7. Mazurkiewicz, A. Basic notions of trace theory // Linear time, branching time and partial order in logics and models for concurrency, Lecture Notes in Computer Science. Vol. 354. - Berlin: Springer-Verlag, 1989. P. 285-363.

8. Хусаинов, А. А. Модель для временных оценок параллельных вычислительных систем / А. А. Хусаинов, Е. С. Кудряшова // Информационные технологии XXI века: материалы международной научной конференции (Хабаровск, 20-24 мая 2013 г.). - Хабаровск: изд-во Тихоокеан. гос. ун-та, 2013. С. 203-207.

9. Воеводин, В. В. Параллельные вычисления / В. В. Воеводин, Вл. В. Воеводин. -СПб: БХВ-Петербург, 2002. - 608 с.

10. Хусаинов, А. А. Архитектура вычислительных систем: учеб. пособие / А. А. Хусаинов, Н. Н. Михайлова. - Комсомольск-на-Амуре: изд-во Комсомольского-на-Амуре гос. техн. ун-та, 2006. - 123 с.

11. Водяхо, А. И. Высокопроизводительные системы обработки данных: учеб. пособие для вузов / А. И. Водяхо, Н. Н. Горнец, Д. В. Пузанков. - М.: Высш. шк., 1997. - 304 с.

Рецензент: Амосов Олег Семенович, доктор технических наук, профессор, зав. кафедрой промышленной электроники ФГБОУ ВПО «КнАГТУ».

REFERENCES

12. Andrews, G. R. Foundations of multithreaded, parallel, and distributed programming. -Wesley, University of Arizona, USA, 2000.

13. 2. Cil'ker, B. Ja. Organizacija JeVM i sistem: uchebnik dlja vuzov / B. Ja. Cil'ker,

S. A. Orlov. - SPb.: Piter, 2011. - 668 s.

14. 3. Sokolinskij, L. B. Metody organizacii parallel'nyh sistem baz dannyh na

vychislitel'nyh sistemah s massovym parallelizmom: dis. ... doktora fiz.-mat. nauk. -Cheljabinsk, 2003. - 247 s.

15. 4. Gerasimov, A. A. Sposoby formal'nogo opisanija asinhronnyh shem / A. A.

Gerasimov, P. V. Kustarev // Sbornik trudov molodyh uchenyh i sotrudnikov kafedry VT / Pod red. d.t.n., prof. T. I. Alieva. - SPb: SPbGU ITMO, 2010. S. 31-35.

16. 5. Gercenberger, K. V. Analiticheskaja model' ocenki proizvoditel'nosti

mnogoprocessornoj obrabotki dannyh dlja nabora parallel'nyh algoritmicheskih struktur / K. V. Gercenberger, E. V. Chepin // Biznes-informatika. 2011. T.18. №4. S. 24-30.

17. 6. Dijkstra, E. W. Co-operating Sequential Processes. F // Programming

Languages. - New York: Academic Press, 1968. P. 65-138.

18. 7. Mazurkiewicz, A. Basic notions of trace theory // Linear time, branching time

and partial order in logics and models for concurrency, Lecture Notes in Computer Science, Vol. 354. - Berlin: Springer-Verlag, 1989. P. 285-363.

19. 8. Husainov, A. A. Model' dlja vremennyh ocenok parallel'nyh vychislitel'nyh

sistem / A. A. Husainov, E. S. Kudrjashova // Informacionnye tehnologii XXI veka:

materialy mezhdunarodnoj nauchnoj konferencii (Habarovsk, 20-24 maja 2013 g.). -Habarovsk: izd-vo Tihookean. gos. un-ta, 2013. S. 203-207.

20. 9. Voevodin, V. V. Parallel'nye vychislenija / V. V. Voevodin, Vl. V. Voevodin. -

SPb: BHV-Peterburg, 2002. - 608 s.

21. 10. Husainov, A. A. Arhitektura vychislitel'nyh sistem: ucheb. posobie / A. A.

Husainov, N. N. Mihajlova. - Komsomol'sk-na-Amure: izd-vo Komsomol'skogo-na-Amure gos. tehn. un-ta, 2006. - 123 s.

22. 11. Vodjaho, A. I. Vysokoproizvoditel'nye sistemy obrabotki dannyh: ucheb.

posobie dlja vuzov. / A. I. Vodjaho, N. N. Gornec, D. V. Puzankov. - M.: Vyssh. shk., 1997. - 304 s.

i Надоели баннеры? Вы всегда можете отключить рекламу.