История параллельных и распределённых вычислений

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Необходимость разделять вычислительные задачи и выполнять их одновременно (параллельно) возникла задолго до появления первых вычислительных машин.

В конце XVIII века во Франции под руководством Гаспара де Прони была начата работа по уточнению логарифмических и тригонометрических таблиц в связи с переходом на метрическую систему[1]. Для её выполнения был необходим огромный по тем временам объем вычислений. Исполнители проекта были разбиты на три уровня:

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

Работа не была завершена из-за революционных событий 1799 года, однако идеи де Прони подтолкнули Чарльза Бэббиджа к созданию аналитической машины.

Решение для модели атомной бомбы в США было получено коллективом учёных, которые пользовались вычислительными машинами.

В 1962 году Э.В.Евреиновым (лауреатом Ленинской премии, 1957) совместно с Ю.Г.Косаревым в ИМ СО РАН предложена модель коллективных вычислителей и обоснована возможность построения суперкомпьютеров на принципах параллельного выполнения операций, переменной логической структуры и конструктивной однородности. [2]

В 1973 году Джон Шох и Джон Хапп из калифорнийского научно-исследовательского центра Xerox PARC написали программу, которая по ночам запускалась в локальную сеть PARC и заставляла работающие компьютеры выполнять вычисления [3].

В 1977 году в НГТУ (Новосибирск) на кафедре вычислительной техники под руководством В.И.Жираткова была разработана распределенная вычислительная система из трех ЭВМ "Минск-32" с оригинальным аппаратным и программным обеспечением, поддерживающим протоколы физического, канального и сетевого уровней, и обеспечивающим выполнение параллельных задач. Одна машина находилась на ВЦ НГТУ, а две другие - на ВЦ Института Математики СО РАН. Связь между НГТУ и ИМ СО РАН обеспечивалась по радиоканалу с использованием направленных антенн. Система тестировалась при решении оптимизационных задач в области экономики с использованием крупноблочного распараллеливания.

В 1978 году советский математик В. М. Глушков работал над проблемой макроконвейерных, распределенных вычислений. Он предложил ряд принципов распределения работы между процессорами[4]. На базе этих принципов им была разработана ЭВМ ЕС-2701.

В 1988 году Арьен Ленстра и Марк Менес написали программу для факторизации длинных чисел. Для ускорения процесса программа могла запускаться на нескольких машинах, каждая из которых обрабатывала свой небольшой фрагмент. Новые блоки заданий рассылались на компьютеры участников с центрального сервера проекта по электронной почте. Для успешного разложения на множители числа длиной в сто знаков этому сообществу потребовалось два года и несколько сотен персональных компьютеров [3].

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

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

28 января 1997 года стартовал конкурс RSA Data Security на решение задачи взлома методом простого перебора 56-битного ключа шифрования информации RC5. Благодаря хорошей технической и организационной подготовке проект, организованный некоммерческим сообществом distributed.net, быстро получил широкую известность [3].

17 мая 1999 года на базе платформы BOINC запущен проект SETI@home, занимающийся поиском внеземного разума путём анализа данных с радиотелескопов, используя добровольную вычислительная сеть на базе Grid.

Такие проекты распределённых вычислений в интернете, как SETI@Home и Folding@Home обладает не меньшей вычислительной мощностью, чем самые современные суперкомпьютеры. Интегральная производительность проектов на платформе BOINC по данным на 16 мая 2010 года составляет 5,2 петафлопс[5]. Производительность сети Bitcoin к 6 октября 2013 года достигла 17000 петафлопс [6]. Для сравнения, пиковая производительность самого мощного суперкомпьютера («K computer», Япония) — 8,16 петафлопс[7]. До середины 2011 года самым мощным суперкомпьютером являлся Тяньхэ-1А с производительностью «всего» 2,57 петафлопс[8]. Проект отмечен в Книге рекордов Гиннеса как самое большое вычисление[9].

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

Примечания[править | править код]

  1. Распределённые вычисления: волонтёры на службе науки
  2. Э.В. Евреинов, Ю.Г. Косарев Однородные универсальные вычислительные системы высокой производительности. // Новосибирск: Наука, 1966.
  3. 1 2 3 С миру по нитке: Суперкомпьютер "журнал «Популярная механика»
  4. Словарь по кибернетике / Под редакцией академика В. С. Михалевича. — 2-е. — Киев: Главная редакция Украинской Советской Энциклопедии имени М. П. Бажана, 1989. — С. 320. — 751 с. — (С48). — 50 000 экз. — ISBN 5-88500-008-5.
  5. BOINCstats | BOINC combined — Credit overview Архивная копия от 5 мая 2010 на Wayback Machine
  6. Bitcoin Charts
  7. TOP500 за июнь 2011
  8. November 2009 | TOP500 Supercomputing Sites
  9. Самое большое вычисление, Книга рекордов Гиннеса