Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Состав и свойства вычислительных систем. Информационное и математическое обеспечение вычислительных систем

Содержание:

Введение

Вычислительные машины за свою полувековую историю прошли стремительный и впечатляющий путь, отмеченный частыми сменами поколений ЭВМ.

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

Термин вычислительная система (далее – ВС) появился в начале — середине 60-х гг. при создании ЭВМ третьего поколения. Это время знаменовалось переходом на новую элементную базу — интегральные схемы. Следствием этого явилось появление новых технических решений: разделение процессов обработки информации и ее ввода-вывода, множественный доступ
и коллективное использование вычислительных ресурсов в пространстве
и во времени. Появились сложные режимы работы ЭВМ — многопользовательская и многопрограммная обработка.

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

Отличительной особенностью ВС по отношению к классическим ЭВМ является наличие в ней нескольких вычислителей, реализующих параллельную обработку.

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

Параллелизм в вычислениях в значительной степени усложняет управление вычислительным процессом, использование технических
и программных ресурсов. Эти функции выполняет операционная система ВС.

Состав и свойства вычислительных систем

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

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

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

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

Многочисленные интерфейсы, присутствующие в архитектуре любой вычислительной системы, можно условно разделить на две большие группы: последовательные и параллельные. Через последовательный интерфейс данные передаются последовательно, бит за битом, а через параллельный — одновременно группами битов. Количество битов, участвующих в одной посылке, определяется разрядностью интерфейса, например восьмиразрядные параллельные интерфейсы передают один байт (8 бит)
за один цикл.

Параллельные интерфейсы обычно имеют более сложное устройство, чем последовательные, но обеспечивают более высокую производительность. Их применяют там, где важна скорость передачи данных: для подключения печатающих устройств, устройств ввода графической информации, устройств записи данных на внешний носитель и т. п. Производительность параллельных интерфейсов измеряют байтами в секунду (байт/с; Кбайт/с; Мбайт/с).

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

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

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

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

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

Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся
в специальных микросхемах, называемых постоянными запоминающими устройствами (далее - ПЗУ). Программы и данные записываются
в микросхемы ПЗУ на этапе производства и не могут быть изменены
в процессе эксплуатации.

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

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

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

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

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

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

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

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

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

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

Быстродействие – число команд, выполняемых ЭВМ за 1 секунду. Сравнение по быстродействию различных типов ЭВМ не обеспечивает достоверных оценок, ввиду большой сложности определения численных значений. Очень часто вместо характеристики быстродействия используют связанную с ней характеристику производительности, которая более точно позволяет проводить сравнение разных компьютеров.

Производительность – объем работ, осуществляющих ЭВМ в единицу времени. Единица измерения производительности вычислительной системы – время, измеряемое в секундах.

Одной из альтернативных единиц измерения производительности процессора является MIPS – миллион команд в секунду. Измерение производительности ВС при решении научно-технических задач, в которых используется арифметика с плавающей точкой, оценивается в MFLOPS – миллионах чисел-результатов вычислений с плавающей точкой в секунду, или миллионах элементарных арифметических операций над числами
с плавающей точкой, выполненных в секунду.

Емкость памяти – количество структурных единиц информации, которое может одновременно находиться в памяти. При этом наименьшей структурной единицей информации является бит. Как правило, емкость памяти оценивается в более крупных единицах измерения – байтах (1 байт = 8 бит). Следующими единицами измерения служат 1 Кбит = 1024 бит,
1 Кбайт = 1024 байт, 1 Мбайт = 1024 Кбайт, 1 Гбайт = 1024 Мбайт, 1 Тбайт = 1024 Гбайт.

Емкость оперативной памяти (далее – ОЗУ) и емкость внешней памяти (далее – ВЗУ) характеризуются отдельно. Показатель ОЗУ очень важен
для определения, какие программные пакеты и их приложения могут одновременно обрабатываться в машине.

Надежность – способность ЭВМ при определенных условиях выполнять требуемые функции в течение заданного периода времени. Высокая надежность ЭВМ закладывается в процессе ее производства. Модульный принцип построения позволяет легко проверять и контролировать работу всех устройств, проводить диагностику и устранение неисправностей. Как правило, надежность измеряется, как наработка на отказ, где под наработкой понимается время или объем работы.

Точность – возможность различать почти равные значения. Точность получения результатов обработки в основном определяются разрядностью ЭВМ, а также используемыми структурными единицами представления информации (байт, слово, двойное слово).

Достоверность – свойство информации быть правильно воспринятой. Достоверность характеризуется вероятностью получения безошибочных результатов. Заданный уровень достоверности обеспечивается аппаратно-программными средствами контроля самой ЭВМ. Возможны методы контроля достоверности путем решения эталонных задач и повторных расчетов. В особо ответственных случаях проводятся решения контрольных задач на других ЭВМ и сравнение результатов.

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

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

Эта классификация архитектур была предложена М. Флинном в начале 60-х гг. В ее основу заложено два возможных вида параллелизма: независимость потоков заданий (команд), существующих в системе,
и независимость (несвязанность) данных, обрабатываемых в каждом потоке. Классификация до настоящего времени еще не потеряла своего значения. Однако подчеркнем, что, как и любая классификация, она носит временный
и условный характер. Своим долголетием она обязана тому, что оказалась справедливой для ВС, в которых ЭВМ и процессоры реализуют программные последовательные методы вычислений. С появлением систем, ориентированных на потоки данных и использование ассоциативной обработки, данная классификация может быть некорректной.

Согласно этой классификации существует четыре основных архитектуры ВС:

- одиночный поток команд — одиночный поток данных (ОКОД),
в английском варианте — Single Instruction Single Data (SISD) — одиночный поток инструкций — одиночный поток данных;

- одиночный поток команд — множественный поток данных (ОКМД), или Single Instruction Multiple Data (SIMD) — одиночный поток инструкций — одиночный поток данных;

- множественный поток команд — одиночный поток данных (МКОД), или Multiple Instruction Single Data (MISD) — множественный поток инструкций — одиночный поток данных;

- множественный поток команд — множественный поток данных (МКМД), или Multiple Instruction Multiple Data (MIMD) — множественный поток инструкций — множественный поток данных (MIMD).

Архитектура ОКОД охватывает все однопроцессорные
и одномашинные варианты систем, т.е. с одним вычислителем. Все ЭВМ классической структуры попадают в этот класс. Здесь параллелизм вычислений обеспечивается путем совмещения выполнения операций отдельными блоками АЛУ, а также параллельной работы устройств ввода-вывода информации и процессора. Закономерности организации вычислительного процесса в этих структурах достаточно хорошо изучены.

Архитектура ОКМД предполагает создание структур векторной или матричной обработки. Системы этого типа обычно строятся как однородные, т.е. процессорные, элементы, входящие в систему, идентичны, и все они управляются одной и той же последовательностью команд. Однако каждый процессор обрабатывает свой поток данных. Под эту схему хорошо подходят задачи обработки матриц или векторов (массивов), задачи решения систем линейных и нелинейных, алгебраических и дифференциальных уравнений, задачи теории поля и др. В структурах данной архитектуры желательно обеспечивать соединения между процессорами, соответствующие реализуемым математическим зависимостям. Как правило, эти связи напоминают матрицу, в которой каждый процессорный элемент связан с соседними. По этой схеме строились системы: первая суперЭВМ — ILLIAC-IV, отечественные параллельные системы — ПС-2000, ПС-3000. Идея векторной обработки широко использовалась в таких известных суперЭВМ, как Cyber-205 и Gray-I, II, III. Узким местом подобных систем является необходимость изменения коммутации между процессорами, когда связь между ними отличается
от матричной. Кроме того, задачи, допускающие широкий матричный параллелизм, 9 составляют достаточно узкий класс задач. Структуры ВС этого типа, по существу, являются структурами специализированных суперЭВМ.

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

В ВС этого типа конвейер должны образовывать группы процессоров. Однако при переходе на системный уровень очень трудно выявить подобный регулярный характер в универсальных вычислениях. Кроме того, на практике нельзя обеспечить и «большую длину» такого конвейера, при которой достигается наивысший эффект. Вместе с тем конвейерная схема нашла применение в так называемых скалярных процессорах суперЭВМ, в которых они применяются как специальные процессоры для поддержки векторной обработки.

Архитектура МКМД предполагает, что все процессоры системы работают по своим программам с собственным потоком команд. В простейшем случае они могут быть автономны и независимы. Такая схема использования ВС часто применяется на многих крупных вычислительных центрах для увеличения пропускной способности центра. Больший интерес представляет возможность согласованной работы ЭВМ (процессоров), когда каждый элемент делает часть общей задачи. Общая теоретическая база такого вида работ практически отсутствует. Но можно привести примеры большой эффективности этой модели вычислений. Подобные системы могут быть многомашинными и многопроцессорными. Например, отечественный проект машины динамической архитектуры (МДА) — ЕС-2704, ЕС-2127 — позволял одновременно использовать сотни процессоров.

Классификация вычислительный систем

Основные принципы построения, закладываемые при создании ВС:

1) возможность работы в разных режимах;

2) модульность структуры технических и программных средств, что позволяет совершенствовать и модернизировать вычислительные системы без коренных их переделок;

3) унификация и стандартизация технических и программных решений;

4) иерархия в организации управления процессами;

5) способность систем к адаптации, самонастройке и самоорганизации;

6) обеспечение необходимым сервисом пользователей при выполнении вычислений.

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

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

По назначению вычислительные системы делят на универсальные
и специализированные. Универсальные ВС предназначаются для решения самых различных задач. Специализированные системы ориентированы
на решение узкого класса задач. Специализация ВС может устанавливаться различными средствами:

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

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

По типу вычислительные системы можно разделить
на многомашинные и многопроцессорные ВС. Исторически многомашинные вычислительные системы (далее - ММС) появились первыми. Уже
при использовании ЭВМ первых поколений возникали задачи повышения производительности, надежности и достоверности вычислений.

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

В последнем случае речь идет об информационно-вычислительных сетях.

В многомашинных ВС каждый компьютер работает под управлением своей операционной системы (далее - ОС). А поскольку обмен информацией между машинами выполняется под управлением ОС, взаимодействующих друг с другом, динамические характеристики процедур обмена несколько ухудшаются (требуется время на согласование работы самих ОС). Информационное взаимодействие компьютеров в многомашинной ВС может быть организовано на уровне:

- процессоров;

- оперативной памяти (ОП);

- каналов связи.

При непосредственном взаимодействии процессоров друг с другом информационная связь реализуется через регистры процессорной памяти
и требует наличия в ОС весьма сложных специальных программ.

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

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

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

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

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

Типичным примером массовых многомашинных ВС могут служить компьютерные сети, примером многопроцессорных вычислительных систем (МПВС) — суперкомпьютеры.

По типу ЭВМ или процессоров, используемых для построения ВС, различают однородные и неоднородные системы. Однородные системы предполагают комплексирование однотипных ЭВМ (процессоров), неоднородные — разнотипных. В однородных системах значительно упрощается разработка и обслуживание технических и программных
(в основном ОС) средств. В них обеспечивается возможность стандартизации
и унификации соединений и процедур взаимодействия элементов системы. Упрощается обслуживание систем, облегчается модернизация и их развитие. Вместе с тем существуют и неоднородные ВС, в которых комплексируемые элементы очень сильно отличаются по своим техническим и функциональным характеристикам. Обычно это связано с необходимостью параллельного выполнения многофункциональной обработки. Так, при построении ММС, обслуживающих каналы связи, целесообразно объединять в комплекс связные, коммуникационные машины и машины обработки данных. В таких системах коммуникационные ЭВМ выполняют функции связи, контроля получаемой
и передаваемой информации, формирование пакетов задач и т.д. ЭВМ 6 обработки данных не занимаются не свойственными им работами
по обеспечению взаимодействия в сети, а все их ресурсы переключаются
на обработку данных. Неоднородные системы находят применение и МПС. Многие ЭВМ, в том числе и ПЭВМ, могут использовать сопроцессоры: десятичной арифметики, матричные и т.п.

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

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

По методам управления элементами ВС различают централизованные, децентрализованные и со смешанным управлением. Помимо параллельных вычислений, производимых элементами системы, необходимо выделять ресурсы на обеспечение управления этими вычислениями.
В централизованных ВС за это отвечает главная, или диспетчерская, ЭВМ (процессор). Ее задачей является распределение нагрузки между элементами, выделение ресурсов, контроль состояния ресурсов, координация взаимодействия. Централизованный орган управления в системе может быть жестко фиксирован, или эти функции могут передаваться другой ЭВМ (процессору), что способствует повышению надежности системы. Централизованные системы имеют более простые ОС. В децентрализованных системах функции управления распределены между ее элементами. Каждая ЭВМ (процессор) системы сохраняет известную автономию, а необходимое взаимодействие между элементами устанавливается по специальным наборам сигналов. С развитием ВС и, в частности, сетей ЭВМ интерес
к децентрализованным системам постоянно растет.

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

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

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

Информационное и математическое обеспечение вычислительных систем

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

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

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

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

Одна из классификаций математического обеспечения предполагает деление его на следующие разделы: подпрограммы, пакеты программ, библиотеки программ, системы математического обеспечения.

Программы – это наиболее известный и часто используемый раздел математического обеспечения. Он состоит из отдельных подпрограмм
или программ, содержащих небольшой набор подпрограмм. Первые численные модели на ЭВМ программировались в двоичных кодах, эти подпрограммы были машинно-ориентированными. Мобильность подпрограмм – возможность их использования на различных ЭВМ появилась с внедрением универсальных языков программирования: Алгола и Фортрана. Другим эффектом внедрения алгоритмических языков высокого уровня было появление новой среды описания вычислительных алгоритмов, программа на таком языке может также служить формальным описанием алгоритма. Особенно ярко эта способность алгоритмического языка служить языком публикаций вычислительных алгоритмов появилась у языка Алгол-60. В СССР и за рубежом был опубликован обширный спектр вычислительных алгоритмов на этом языке.
С 70-х годов описания вычислительных алгоритмов публикуются на Фортране из-за широкого распространения этого языка.

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

Пакетом программ называют комплекс программ для решения серийных задач в конкретной области наук и техники. Пакет прикладных программ (далее – ППП), частный случай пакетов, — это система взаимосвязанных программ
и средств организации процесса вычислений. При помощи этих средств,
в рамках реализованной в пакете стратегии организации вычислений, автоматически генерируется цепочка прикладных вычислительных программ для проведения конкретного вычислительного эксперимента. Примером ППП может служить пакет САФРА (Система Автоматизации Физических Расчетов), разработанный в ИПМ им. М.В. Келдыша РАН для решения класса задач математической физики. Программы, создаваемые при помощи пакета САФРА, используют программы из архивного фонда пакета, содержащего свыше тысячи программ. Системная часть пакета обеспечивает подбор оптимальной последовательности программ для решения общей задачи.

Техника ППП широко используются в системах программирования, предназначенных для решения задач линейной алгебры. Базовым уровнем пакетов этого класса служит пакет BLAS (Basic Linear Algebra Subroutine), реализующий основные операции нижнего уровня вычислительной линейной алгебры. Он входит в состав всех пакетов и библиотек линейной алгебры, обеспечивая низкоуровневый интерфейс между программами широкого класса библиотек и ЭВМ различных архитектур. Пакет разделяется на три уровня BLAS: Level 1 BLAS – для векторных операций, Level 2 BLAS –
для матрично-векторных операций, Level 3 BLAS – для матричных операций. Этот пакет был разработан еще в 70-е годы, поэтому возникла необходимость разработки методологии автоматической генерации высокоэффективных подпрограмм для современных вычислительных машин.

Наиболее простой и широко используемый метод оптимизации программ пакета заключается в параметризации характеристик вычислителей и использовании этих данных на уровне трансляции приложений. Другим способом оптимизации программ пакета является разработка кодового генератора. Основой такой технологии является возможность генерации нескольких вариантов объектного кода, а адаптация пакета заключается
в определении его наилучшей версии для конкретной архитектуры ЭВМ
и может производиться с учетом времени счета эталонных задач.
Эти технологии использовались в рамках проекта ATLAS (Automatically Tuned Linear Algebra Software) – создание инструментальных систем разработки программного обеспечения для адаптации оптимального объективного кода пакета линейной алгебры на различные архитектуры ЭВМ.

Пакет PETS (Portable, Extensible Toolkit for Scientific Computation – 1991 г.) для численного решения дифференциальных уравнений в частных производных реализован на широком классе последовательных
и параллельных архитектур.

Библиотека программ состоит из набора пакетов программ (пакет пакетов), предназначенных для решения широкого круга задач, например задач численного анализа, математической статистики и др. Прототипами библиотек можно считать программы общего назначения, поставляемые производителями ЭВМ для своих машин. В СССР наиболее известна была библиотека такого класса – SSP (Scientific Subroutine Package) фирмы IBM. Она была адаптирована для ЭВМ серии ЕС и БЭСМ-6.

Библиотека программ ANSYS заявлена как многоцелевая конечно-элементная библиотека для проведения анализа в широкой области инженерных дисциплин (прочность, теплофизика, динамика жидкостей
и газов и электромагнетизм). Она представляет собой набор свыше десяти специализированных пакетов, включая учебный. Пакеты сертифицированы
по целому ряду международных стандартов, в том числе по стандартам Американской атомной промышленности и ГОСАТОМНАДЗОРа России. Разработчики ANSYSа также используют лицензионные программы
для обеспечения интеграции с другими пакетами. Распределенные вычисления на вычислительных кластерах поддерживаются не на всех пакетах библиотеки.

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

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

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

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

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

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

Иначе обстоит дело с программами других вычислительных алгоритмов, устойчивость которых зависит от значений чисел – входных параметров. Показателен классический пример Дж. Форсайта о проблеме выбора алгоритма для поиска корней квадратного уравнения при различных значениях коэффициентов. Для обеспечения эффективных и корректных вычислений вызов таких библиотечных программ должен сопровождаться заданием дополнительных параметров и указаний, например, о характере входных данных. Интеграция программ в пакетах прикладных программ требует согласования не только формальных и фактических параметров процедур, но также типов и видов таких дополнительных параметров. Поэтому формальная суперпозиция при построении цепочки вызовов библиотечных процедур с учетом и передачей только содержательных параметров будет недостаточно эффективна. Для выбора оптимального варианта цепочки вызовов программ нужен учет и согласование дополнительных неформальных признаков. Успех работы по построению оптимальной траектории вызовов процедур, выполняемых в ППП, зависит от уровня детализации неформальных характеристик процедур и алгоритмов их обработки. Эта обработка может производиться автоматически, как например, в ППП САФРА.

Заключение

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

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

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

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

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

Список литературы

  1. Андреев, А.М. Многопроцессорные вычислительные системы / А.М. Андреев. - М.: МГТУ , 2011. - 332 c.
  2. Атовмян И.О. Архитектура вычислительных систем. М.: МИФИ, 2002. – 254 с.
  3. Бройдо, В.Л. Вычислительные системы, сети и телекоммуникации: Учебник для вузов / В.Л. Бройдо, О.П. Ильина. - СПб.: Питер, 2011. - 560 c.
  4. Гусева, А.И. Вычислительные системы, сети и телекоммуникации: Учебник / А.И. Гусева. - М.: Academia, 2016. - 640 c.
  5. Гусева А.И., Киреев В.С. Вычислительные системы, сети и телекоммуникации: учебник. – М.: Академия, 2014. – 288 с.
  6. Информационные технологии и вычислительные системы: Математическое моделирование. Вычислительные системы. Нанотехнологии. Прикладные аспекты информатики / Под ред. С.В. Емельянова. - М.: Ленанд, 2012. - 108 c.
  7. Калмакова, А.В. Вычислительные машины, системы и сети / А.В. Калмакова, О.Е. Узинцев. - М.: МГИУ, 2008. - 76 c.
  8. Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем. М.: ФОРУМ – ИНФРА-М, 2005. – 512 с.
  9. Мелехин, В.Ф. Вычислительные машины, системы и сети: Учебник / В.Ф. Мелехин. - М.: Академия, 2008. - 336 c.
  10. Орлов С.А., Цилькер Б.Я. Организация ЭВМ и систем. 2-е изд. СПб.: Питер, 2011. – 154 с.
  11. Партыка, Т.Л. Электронные вычислительные машины и системы: Учебное пособие / Т.Л. Партыка, И.И. Попов. - М.: Форум, Инфра-М, 2012. - 368 c.
  12. Путилин, А. Б. Вычислительная техника и программирование в измерительных системах / А.Б. Путилин. - М.: Дрофа, 2006. - 448 c.
  13. Сенкевич, А.В. Архитектура ЭВМ и вычислительные системы: Учебник. - М.: Academia, 2017. - 896 c.