В чем заключается параллельный режим выполнения задач
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

В чем заключается многопроцессорная обработка

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

Операционная система или программа называется многопроцессорной, если способна распределять задачи между процессорами (см. многопоточность).

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

 

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

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

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

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

Соединения процессоров - Многопроцессорные системы с сильной связью (англ. 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 — пример гибко связанной системы.

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

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

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

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

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

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

Кроме того, программы должны быть тщательно и специально написаны, чтобы иметь возможность максимально задействовать возможности архитектуры. Часто применяются специальные оптимизирующие компиляторы, спроектированные чтобы создать код специально для использования в этой среде. Некоторые компиляторы в этой категории обеспечивают специальные конструкции или расширения, чтобы позволить программистам непосредственно определять операции, которые будут выполнены параллельно (например, операторы DO FOR ALL в Фортране, используемого на ILLIAC IV, который был многопроцессорным суперкомпьютером с SIMD-архитектурой).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Что такое Суперкомпьютер

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

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

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

Чаще всего авторство термина приписывается Джорджу Майклу (George Anthony Michael) и Сиднею Фернбачу (Sidney Fernbach), в конце 60-х годов XX века работавшим в Ливерморской национальной лаборатории, и компании CDC. Тем не менее, известен тот факт, что ещё в 1920 году газета New York World (англ.) рассказывала о «супервычислениях», выполнявшихся при помощи табулятора IBM, собранного по заказу Колумбийского университета.

В общеупотребительный лексикон термин «суперкомпьютер» вошёл благодаря распространённости компьютерных систем Сеймура Крэя, таких как, CDC 6600, CDC 7600, Cray-1, Cray-2, Cray-3 (англ.) и Cray-4 (англ.). Сеймур Крэй разрабатывал вычислительные машины, которые по сути становились основными вычислительными средствами правительственных, промышленных и академических научно-технических проектов США с середины 60-х годов до 1996 года. Не случайно в то время одним из популярных определений суперкомпьютера было следующее: — «любой компьютер, который создал Сеймур Крэй». Сам Крэй никогда не называл свои детища суперкомпьютерами, предпочитая использовать вместо этого обычное название «компьютер».

Компьютерные системы Крэя удерживались на вершине рынка в течение 5 лет с 1985 по 1990 годы. 80-е годы XX века охарактеризовались появлением множества небольших конкурирующих компаний, занимающихся созданием высокопроизводительных компьютеров, однако к середине 90-х большинство из них оставили эту сферу деятельности, что даже заставило обозревателей заговорить о «крахе рынка суперкомпьютеров». На сегодняшний день суперкомпьютеры являются уникальными системами, создаваемыми «традиционными» игроками компьютерного рынка, такими как IBM, Hewlett-Packard, NEC и другими, которые приобрели множество ранних компаний, вместе с их опытом и технологиями. Компания Cray по-прежнему занимает достойное место в ряду производителей суперкомпьютерной техники.

Из-за большой гибкости самого термина до сих пор распространены довольно нечёткие представления о понятии «суперкомпьютер». Шутливая классификация Гордона Белла и Дона Нельсона, разработанная приблизительно в 1989 году, предлагала считать суперкомпьютером любой компьютер, весящий более тонны. Современные суперкомпьютеры действительно весят более 1 тонны, однако далеко не каждый тяжёлый компьютер достоин чести считаться суперкомпьютером. В общем случае, суперкомпьютер — это компьютер значительно более мощный, чем доступные для большинства пользователей машины. При этом скорость технического прогресса сегодня такова, что сегодняшний лидер легко может стать завтрашним ведомым.

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

Большинство суперкомпьютеров 70-х оснащались векторными процессорами, а к началу и середине 80-х небольшое число (от 4 до 16) параллельно работающих векторных процессоров практически стало стандартным суперкомпьютерным решением. Конец 80-х и начало 90-х годов охарактеризовались сменой магистрального направления развития суперкомпьютеров от векторно-конвейерной обработки к большому и сверхбольшому числу параллельно соединённых скалярных процессоров.

Массово-параллельные системы стали объединять в себе сотни и даже тысячи отдельных процессорных элементов, причём ими могли служить не только специально разработанные, но и общеизвестные и доступные в свободной продаже процессоры. Большинство массово-параллельных компьютеров создавалось на основе мощных процессоров с архитектурой RISC, наподобие PowerPC или PA-RISC.

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

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

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

Что такое Флопс

FLOPS (также flops, flop/s, флопс или флоп/с; акроним от англ. FLoating - point Operations Per Second, произносится как флопс) — внесистемная единица, используемая для измерения производительности компьютеров, показывающая, сколько операций с плавающей запятой в секунду выполняет данная вычислительная система. Существуют разногласия насчёт того, допустимо ли использовать слово FLOP (или flop или флоп, от англ. FLoating point OPeration), и что оно может означать. Некоторые считают, что FLOP (флоп) и FLOPS (флопс) — синонимы, другие же полагают, что FLOP — это просто количество операций с плавающей запятой (например, требуемое для исполнения данной программы).

Поскольку современные компьютеры обладают высоким уровнем производительности, более распространены производные величины от флопс, образуемые путём использования приставок СИ.

Флопс как мера производительности - Как и большинство других показателей производительности, данная величина определяется путём запуска на испытуемом компьютере тестовой программы, которая решает задачу с известным количеством операций и подсчитывает время, за которое она была решена. Наиболее популярным тестом производительности на сегодняшний день являются тесты производительности LINPACK, в частности HPL, используемый при составлении рейтинга суперкомпьютеров TOP500.

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

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

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

Так, 24 июня 2006 года общественности был представлен суперкомпьютер MDGrape-3, разработанный в японском исследовательском институте RIKEN (Йокогама), с рекордной теоретической производительностью в 1 петафлопс. Однако данный компьютер не является компьютером общего назначения и приспособлен для решения узкого спектра конкретных задач, в то время как стандартный тест LINPACK на нём выполнить невозможно в силу особенностей его архитектуры.

Также высокую производительность на специфичных задачах показывают графические процессоры современных видеокарт и игровые приставки. К примеру, заявленная производительность видеопроцессора игровой приставки PlayStation 3 составляет 192 гигафлопса[3], а видеоускорителя приставки Xbox 360 и вовсе 240 гигафлопсов[3], что сравнимо с суперкомпьютерами двадцатилетней давности. Столь высокие показатели объясняются тем, что указана производительность над числами 32-разрядного формата[4][5], тогда как для суперкомпьютеров обычно указывают производительность на 64-разрядных данных[6][7]. Кроме того, данные приставки и видеопроцессоры рассчитаны на операции с трёхмерной графикой, хорошо поддающиеся распараллеливанию, однако эти процессоры не в состоянии выполнять многие задачи общего назначения, и их производительность сложно оценить классическим тестом LINPACK[8] и тяжело сравнить с другими системами.

Пиковая производительность

Для подсчета максимального количества флопсов для процессора нужно учитывать, что современные процессоры в каждом своём ядре содержат несколько исполнительных блоков каждого типа (в том числе и для операций с плавающей запятой), работающих параллельно, и могут выполнять более одной инструкции за такт. Данная особенность архитектуры называется суперскалярность и впервые появилась ещё в самом первом процессоре Pentium в 1993 году. Процессор конца 2000-х годов, Intel Core 2, также является суперскалярным и содержит 2 устройства вычислений над 64-разрядными числами с плавающей запятой, которые могут завершать по 2 связанные операции (умножение и последующее сложение, MAC) в каждый такт, теоретически позволяющих достичь пиковой производительности до 4 операций за 1 такт в каждом ядре[9][10][11]. Таким образом, для процессора, имеющего в своём составе 4 ядра (Core 2 Quad) и работающего на частоте 3,5 ГГц, теоретический предел производительности составляет 4х4х3,5=56 гигафлопсов, а для процессора, имеющего 2 ядра (Core 2 Duo) и работающего на частоте 3 ГГц — 2х4х3=24 гигафлопсов, что хорошо согласуется с практическими результатами, полученными на тесте LINPACK.

AMD Phenom 9500 sAM2+ с тактовой частотой 2,2 ГГц: 2200 МГц × 4 ядра × 4⋅10−3 = 35,2 Гигафлопса
Для четырёхъядерного процессора Core 2 Quad Q6600: 2400 МГц × 4 ядра × 4⋅10−3 = 38,4 Гигафлопса.

Более новые процессоры могут исполнять до 8 (например, Sandy и Ivy Bridge, 2011—2012 гг, AVX) или до 16 (Haswell и Broadwell, 2013—2014 гг, AVX2 и FMA3) операций на 64-битными числами с плавающей запятой в такт (на каждом ядре)[11]. В последующих процессорах ожидается исполнение 32 операций в такт (Intel Xeon Skylake, Xeon *v5, 2015 г, AVX512)[12]

Sandy и Ivy Bridge c AVX: 8 Флопсов/такт двойной точности[13], 16 Флопс/такт одинарной точности
Intel i7 2700:/Intel i7 3770: 8*4*3900 МГц = 124,8 Гфлопса пиковая двойной точности, 16*4*3900 = 249,6 Гфлопса пиковая одинарной точности.

Intel Haswell/Broadwell с AVX2 и FMA3: 16 Флопсов/такт двойной точности[13]; 32 одинарной точности Флопса/такт
Intel i7 4770: 16*4*3900 МГц = 249,6 Гфлопса пиковая двойной точности, 32*4*3900 = 499,2 Гфлопса пиковая одинарной точности.




Суперкомпьютеры

· ЭНИАК (1946) — 500 флопсов[14]

· БЭСМ-2 (1957) — 10 килофлопсов

· IBM 709 (англ.) (1957) — 5 килофлопсов

Мега[править | править код]

· Т340-А и К340-А (НИИ ДАР) — 2,4 мегафлопса (1963)

· IBM 7030 Stretch

· CDC 6600 (1964) — 1 мегафлопс

· БЭСМ-6 (1968) — 1 мегафлопс (операций сложения)

· БЭСМ-6 на базе Эльбрус-1К2 (1980-х) — 6 мегафлопсов (операций деления)

· CDC 7600 (1969) — 10 мегафлопсов

· Эльбрус-2 (1984) — 125 мегафлопсов

· Cray-1 (1974) — 133 мегафлопса

· ПС2000 (1980) — 200 мегафлопсов

· Электроника СС БИС (1991) — 500 мегафлопсов (двухмашинный вариант)

· Эльбрус-3-1 (1990) — 550 мегафлопсов

Гига[править | править код]

· NEC SX-2 (1983) — 1,3 гигафлопса

· М-13 (1984) — 2,4 гигафлопса

· ПС2100 (1985—1986) — 1,5 гигафлопса

· Cray-2 (1985) — 1,9 гигафлопса

· Cray Y-MP (1988) — 2,3 гигафлопса

· ETA-10G (1990) — 10 гигафлопсов

· Numerical Wind Tunnel (1993) — 124,5 гигафлопса

Тера[править | править код]

· ASCI Red (1996) — 1 терафлопс

· ASCI White (2000) — 12,3 терафлопса

· Earth Simulator (2002) — 35,86 терафлопса

· ASC Purple (2005) — 100 терафлопсов

· IBM Blue Gene/L (2006) — 478,2 терафлопса

Пета[править | править код]

· Cray Jaguar (2008) — 1,059 петафлопса

· IBM Roadrunner (2008) — 1,042 петафлопса[15]

· Ломоносов (2011, НИВЦ МГУ) — 1,3 петафлопса

· Jaguar Cray XT5-HE (2009) — 1,759 петафлопса

· T-Platform A-Class Cluster (Ломоносов-2, ноябрь 2014, НИВЦ МГУ) — 1,85 петафлопса (в 5 стойках)[16][17][18].

· Тяньхэ-1А (2010) — 2,57 петафлопса

· Fujitsu K computer (2011) — 8,16—10,51 петафлопса[19]

· IBM Sequoia (2012) — 16,32 петафлопса[20]

· Cray Titan (бывш. Cray Jaguar; 2012) — >17,59 петафлопса[21]

· Тяньхэ-2 (2013) — 33,86 петафлопса[22]

· Sunway TaihuLight (2016) — 93 петафлопса

· Summit (2018) — 122,3 петафлопса

Экса[править | править код]

Основная статья: Exascale computing

Планируемые:

· По сообщениям 2011 года, Intel планирует к 2020 году создать суперкомпьютер производительностью 4 эксафлопса[23].

· Японская компания Fujitsu сообщает о решениях, потенциально способных повысить производительность её последующих суперкомпьютеров до уровня в 100 петафлопсов (0,1 эксафлопса)[24][25][26][27].

· В 2012 году ряд СМИ сообщили, что к 2018—2020 годам планируется увеличить мощность суперкомпьютера Саровского ядерного центра с уровня 2 петафлопса до 1 эксафлопса[28][29].

В чем заключается параллельный режим выполнения задач

Параллельные процессы – это действия, которые выполняются одновременно.

Термин «параллельная обработка» означает одновременное выполнение заданий, шагов (пунктов) заданий, программ, подпрограмм, циклов, операторов и команд.

Цели параллельной обработки:

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

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

Параллельная обработка информации может производиться на нескольких уровнях:

Способы организации параллельной обработки:

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

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

Типы параллелизма, реализующиеся в алгоритмах решения задач и их потоков:

1. естественный параллелизм независимых задач;

2. параллелизм объектов или данных;

3. параллелизм ветвей задачи или программы.

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

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

 

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

Пример 1: задачи обработки сигналов от радиолокационной станции, при этом все сигналы обрабатываются по одной и той же программе.

Пример 2: обработка информации от датчиков, измеряющих одновременно один и тот же параметр и установленных на нескольких однотипных объектах.

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

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

· выходные величины ветви задачи не являются входными величинами для другой ветви (отсутствие функциональных связей);

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

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

Дата: 2019-07-25, просмотров: 221.