Система распределённых вычислений на базе локальных сетей

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

ЛИТЕРАТУРА

1. Гузик В.Ф., Золотовский В.Е. Проблемно-ориентированные высокопроизводительные вычислительные системы. Учебное пособие, Таганрог, Изд-во ТРТУ, 1998. 326 с.

2. Самойленко А.П., Чекрыгина Е.Р. Принципы организации самодиагностирующихся многопроцессорных вычислительных систем. Известия ТРТУ №3, 2001.65-71 с.

В.Е. Золотовский, Е.В. Ляпунцова, П.В. Савельев

СИСТЕМА РАСПРЕДЕЛЁННЫХ ВЫЧИСЛЕНИЙ НА БАЗЕ ЛОКАЛЬНЫХ

СЕТЕЙ

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

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

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

Создание параллельной программы включает в себя две стадии:

• последовательный алгоритм подвергается декомпозиции (распараллеливанию), то есть разбивается на независимо работающие ветви; для взаимодействия в ветви вводятся две дополнительных нематематических операции: приём и передача данных;

• распараллеленный алгоритм записывается в виде программы, в которой операции приёма и передачи записываются в терминах конкретной системы связи между ветвями.

Исходя из этого, чтобы построить систему распределённых вычислений, необходимо выбрать способ организации взаимодействия между удаленными машинами. Существует множество протоколов обмена информацией, например FTP, POP, SMTP, HTTP, и т.д. Однако для повышения быстродействия всей системы в целом необходима структура, позволяющая обмениваться только теми данными, которые нужны каждой конкретной подзадаче. А все приведённые протоколы передают ещё и служебную информацию, которая в нашем случае оказывается невостребованной, и, следовательно, лишь замедляет работу системы. Исходя из всего вышесказанного, нужно использовать не стандартный существующий протокол, а то, на чем он строится, его основу.

В качестве такого базиса можно взять сокеты (sockets). На их основе создаются приложения архитектуры клиент/сервер. Сокеты позволяют производить пересылку и приём только тех данных, которые нам необходимы, того размера, который мы определим.

Работа с сокетами организуется через события либо через поток. Однако если построить работу, опираясь на события, возникающие при попытке записи или чтения сокета, то есть высокая вероятность того, что одна из подзадач будет решаться быстрее и чаще передавать информацию для других, а, следовательно, последние будут оперировать неверными данными для своих вычислений. Это приведёт к ошибочным результатам решения поставленной задачи.

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

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

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

Исходные данные представляют собой:

1) электрическую принципиальную схему электромобиля с указание параметров элементов;

2) систему дифференциальных уравнений, описывающую принципиальную

схему.

В качестве базы вычислительной системы использовалась локальная сеть Fast Ethernet со скоростью передачи данных 100 Мбит/с. Операционная система -Windows NT 4.0.

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

Обмен информацией было решено организовать через сокетный поток. Анализ традиционных сред разработки программного обеспечения показал, что предпочтительнее всего использовать Visual C++6.0 или Borland Delphi 5. Достаточно простая организация работы с сокетным каналом в Delphi оказала решающее воздействие на выбор среды разработки.

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

xw = xi + Axw,

1 * 1

где Axi+1 = -(K^K + K3); K2 = At f(xi + -K^;

6 2

ж $

K1 = At f(xi); K3 = At f(xi - K1 + 2K2) ;

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

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

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

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

„ , График зависимости скорости от времени

20 15 10 5

5 10 15 20 25 30 t с

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

В.Е. Золотовский, Д.В. Москвитин

СИСТЕМА ТЕСТИРОВАНИЯ МНОГОПРОЦЕССОРНОГО ВЫЧИСЛИТЕЛЯ НА БАЗЕ ADP160QPCI

ADP160QPCI - система сбора и цифровой обработки сигналов, основанная на процессоре ADSP-21160 SHARK. Она позволяет выполнять программы SHARK во взаимодействии с устройствами АЦП и ЦАП, размещенными на дочерней плате ADM, и с дополнительными процессорами ADSP-21160 или ADSP-2116Х ADP160QPCI устанавливается в PCI шину персонального компьютера. При этом Вы можете загружать программы ADSP-21160 и данные, осуществлять сброс процессора, просматривать память и инициализировать выполнение программы.

На плате установлены четыре процессора ADSP-21160M, которые связаны между собой через локальную шину и через линк-порты по полному графу. [1]

Микропроцессор ADSP-21160 -имеет тактовую частоту 80 МГц и выполняет команды за 12,5 нс. Его производительность составляет 600 MFLOPS в пике и 400 MFLOPS при выполнении КИХ - фильтрации.[2]

Поскольку ADSP-21160 имеет два процессорных элемента, DSP может обрабатывать данные как в SISD, так и в SIMD. В режиме SISD, ADSP-21160 обрабатывает данные в совмещенном режиме, используя только первичный вычислительный модуль (PEx), который является всегда активным. Запустить вторичный элементарный процессор (PEy) и поместить ADSP-21160 в режим SIMD позволяет просто установка бита (PEYEN) в регистре MODE1. При этом PEy выполняет те же самые команды, как и первичный вычислительный модуль, но они вычисляют различные данные.

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

При перенесении кода с ADSP-2106X SHARC к ADSP-21160 SIMD SHARC, увеличение эффективности изменяется в соответствии с характером переносимого алгоритма. Цель оптимизации состоит в том, что бы при данной операции как можно больше распараллелить на уровне команд выполнение ступеней алгоритма. Этот параллелизм является преимуществом SIMD архитектуры. В то