История параллельных и распределённых вычислений
Необходимость разделять вычислительные задачи и выполнять их одновременно (параллельно) возникла задолго до появления первых вычислительных машин .
В конце XVIII века во Франции под руководством Гаспара де Прони была начата работа по уточнению логарифмических и тригонометрических таблиц в связи с переходом на метрическую систему . Для её выполнения был необходим огромный по тем временам объем вычислений. Исполнители проекта были разбиты на три уровня:
квалифицированные специалисты-вычислители, от которых требовалась аккуратность при проведении вычислений;
организаторы распределения заданий и обработки полученных результатов;
организаторы подготовки математического обеспечения и обобщения полученных результатов (высший уровень, в состав которого входили Адриен Лежандр и Лазар Карно).Работа не была завершена из-за революционных событий 1799 года, однако идеи де Прони подтолкнули Чарльза Бэббиджа к созданию аналитической машины.
Решение для модели атомной бомбы в США было получено коллективом учёных, которые пользовались вычислительными машинами.
В 1962 году Э.В.Евреиновым (лауреатом Ленинской премии, 1957) совместно с Ю.Г.Косаревым в ИМ СО РАН предложена модель коллективных вычислителей и обоснована возможность построения суперкомпьютеров на принципах параллельного выполнения операций, переменной логической структуры и конструктивной однородности. В 1973 году Джон Шох и Джон Хапп из калифорнийского научно-исследовательского центра Xerox PARC написали программу, которая по ночам запускалась в локальную сеть PARC и заставляла работающие компьютеры выполнять вычисления .
В 1977 году в НГТУ (Новосибирск) на кафедре вычислительной техники под руководством В.И.Жираткова была разработана распределенная вычислительная система из трех ЭВМ "Минск-32" с оригинальным аппаратным и программным обеспечением, поддерживающим протоколы физического, канального и сетевого уровней, и обеспечивающим выполнение параллельных задач. Одна машина находилась на ВЦ НГТУ, а две другие - на ВЦ Института Математики СО РАН. Связь между НГТУ и ИМ СО РАН обеспечивалась по радиоканалу с использованием направленных антенн. Система тестировалась при решении оптимизационных задач в области экономики с использованием крупноблочного распараллеливания.
В 1978 году советский математик В. М. Глушков работал над проблемой макроконвейерных, распределенных вычислений. Он предложил ряд принципов распределения работы между процессорами. На базе этих принципов им была разработана ЭВМ ЕС-2701.
В 1988 году Арьен Ленстра и Марк Менес написали программу для факторизации длинных чисел. Для ускорения процесса программа могла запускаться на нескольких машинах, каждая из которых обрабатывала свой небольшой фрагмент. Новые блоки заданий рассылались на компьютеры участников с центрального сервера проекта по электронной почте . Для успешного разложения на множители числа длиной в сто знаков этому сообществу потребовалось два года и несколько сотен персональных компьютеров .
С появлением и бурным развитием интернета всё большую популярность стала получать идея добровольного использования для распределённых вычислений компьютеров простых пользователей, соединённых через интернет .
В январе 1996 года стартовал проект GIMPS по поиску простых чисел Мерсенна, используя компьютеры простых пользователей как добровольную вычислительную сеть .
28 января 1997 года стартовал конкурс RSA Data Security на решение задачи взлома методом простого перебора 56-битного ключа шифрования информации RC5. Благодаря хорошей технической и организационной подготовке проект, организованный некоммерческим сообществом distributed.net, быстро получил широкую известность .
17 мая 1999 года на базе платформы BOINC запущен проект SETI@home, занимающийся поиском внеземного разума путём анализа данных с радиотелескопов, используя добровольную вычислительная сеть на базе Grid .
Такие проекты распределённых вычислений в интернете, как SETI@Home и Folding@Home обладает не меньшей вычислительной мощностью, чем самые современные суперкомпьютеры. Интегральная производительность проектов на платформе BOINC по данным на 16 мая 2010 года составляет 5,2 петафлопс. Производительность сети Bitcoin к 6 октября 2013 года достигла 17000 петафлопс . Для сравнения, пиковая производительность самого мощного суперкомпьютера («K computer», Япония) — 8,16 петафлопс. До середины 2011 года самым мощным суперкомпьютером являлся Тяньхэ-1А с производительностью «всего» 2,57 петафлопс. Проект отмечен в Книге рекордов Гиннеса как самое большое вычисление.
На сегодняшний день для упрощения процесса организации и управления распределёнными вычислениями создано множество программных комплексов , как коммерческих, так и бесплатных.
Источник: Википедия
Связанные понятия
Гибридная вычислительная система — система с гетерогенной аппаратной вычислительной структурой. Комбинация любых вычислительных устройств или блоков, например вычисления с помощью CPU и GPU совместно.
Распределённые вычисления — способ решения трудоёмких вычислительных задач с использованием нескольких компьютеров, чаще всего объединённых в параллельную вычислительную систему. Распределённые вычисления применимы также в распределённых системах управления.Последовательные вычисления в распределённых системах выполняются с учётом одновременного решения многих задач. Особенностью распределённых многопроцессорных вычислительных систем, в отличие от локальных суперкомпьютеров, является возможность...
Вычислительная мощность компьютера (производительность компьютера) — это количественная характеристика скорости выполнения определённых операций на компьютере. Чаще всего вычислительная мощность измеряется во флопсах (количество операций с плавающей запятой в секунду), а также производными от неё. На данный момент принято причислять к суперкомпьютерам системы с вычислительной мощностью более 10 терафлопсов (10*1012 или десять триллионов флопсов; для сравнения - среднестатистический современный настольный...
Параллельные вычислительные системы — это физические компьютерные, а также программные системы, реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах.Например, для быстрой сортировки массива на двухпроцессорной машине можно разделить массив пополам и сортировать каждую половину на отдельном процессоре. Сортировка каждой половины может занять разное время, поэтому необходима синхронизация.
Грид -вычисления (англ. grid — решётка, сеть) — это форма распределённых вычислений, в которой «виртуальный суперкомпьютер» представлен в виде кластеров, соединённых с помощью сети, слабосвязанных гетерогенных компьютеров, работающих вместе для выполнения огромного количества заданий (операций, работ). Эта технология применяется для решения научных, математических задач, требующих значительных вычислительных ресурсов. Грид-вычисления используются также в коммерческой инфраструктуре для решения таких...
Транспью́тер (англ. transputer) — элемент построения многопроцессорных систем, выполненный на одном кристалле большой интегральной схемы, продукт английской компании Inmos (ныне — подразделение STMicroelectronics).
Массово-параллельная архитектура (англ. massive parallel processing, MPP, также «массивно-параллельная архитектура») — класс архитектур параллельных вычислительных систем. Особенность архитектуры состоит в том, что память физически разделена.
Параллельные вычисления — способ организации компьютерных вычислений, при котором программы разрабатываются как набор взаимодействующих вычислительных процессов, работающих параллельно (одновременно). Термин охватывает совокупность вопросов параллелизма в программировании, а также создание эффективно действующих аппаратных реализаций. Теория параллельных вычислений составляет раздел прикладной теории алгоритмов.
Вычисления с памятью — способ построения вычислительных платформ, в которых используются принцип хранения результатов функций в массивах памяти, одномерных или двухмерных, в виде таблиц поиска, а вычисление функций заменяется извлечением значения из таблиц. Такие вычислительные платформы могут следовать как чисто пространственной модели вычислений, как в ПЛИС, так и временно́й модели вычислений (процедурной), когда функция вычисляется за множество тактов. Второй подход нацелен на уменьшение избыточности...
Распределённая система — система, для которой отношения местоположений элементов (или групп элементов) играют существенную роль с точки зрения функционирования системы, а, следовательно, и с точки зрения анализа и синтеза системы.
Ассоциативная память (АП) или ассоциативное запоминающее устройство (АЗУ) является особым видом машинной памяти, используемой в приложениях очень быстрого поиска. Известна также как память, адресуемая по содержимому, ассоциативное запоминающее устройство, контентно-адресуемая память или ассоциативный массив, хотя последний термин чаще используется в программировании для обозначения структуры данных (Hannum и др., 2004).
Архитекту́ра компью́тера — набор типов данных, операций и характеристик каждого отдельно взятого уровня. Архитектура связана с программными аспектами. Аспекты реализации (например, технология, применяемая при реализации памяти) не являются частью архитектуры.
Лисп-машина — универсальная вычислительная машина, архитектура которой оптимизирована для эффективного выполнения программ на языке Лисп.
Тест производительности , бенчмарк (англ. benchmark) — контрольная задача, необходимая для определения сравнительных характеристик производительности компьютерной системы. Иногда бенчмарками также называются программы, которые тестируют время автономной работы ноутбуков и карманных персональных компьютеров, радиус действия беспроводной сети, пропускную способность каналов передачи данных, амплитудно-частотную характеристику звукового тракта и другие доступные для измерения характеристики, напрямую...
Процессорное время (англ. process time или CPU time) — время, затраченное процессором компьютера на обработку задачи (программы). Распределяется между процессами в соответствии с используемым режимом операционной системы.
Логический синтез в электронике — процесс получения списка соединений логических вентилей из абстрактной модели поведения логической схемы (например, на уровне регистровых передач). Наиболее распространенный пример этого процесса — синтез спецификаций, написанных на языках описания аппаратуры. Синтез выполняют программы-синтезаторы, способные оптимизировать проект согласно различным особенностям устройства, таким как временные ограничения, площадь и используемые компоненты. Такие программы обычно...
Программи́руемая по́льзователем ве́нтильная ма́трица (ППВМ, англ. field-programmable gate array, FPGA) — полупроводниковое устройство, которое может быть сконфигурировано производителем или разработчиком после изготовления; отсюда название: «программируемая пользователем». ППВМ программируются путём изменения логики работы принципиальной схемы, например, с помощью исходного кода на языке проектирования (типа VHDL), на котором можно описать эту логику работы микросхемы. ППВМ является одной из архитектурных...
Масштаби́руемость (англ. scalability) — в электронике и информатике означает способность системы, сети или процесса справляться с увеличением рабочей нагрузки (увеличивать свою производительность) при добавлении ресурсов (обычно аппаратных).
Отказоустойчивость — свойство технической системы сохранять свою работоспособность после отказа одного или нескольких составных компонентов.
Параллелизм на уровне команд (англ. Instruction-level parallelism — ILP) является мерой того, какое множество операций в компьютерной программе может выполняться одновременно. Потенциальное совмещение выполнения команд называется «параллелизмом на уровне команд».
Троичный компьютер — компьютер, построенный на двоичных и троичных логических элементах и узлах , работающий в двоичной и троичной системе счисления по законам двоичной и троичной логики с применением двоичных и троичных алгоритмов.
«Се́тунь » — малая ЭВМ на основе троичной логики, разработанная в вычислительном центре Московского государственного университета в 1959 году.
Существуют и иные значения этого слова, см. Мир«МИР» (сокращение от «Машина для Инженерных Расчётов») — серия электронных вычислительных машин, созданных Институтом кибернетики Академии наук Украины, под руководством академика В. М. Глушкова.
Подробнее: МИР
Битовый поток (англ. bitstream или англ. bit stream) — временная последовательность битов.
Защита памяти (англ. Memory protection) — это способ управления правами доступа к отдельным регионам памяти. Используется большинством многозадачных операционных систем. Основной целью защиты памяти является запрет доступа процессу к той памяти, которая не выделена для этого процесса. Такие запреты повышают надёжность работы как программ, так и операционных систем, так как ошибка в одной программе не может повлиять непосредственно на память других приложений. Следует различать общий принцип защиты...
Компью́теры пя́того поколе́ния (яп. 第五世代コンピュータ) — в соответствии с идеологией развития компьютерных технологий, после четвёртого поколения, построенного на сверхбольших интегральных схемах, ожидалось создание следующего поколения, ориентированного на распределенные вычисления, одновременно считалось, что пятое поколение станет базой для создания устройств, способных к имитации мышления.
Архитектура фон Неймана (модель фон Неймана, Принстонская архитектура) — широко известный принцип совместного хранения команд и данных в памяти компьютера. Вычислительные машины такого рода часто обозначают термином «машина фон Неймана», однако соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают принцип хранения данных и инструкций в одной памяти.
В криптографии
атака по энергопотреблению является одной из форм атак по сторонним каналам, при которой криптоаналитик изучает потребляемую мощность устройства, выполняющего криптографические задачи (как например смарт-карта, устойчивый к взлому «черный ящик», интегральная схема и тому подобное). С помощью такой атаки возможно извлечь криптографические ключи или другую секретную информацию из устройства, не оказывая на него непосредственного воздействия.
Разрядность числа в математике — количество числовых разрядов, необходимых для записи этого числа в той или иной системе счисления. Разрядность числа иногда также называется его длиной.
Многопроцессорность ю иногда называют выполнение множественных параллельных программных процессов в системе в противоположность выполнению одного процесса в любой момент времени. Однако термины многозадачность или мультипрограммирование являются более подходящими для описания этого понятия, которое осуществлено главным образом в программном обеспечении, тогда как многопроцессорная обработка является более соответствующей, чтобы описать использование множественных аппаратных процессоров. Система не...
Планкалкюль (нем. Plankalkül — исчисление планов), — первый в мире высокоуровневый язык программирования, созданный немецким инженером Конрадом Цузе в 1943—1945 году и впервые опубликованный в 1948 году. В переводе на русский это название соответствует выражению «планирующее исчисление».
Векторный процессор — это процессор, в котором операндами некоторых команд могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени. Абсолютное большинство процессоров является скалярными или близкими к ним. Векторные процессоры были распространены в сфере научных вычислений, где они являлись основой большинства суперкомпьютеров начиная с 1980-х до 1990-х. Но резкое увеличение производительности...
В информатике параллели́зм — это свойство систем, при котором несколько вычислений выполняются одновременно, и при этом, возможно, взаимодействуют друг с другом. Вычисления могут выполняться на нескольких ядрах одного чипа с вытесняющим разделением времени потоков на одном процессоре, либо выполняться на физически отдельных процессорах. Для выполнения параллельных вычислений разработаны ряд математических моделей, в том числе сети Петри, исчисление процессов, модели параллельных случайных доступов...
Система реального времени (СРВ) — это система, которая должна реагировать на события во внешней по отношению к системе среде или воздействовать на среду в рамках требуемых временных ограничений. Оксфордский словарь английского языка говорит об СРВ как о системе, для которой важно время получения результата. Другими словами, обработка информации системой должна производиться за определённый конечный период времени, чтобы поддерживать постоянное и своевременное взаимодействие со средой. Естественно...
Суперкомпью́тер (англ. Supercomputer, СверхЭВМ, СуперЭВМ, сверхвычисли́тель) — специализированная вычислительная машина, значительно превосходящая по своим техническим параметрам и скорости вычислений большинство существующих в мире компьютеров.
Разделяемая память (англ. Shared memory) является самым быстрым средством обмена данными между процессами.
Система компьютерной алгебры (СКА, англ. computer algebra system, CAS) — это прикладная программа для символьных вычислений, то есть выполнения преобразований и работы с математическими выражениями в аналитической (символьной) форме.
Эллиптическая криптография интернета вещей (англ. Elliptical Curve Internet of Things, ECIOT) — криптографический протокол, основанный на эллиптической криптографии, целью которого является защита связи между устройствами, работающими в соответствии с технологией «интернета вещей», то есть защита связи между устройствами «интернета вещей» и сервером.
Исчисление процессов или алгебра процессов — семейство связанных подходов к формальному моделированию параллельных систем.
Система сбора данных (ССД; Data acquisition, DAS, DAQ) — комплекс средств, предназначенный для работы совместно с персональным компьютером, либо специализированной ЭВМ и осуществляющий автоматизированный сбор информации о значениях физических параметров в заданных точках объекта исследования с аналоговых и/или цифровых источников сигнала, а также первичную обработку, накопление и передачу данных.
Обнаруже́ние оши́бок в технике связи — действие, направленное на контроль целостности данных при записи/воспроизведении информации или при её передаче по линиям связи. Исправление ошибок (коррекция ошибок) — процедура восстановления информации после чтения её из устройства хранения или канала связи.
Неблокирующая синхронизация — подход в параллельном программировании на симметрично-многопроцессорных системах, в котором принят отказ от традиционных примитивов блокировки, таких, как семафоры, мьютексы и события. Разделение доступа между потоками идёт за счёт атомарных операций и специальных, разработанных под конкретную задачу, механизмов блокировки.
Когерентность кэша (англ. cache coherence) — свойство кэшей, означающее целостность данных, хранящихся в локальных кэшах для разделяемого ресурса. Когерентность кэшей — частный случай когерентности памяти.
Коммуникационная сеть — система физических каналов связи и коммутационного оборудования, реализующая тот или иной низкоуровневый протокол передачи данных. Существуют проводные, беспроводные (использующие радиоволны) и волоконно-оптические каналы связи. По типу переносимого сигнала выделяют цифровые и аналоговые сети. Назначением коммуникационных сетей является передача данных с минимальным количеством ошибок и искажений. На основе коммуникационной сети может строиться информационная сеть, к примеру...
Кластер — группа компьютеров, объединённых высокоскоростными каналами связи, представляющая с точки зрения пользователя единый аппаратный ресурс.
Высокая доступность (англ. high availability) — характеристика технической системы, разработанной для избежания невыполненного обслуживания путём уменьшения или управления сбоями и минимизацией времени плановых простоев. Высокая доступность ожидается от систем жизнеобеспечения, здравоохранения и систем, от которых зависит благополучие общества в целом и экономического благополучия отдельных организаций.
Код операции , операционный код, опкод — часть машинного языка, называемая инструкцией и определяющая операцию, которая должна быть выполнена.
Формальная верификация или формальное доказательство — формальное доказательство соответствия или несоответствия формального предмета верификации его формальному описанию. Предметом выступают алгоритмы, программы и другие доказательства.