ЖУРНАЛ «СТА» №3/2004

54 СТА 3/2004 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ СИСТЕМЫ РЕАЛЬНОГО ВРЕМЕНИ www.cta.ru О БЩИЕ СООБРАЖЕНИЯ Идея многопроцессорной обработ- ки как способа повышения общей эффективности вычислений роди- лась давно. Однако прежде чем попы- таться распределить вычисления ме- жду N процессорами, нужно отчётли- во понимать, что не любой вычисли- тельный процесс получит какиелибо преимущества от реализации на мно- гопроцессорных архитектурах. Для этого он должен быть достаточно «хо- рошо распараллеливаемым». Какие же классы задач предполагают такой вычислительный процесс? Это, как правило, задачи с вычислениями, многократно повторяемыми при ва- риациях некоторых начальных усло- вий в каждом цикле. Кроме того, же- лательно, чтобы в таких задачах пара- метры последующих циклов вычис- ления имели бы минимально выра- женную зависимость от результатов предыдущих циклов («итерацион- ность»). Как это ни странно, достаточно ши- рокие классы задач оказываются в оп- ределённой мере «хорошо распаралле- ливаемыми». Приведём в качестве примера некоторые из них. ● Восстановление криптографирован- ного текста с помощью всех возмож- ных ключей шифрования и выбор наилучшего результата. ● Поиск в больших объёмах данных по ключевым признакам или по их сложным комбинациям. ● Прочностные расчёты, реализация метода конечных элементов, задачи гидро и электродинамики сплош- ных сред. ● Проверка комбинаторно синтези- руемых гипотез и идентификация от- меток, полученных пространственно разнесёнными приёмниками, в сис- темах радио и гидролокации. ● Задачи баллистики. ● Обработка изображений, например идентификация дактилоскопических отпечатков или анализ аэрокосмиче- ских снимков. ● Множественное вычисление целе- вой функции в процедурах много- мерной нелинейной оптимизации. ● Реализация нестационарного метода статистического моделирования для газовой динамики и кинетической теории газов. ● Обеспечение высокой надёжности систем баз данных. ● Большинство задач поиска вариантов в пошаговых игровых программах. Легко заметить, что степень успеш- ности распараллеливания обратно за- висима от того, как сильно исходные данные последующих циклов вычисле- ний зависят от предыдущих. За годы эволюции идеи распре- делённой обработки сложились в раз- личные её реализационные механиз- мы, каждый из которых в той или иной степени соответствует двум основным моделям (рис. 1): сильносвязанные многопроцессорные системы (системы с симметричной многопроцессорной обработкой — SMP) и слабосвязанные многопроцессорные системы (кластер- ные системы). В SMPсистемах N обрабатываю- щих процессоров разделяют общие поля внешних устройств и, что осо- бенно важно, поле оперативной памя- ти. Для реализации этой модели необ- ходимо использовать специализиро- ванные архитектуры взаимодействия процессоров и специальные наборы системных микросхем (chipset). В та- ких архитектурах оптимальным меха- низмом распределения работы между Олег Цилюрик В данной статье на примерах конкретных рабочих программ показано, насколько просто организовать параллельную работу нескольких сетевых узлов над единым вычислительным процессом, используя специфические особенности операционной системы реального времени QNX. Такая организация может быть использована для весьма существенного наращивания производительности вычислительных систем и применима для достаточно широкого круга практических задач. Отмечается свойственное QNX отсутствие условий для инверсии приоритетов в распределённой системе, что особенно важно для обеспечения надёжного функционирования систем реального времени. QNX: кластерные вычисления Внутренняя шина доступа к памяти CPU RAM CPU Внешняя шина межпроцессорной связи CPU CPU RAM RAM Рис. 1. Сильносвязанная ( а ) и слабосвязанная ( б ) многопроцессорные архитектуры а б

RkJQdWJsaXNoZXIy MTQ4NjUy