Файл: Состав и свойства вычислительных систем. Информационное и математическое обеспечение вычислительных систем (Многопроцессорность).pdf
Добавлен: 04.04.2023
Просмотров: 118
Скачиваний: 1
Введение
Для начала вникнем, что такое «Вычислительные системы», для этого зададимся вопросами: 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 — пример гибко связанной системы.
Системы с сильной связью работают лучше и физически они меньше, чем гибко связанные системы, но исторически потребовали больших начальных инвестиций и могут быстро амортизовываться; узлы в гибко связанной системе — обычно недорогие компьютеры и могут быть использованы как независимые машины после удаления из кластера.
Системы с сильной связью имеют тенденцию быть намного больше энергоэффективными, чем кластеры. Значительная энергоэффективность достигается за счёт того, что компоненты в таких системах заранее проектируются для работы в конкретной системе, в то время как гибко связанные системы зачастую используют компоненты, спроектированные для работы в более широком классе систем.
Так же, что касается современных компьютерных процессоров, такое понятие как «многопоточность».
Многопоточность - свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.
Сутью многопоточности является квазимногозадачность на уровне одного исполняемого процесса, то есть все потоки выполняются в адресном пространстве процесса. Кроме этого, все потоки процесса имеют не только общее адресное пространство, но и общие дескрипторы файлов. Выполняющийся процесс имеет как минимум один (главный) поток.
Многопоточность (как доктрину программирования) не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило, реализуют и многопоточность.
К достоинствам многопоточной реализации той или иной системы перед многозадачной можно отнести следующее:
Упрощение программы в некоторых случаях за счёт использования общего адресного пространства.
Меньшие относительно процесса временны́е затраты на создание потока.
К достоинствам многопоточной реализации той или иной системы перед однопоточной можно отнести следующее:
Упрощение программы в некоторых случаях, за счёт вынесения механизмов чередования выполнения различных слабо взаимосвязанных подзадач, требующих одновременного выполнения, в отдельную подсистему многопоточности.
Повышение производительности процесса за счёт распараллеливания процессорных вычислений и операций ввода-вывода.
В случае, если потоки выполнения требуют относительно сложного взаимодействия друг с другом, возможно проявление проблем многозадачности, таких как взаимные блокировки.
На обычном процессоре управление потоками осуществляется операционной системой. Поток исполняется до тех пор, пока не произойдёт аппаратное прерывание, системный вызов или пока не истечёт отведённое для него операционной системой время. После этого процессор переключается на код операционной системы, который сохраняет состояние потока (его контекст) или переключается на состояние другого потока, которому тоже выделяется время на исполнение. При такой многопоточности достаточно большое количество тактов процессора тратится на код операционной системы, переключающий контексты. Если поддержку потоков реализовать аппаратно, то процессор сам сможет переключаться между потоками, а в идеальном случае - выполнять несколько потоков одновременно за каждый такт. Для операционной системы и пользователя один такой физический процессор будет виден как несколько логических процессоров.