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

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

Содержание:

Введение

Для начала вникнем, что такое «Вычислительные системы», для этого зададимся вопросами: 1. каковы причины их появления, и 2. где они берут свое начало?

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

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

История вычислительных систем начинается намного задолго до появления такого термина как "вычислительная система", что хорошо передает высказывание: «Когда людям надоело вести счёт при помощи загибания пальцев, они изобрели абак».

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

Сам термин «вычислительная система» берет свое начало от 60-х гг. в конце 1950-х - начале 1960-х годов ЭВМ начали комплектовать независимыми процессорами ввода-вывода для параллельного выполнения вычислений и операций обмена данными, тогда и появился термин «вычислительная система».

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

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

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

Вычислительные системы можно разделить на две группы:

· многомашинные;

· многопроцессорные.

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

По характеру связей между ЭВМ ММВС можно разделить на три типа: косвенно-, или слабосвязанные; прямосвязанные; сателлитные.

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

· Резервная ЭВМ находится в выключенном состоянии (ненагруженный резерв) и включается только при отказе основной ЭВМ.

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

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

Прямосвязанные многомашинные ВС обладают существенно большой гибкостью. В ММВС существуют три вида связей: общее ОЗУ (ООЗУ); прямое управление, иначе связь процессор – процессор; адаптер канал – канал (АКК).

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

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

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

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

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

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

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

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

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

В настоящее время производители компьютерных процессоров совмещают в одном процессоре несколько, называется такое решение «Многопроцессорность».

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

Многопроцессорные системы с сильной связью (англ. Tightly-coupled multiprocessor systems) содержат несколько процессоров, которые подключены на шинном уровне. Эти процессоры могут иметь доступ к центральной разделяемой памяти (SMP или UMA), или могут участвовать в иерархии памяти и с локальной и с разделяемой памятью (NUMA). IBM p690 Regatta является примером мощной системы SMP. Процессоры Intel Xeon доминировали над многопроцессорным рынком для деловых PC и были единственной x86-опцией до выпуска линейки процессоров AMD Opteron в 2004 году. Обе линейки процессоров имели свой собственный встроенный кэш, но по-разному обеспечивают доступ к разделяемой памяти: процессоры Xeon через общий канал, а процессоры Opteron через независимые магистрали к системной оперативной памяти.

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

Многопроцессорные системы с гибкой связью (англ. Loosely-coupled multiprocessor systems), часто называемые кластерами, основаны на множественных автономных одиночных или двойных компьютерах, связанных через высокоскоростную систему связи (например, Gigabit Ethernet). Кластер Беовульфа под управлением Linux — пример гибко связанной системы.

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

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

Так же, что касается современных компьютерных процессоров, такое понятие как «многопоточность».

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

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

Многопоточность (как доктрину программирования) не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило, реализуют и многопоточность.

К достоинствам многопоточной реализации той или иной системы перед многозадачной можно отнести следующее:

Упрощение программы в некоторых случаях за счёт использования общего адресного пространства.

Меньшие относительно процесса временны́е затраты на создание потока.

К достоинствам многопоточной реализации той или иной системы перед однопоточной можно отнести следующее:

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

Повышение производительности процесса за счёт распараллеливания процессорных вычислений и операций ввода-вывода.

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

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

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

- Временная многопоточность (англ. Temporal multithreading)

- Одновременная многопоточность (англ. Simultaneous multithreading)

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

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

· высокая надежность и готовность за счет резервирования и возможности реконфигурации;

· высокая производительность за счет возможности гибкой организации параллельной обработки информации и более полной загрузки всего оборудования;

· высокая экономическая эффективность за счет повышения коэффициента использования оборудования комплекса.

Существует три типа структурной организации МПВС: с общей шиной; с перекрестной коммутацией; с многовходовыми ОЗУ.

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

Достоинством такой структуры является простота, в том числе изменения комплекса, а также доступность модулей ОЗУ для всех остальных устройств.

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

2. Многопроцессорные ВС с перекрестной коммутацией.

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

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

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

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

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

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

Особенностью многопроцессорных вычислительных систем является наличие общей оперативной памяти в качестве общего ресурса

Кроме приведенных структурных организаций Многомашинных ВС и многопроцессорных ВС - нередко встречаются и смешанные.

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

3. Аппаратное обеспечение

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

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

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

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

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

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

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

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

4. Программное обеспечение

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

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

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

Базовый уровень. Самый низкий уровень программного обеспечения представляет базовое программное обеспечение. Оно отвечает за взаимодействие с базовыми аппаратными средствами. Как правило, базовые программные средства непосредственно входят в состав базового оборудования и хранятся в специальных микросхемах, называемых постоянными запоминающими устройствами (ПЗУ— Read Only Memory, ROM). Программы и данные записываются («прошиваются») в микросхемы ПЗУ на этапе производства и не могут быть изменены в процессе эксплуатации.

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

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

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

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

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

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

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

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

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

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

Информационное обеспечение - это совокупность программ и предварительно подготовленных данных, необходимых для работы данных программ. Совокупность программного и информационного обеспечения называют математическим обеспечением. В основном оно «жестко» записывается в микросхемы ПЗУ и может быть изменено только путем замены ПЗУ или его перепрограммирования на специальном оборудовании.

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

Системное программное обеспечение является неотъемлемой частью для работы Вычислительных систем. Прикладное программное обеспечение предоставляет пользователю дружественный интерфейс взаимодействия с аппаратной средой. Для составления программы ему достаточно знать правила по использованию вычислительной системы в терминах своей предметной области — предметно-ориентированную среду программирования. Так к примеру, для экономистов предлагается среда программирования Кобол, для инженеров — Фортран, Си, для параллельного программирования разработаны свои среды программирования — MPI, OpenMP, Оккам, Фортран-GNS, Фортран-DVM, НОРМА и др.

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

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

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

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

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

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

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

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

Библиотеки программ. Данный вид математического обеспечения состоят из набора пакетов программ (пакет пакетов), предназначенных для решения широкого круга задач, например задач численного анализа, математической статистики и др.

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

Одной из старейших систем математического обеспечения ЭВМ

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

Заключение

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

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

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

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

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

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

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

  1. Максимов Н.В., Партыка Т.Л., Попов И.И. Архитектура ЭВМ и вычислительных систем - М.: ФОРУМ – ИНФРА - М, 2005.
  2. Таненбаум Э. Архитектура компьютера. -4 изд-е. - СПб.: Питер, 2002.
  3. Черняк, Нина Григорьевна. Архитектура вычислительных систем и сетей : Учеб. пособие для вузов по спец. "Орг. механизир. обраб. экон. информ."] / Н. Г. Черняк, И. Н. Буравцева, Н. М. Пушкина. - 2-е изд., перераб. и доп. - М. : Финансы и статистика, 1986
  4. Пятибратов А.П., Гудыно Л.П., Кириченко А.А. Вычислительные машины, сети и телекоммуникационные системы, М., 2009.
  5. Шилов В. В. Вычислительная система [Электронный ресурс] // ЭНЦИКЛОПЕДИЯ /URL : http://knowledge.su/v/vychislitelnaya-sistema (дата обращения: 07.08.2019)
  6. . Бройдо В.Л. Вычислительные системы, сети и телекоммуникации - СПб: Питер, 2002.
  7. Ефремов, В.Ф. Мелехин, К.П. Дурандин , Вычислительные машины и системы: Учебник для вузов/В.Д. Ефремов, В.Ф. Мелехин, К.П. Дурандин и др. - М.: Высш.шк., 1993.
  8. В. А. Фисун, Вестник МГТУ им. Н.Э. Баумана. Сер. “Естественные науки”. 2012
  9. Емельянов С.В Информационные технологии и вычислительные системы. М., 2010.
  10. Персональный сайт Каменевой Л.Е [Электронный ресурс]; История развития вычислительных систем / Сайт учителя информатике Каменевой Л.Е, https://www.sites.google.com/site/informatika1011kl/lekcia-vycislitelnye-sistemy, дата обращения 12.10.2019
  11. Классификация вычислительных систем [Электронный ресурс] // Информатика, информационные технологии/ URL : http://csaa.ru/klassifikacija-vychislitelnyh-sistem/ дата обращения: 21.11.2019
  12. Многопроцессорность [Электронный ресурс] // Материал из Википедии. URL : https://ru.wikipedia.org/wiki/Многопроцессорность (дата обращения: 09.08.2019)
  13. Алиев Т.И. Основы проектирования систем [Электронный ресурс] // Портал студенческих и научных материалов Ozlib.com / URL : https://ozlib.com/847102/informatika/harakteristiki_vychislitelnyh_sistem (дата обращения: 30.09.2019)
  14. Горбунов – Посадов М. М., Корягин Д. А., Мартынюк В. В. Системное обеспечение пакетов прикладных программ. М.: Наука, 1990.
  15. Захаров А. Ю., Маркачев Ю. Е. Современные пакеты и библиотеки программ математического обеспечения // Препринт ИПМ им. М.В. Келдыша. 1987. № 126.
  16. Состав вычислительной системы [Электронный ресурс] // Информатика, информационные технологии/ URL : http://csaa.ru/sostav-vychislitelnoj-sistemy/ дата обращения: 15.11.2019
  17. Гергель Виктор. Теория и практика параллельных вычислений [Электронный ресурс] //
  18. Интернет-Университет Суперкомпьютерных Технологий НОУ ИНТУИТ/ URL: https://www.intuit.ru/studies/courses/1156/190/lecture/4942?page=4 (дата обращения: 12.02.2020)
  19. Каган Б.М. Электронные вычислительные машины и системы: Учебное пособие для вузов. - М.: Энергоатомиздат, 1991