Выполнил:
студент группы 09-ОЗИ2
Ступак Е. И.
Преподаватель:
Дракин А.Ю.

ПАРАЛЛЕЛЬНЫЕ, КЛАСТЕРНЫЕ И РАСПРЕДЕЛЁННЫЕ ВЫЧИСЛЕНИЯ

Введение

"Многие задачи требуют вычислений с большим количеством операций, которые занимают значительные ресурсы даже современной техники, более того, можно с уверенностью считать, что каких бы скоростей ни достигла вычислительная техника всегда найдутся задачи, на решение которых потребовалось значительное время. Многие из таких сложных задач требуют, чтобы результат был получен за как можно меньшее время или даже строго ограниченное. К таким задачам, например, относятся производственные, физические, химические процессы, а также прогнозирование погоды и др. С другой стороны представляет большую техническую проблему уменьшение времени исполнения каждой операции в микропроцессоре.
Очевидным способом увеличить скорость вычислений было бы применение не одного вычислительного устройства, а нескольких, работающих совместно над решением одной задачи. Такой подход носит название параллельных вычислений. Несмотря на кажущуюся простоту решения оно является подчас весьма нетривиальной задачей по проектированию вычислительной техники и разработки алгоритмов. Первая проблема кроется в том, что для того, чтобы задачу можно было решить с помощью параллельных вычислений алгоритм её решения должен допускать распараллеливание, мало того, далеко не каждая задача может быть решена параллельным алгоритмом. Другой же, не менее важной проблемой является построение системы, на которой бы возможна была реализация параллельных вычислений" (1).
"До настоящего времени эффективность самых быстрых компьютеров возросла почти по экспоненте. Первые компьютеры выполняли несколько десятков операций с плавающей запятой в секунду, а производительность параллельных компьютеров в наше время достигает триллионов операций в секунду, и этот рост будет продолжаться. Однако архитектура вычислительных систем, определяющих этот рост, изменилась радикально – от последовательной до параллельной. Эра однопроцессорных компьютеров продолжалась до появления семейства CRAY X-MP/ Y-MP – слабо параллельных векторных компьютеров с 4 – 16 процессорами, которых в свою очередь сменили компьютеры с массовым параллелизмом, то есть компьютеры с тысячами процессоров" (2).

Параллельные вычислительные системы

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

  • параллелизм на уровне битов;
  • параллелизм на уровне инструкций;
  • параллелизм данных;
  • параллелизм задач.

Параллельные вычисления использовались много лет в основном в высокопроизводительных вычислениях, но в последнее время к ним возрос интерес вследствие существования физических ограничений на рост тактовой частоты процессоров. Параллельные вычисления стали доминирующей парадигмой в архитектуре компьютеров, в основном в форме многоядерных процессоров.
Писать программы для параллельных систем сложнее, чем для последовательных, так как конкуренция за ресурсы представляет новый класс потенциальных ошибок в программном обеспечении, среди которых состояние гонки является самой распространённой. Взаимодействие и синхронизация между процессами представляют большой барьер для получения высокой производительности параллельных систем. В последние годы также стали рассматривать вопрос о потреблении электроэнергии параллельными компьютерами. Характер увеличения скорости программы в результате распараллеливания объясняется законом Амдала: если при вычислении не применяются циклические (повторяющиеся) действия, то N вычислительных модулей никогда не выполнят работу в N раз быстрее, чем один единственный вычислительный модуль" (3).

Классификация параллельных вычислительных систем
"Структуру вычислительной системы можно определить как совокупность аппаратных средств ЭВМ с указанием основных связей между ними.
Имеется много различных классификаций вычислительных систем. Рассмотрим наиболее часто используемые классификации.
Классификация Флина
Наибольшее распространение получила классификация вычислительных систем, предложенная в 1966 г. профессором Стенфордского университета М.Д.Флином (M.J.Flynn) – классификация Флина. Эта классификация охватывает только два классификационных признака – тип потока команд и тип потока данных.
В одиночном потоке команд в один момент времени может выполняться только одна команда. В этом случае эта единственная команда определяет в данный момент времени работу всех или, по крайней мере, многих устройств вычислительной системы.
Во множественном потоке команд в один момент времени может выполняться много команд. В этом случае каждая из таких команд определяет в данный момент времени работу только одного или лишь нескольких (но не всех) устройств вычислительной системы.
В одиночном потоке последовательно выполняются отдельные команды, во множественном потоке – группы команд.
Одиночный поток данных обязательно предполагает наличие в вычислительной системе только одного устройства оперативной памяти и одного процессора. Однако при этом процессор может быть как угодно сложным, так что процесс обработки каждой единицы информации в потоке может требовать выполнения многих команд.
Множественный поток данных состоит из многих зависимых или независимых одиночных потоков данных" (4).

Классификация по числу возможных потоков команд
"MIMD (Multiple Instruction Multiple Data – множество потоков команд и множество потоков данных). MIMD компьютер имеет N процессоров, N потоков команд и N потоков данных. Каждый процессор функционирует под управлением собственного потока команд.

SIMD (Single Instruction Multiple Data – единственный поток команд и множество потоков данных). SIMD компьютер имеет N идентичных синхронно работающих процессоров, N потоков данных и один поток команд. Каждый процессор обладает собственной локальной памятью. Сеть, соединяющая процессоры, обычно имеет регулярную топологию.
Другим свойством, различающим параллельные компьютеры, является способ доступа к модулям памяти, то есть имеет ли каждый процессор локальную память и обращается к другим блокам памяти, используя коммутирующую сеть, или коммутирующая сеть соединяет все процессоры с общей памятью.

Классификация по типу строения оперативной памяти
Компьютеры с распределенной памятью (Distributed memory)
Каждый процессор имеет доступ только к локальной собственной памяти. Процессоры объединены в сеть. Доступ к удаленной памяти возможен только с помощью системы обмена сообщениями.
Компьютеры с общей (разделяемой) памятью (True shared memory)
Каждый процессор компьютера обладает возможностью прямого доступа к общей памяти, используя общую шину (возможно, реализованную на основе высокоскоростной сети). В таких компьютерах нельзя существенно увеличить число процессоров, поскольку при этом происходит резкое увеличение числа конфликтов доступа к шине.
В некоторых архитектурах каждый процессор имеет как прямой доступ к общей памяти, так и собственную локальную память.
Компьютеры с виртуальной общей (разделяемой) памятью (Virtual shared memory)
В таких системах общая память как таковая отсутствует. Каждый процессор имеет собственную локальную память. Он может обращаться к локальной памяти других процессоров, используя "глобальный адрес". Если "глобальный адрес" указывает не на локальную память, то доступ к памяти реализуется с помощью сообщений с малой задержкой, пересылаемых по сети, соединяющей процессоры" (5).
"По типу строения оперативной памяти системы разделяются на:

  • системы с общей (разделяемой) памятью;
  • системы с распределенной памятью;
  • системы с физически распределенной, а логически общедоступной памятью (гибридные системы).

В параллельных вычислительных системах с общей памятью (Common Memory Systems или Shared Memory Systems) значение, записанное в память одним из процессоров, напрямую доступно для другого процессора. Общая память обычно имеет высокую пропускную способность памяти (bandwidth) и низкую латентность памяти (latency) при передачи информации между процессорами, но при условии, что не происходит одновременного обращения нескольких процессоров к одному и тому же элементу памяти. К общей памяти доступ разных процессорами системы осуществляется, как правило, за одинаковое время. Поэтому такая память называется еще UMA-памятью (Unified Memory Access) — памятью с одинаковым временем доступа. Система с такой памятью носит название вычислительной системы с одинаковым временем доступа к памяти. Системы с общей памятью называются такжесильносвязанными вычислительными системами.
В вычислительных системах с распределенной памятью (Distributed Memory Systems) каждый процессор имеет свою локальную память с локальным адресным пространством. Для систем с распределенной памятью характерно наличие большого числа быстрых каналов, которые связывают отдельные части этой памяти с отдельными процессорами. Обмен информацией между частями распределенной памяти осуществляется обычно относительно медленно. Системы с распределенной памятью называются также слабосвязанными вычислительными системами.
Вычислительные системы с гибридной памятью – (Non-Uniform Memory Access Systems) имеют память, которая физически распределена по различным частям системы, но логически разделяема (образует единое адресное пространство). Такая память называется еще логически общей (разделяемой) памятью (logically shared memory). В отличие от UMA-систем, в NUMA-системах время доступа к различным частям оперативной памяти различно.

Классификация по степени однородности
По степени однородности различают следующие типы вычислительные систем:

  • однородные (гомогенные);
  • неоднородные (гетерогенные).

Обычно при этом имеется в виду тип используемых процессоров.
В однородных вычислительных системах используются одинаковые процессоры, в неоднородных вычислительных системах – процессоры различных типов. Вычислительная система, содержащая какой-либо специализированный вычислитель (например, Фурье-процессор), относится к классу неоднородных вычислительных систем.
В настоящее время большинство высокопроизводительных систем относятся к классу однородных систем с общей памятью или к классу однородных систем с распределенной памятью.
Рассмотренные классификационные признаки параллельных вычислительных систем не исчерпывают всех возможных их характеристик. Существует, например, еще разделение систем по степени согласованности режимов работы (синхронные и асинхронные вычислительные системы), по способу обработки (с пословной обработкой и ассоциативные вычислительные системы), по жесткости структуры (системы с фиксированной структурой и системы с перестраиваемой структурой), по управляющему потоку (системы потока команд – instruction flow и системы потока данных – data flow) и т.п.
Современные высокопроизводительные системы имеют, как правило, иерархическую структуру. Например, на верхнем уровне иерархии система относится к классу MIMD, каждый процессор которой представляет собой систему MIMD или систему SIMD.
Отметим также тенденцию к построению распределенных систем с программируемой структурой. В таких системах нет общего ресурса, отказ которого приводил бы к отказу системы в целом – средства управления, обработки и хранения информации распределены по составным частям системы. Такие системы обладают способностью автоматически реконфигурироваться в случае выхода из строя отдельных их частей. Средства реконфигурирования позволяют также программно перестроить систему с целью повышения эффективности решения на этой системе данной задачи или класса задач" (3).

Кластерные вычислительные системы

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

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

Обычно различают следующие основные виды кластеров:

  • отказоустойчивые кластеры (High-availability clusters, кластеры высокой доступности);
  • кластеры с балансировкой нагрузки (Load balancing clusters);
  • вычислительные кластеры (Computing clusters);
  • grid-системы.

Кластеры высокой доступности
Обозначаются аббревиатурой HA (англ. High Availability – высокая доступность). Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Типичное число узлов – два, это минимальное количество, приводящее к повышению доступности. Создано множество программных решений для построения такого рода кластеров.
Отказоустойчивые кластеры и системы строятся по трем основным принципам:

  • с холодным резервом или активный/пассивный. Активный узел выполняет запросы, а пассивный ждет его отказа и включается в работу, когда таковой произойдет. Пример – резервные сетевые соединения, в частности, алгоритм связующего дерева;
  • с горячим резервом или активный/активный. Все узлы выполняют запросы, в случае отказа одного нагрузка перераспределяется между оставшимися. То есть кластер распределения нагрузки с поддержкой перераспределения запросов при отказе. Примеры – практически все кластерные технологии, например, Microsoft Cluster Server, OpenSource проект OpenMosix;
  • с модульной избыточностью. Применяется только в случае, когда простой системы совершенно недопустим. Все узлы одновременно выполняют один и тот же запрос (либо части его, но так, что результат достижим и при отказе любого узла), из результатов берется любой. Необходимо гарантировать, что результаты разных узлов всегда будут одинаковы (либо различия гарантированно не повлияют на дальнейшую работу).

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

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

Вычислительные кластеры
Кластеры используются в вычислительных целях, в частности в научных исследованиях. Для вычислительных кластеров существенными показателями являются высокая производительность процессора в операциях над числами с плавающей точкой и низкая латентность объединяющей сети, и менее существенными – скорость операций ввода-вывода, которая в большей степени важна для баз данных и web-сервисов. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. Одна из типичных конфигураций – набор компьютеров, собранных из общедоступных компонентов, с установленной на них операционной системой Linux, и связанных сетью Ethernet или другими относительно недорогими сетями. Такую систему принято называть кластером Beowulf. Специально выделяют высокопроизводительные кластеры. Список самых мощных высокопроизводительных компьютеров можно найти в мировом рейтинге TOP500.

Системы распределенных вычислений (grid)
Такие системы не принято считать кластерами, но их принципы в значительной степени сходны с кластерной технологией. Их также называют grid-системами. Главное отличие – низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов. Такая система, в отличие от кластеров, не похожа на единый компьютер, а служит упрощённым средством распределения вычислений. Нестабильность конфигурации, в таком случае, компенсируется больши́м числом узлов" (7).

Связующее ПО
"Существует класс промежуточного программного слоя, который обеспечивает прозрачную работу приложений в неоднородной сетевой среде. Это так называемое межплатформенное связующее программное обеспечение (middleware). Оно является посредником между подзадачами, выполняемыми на удалённых друг от друга компьютерах. Связующее ПО предоставляет набор программных инструментов для обмена сообщениями в рамках сетей, вызова удалённых процедур, управления доступом к ресурсам и других механизмов управления.
Задача связующего ПО — это создать единую виртуальную среду для выполнения распределённого приложения, не зависящую от сетевых служб, аппаратных платформ, операционных сред и географической удалённости. Работа связующего ПО происходит между приложением и операционной системой в каждом из узлов Grid системы.
Среди проектов связующего ПО выделяются три лидера — это Globus Toolkit, UNICORE и gLite. Всё это сервис-ориентированные системы, во много реализующие общие стандарты и технологии работы с кластерами. Далее мы рассмотрим архитектуру и ключевые элементы этих проектов" (6).

Классы задач
"Рассмотрим классы задач, которые можно эффективно решать на кластерных компьютерах.

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

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

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

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

Распределённые вычислительные системы

"Распределённые вычисления, метакомпьютинг (англ. grid – сеть) – способ решения трудоёмких вычислительных задач с использованием нескольких компьютеров, объединённых в параллельную вычислительную систему" (9).
"Распределённые вычислительные системы являются альтернативой суперкомпьютерам, каждый час работы которых зачастую расписан на многие месяцы вперед. Многочисленные исследовательские группы нередко сталкиваются с проблемой получения доступа к консолям вычислительных гигантов. И в то же время в мире простаивают без дела технические средства с совокупной мощностью, гораздо большей мощности любого из самых производительных суперкомпьютеров мира. Этот пока малоосвоенный резерв – наши домашние и рабочие персональные компьютеры. Любой из них можно присоединить к глобальной сети распределенных вычислений (distributed computing), которая обеспечивает десятки научных проектов недостающими вычислительными ресурсами.
На домашних и офисных компьютерах центральные процессоры большую часть времени работают на «холостом» ходу – их загрузка не превышает нескольких процентов, даже когда пользователь работает в текстовом редакторе или слушает музыку. Предоставив пропадающее даром процессорное время на нужды науки, владелец ПК не чувствует неудобств – вычисления выполняются с минимальным приоритетом, не сказываясь на работе других программ. Соединение с Интернет необходимо лишь для отправки результатов на сервер и получения новых заданий – расходы на трафик возрастают незначительно на фоне обычных «прогулок» в сети.
Распределенные вычисления прекрасно справляются с задачами перебора – например, при поиске простых чисел или совпадения конфигурации молекул потенциальных лекарственных веществ и белков-мишеней, с обработкой данных прямых наблюдений в радиоастрономии и астрофизике, с крупномасштабным моделированием природных процессов, а также с разработкой математического аппарата научных исследований. Такая специализация объясняется трудностями налаживания эффективного взаимодействия между разбросанными по всему миру ПК. Поэтому общая вычислительная задача не «заглатывается» целиком, как в grid-сетях, а разбивается на отдельные блоки, обсчитываемые на разных компьютерах в произвольном порядке и независимо друг от друга.
Значительно уступая профессиональным кластерным системам в удельной производительности на единичный процессор, персональные компьютеры, ноутбуки и сервера участников распределенных вычислений берут числом, ведь их армия растет стремительными темпами, тогда как запуск новых суперкомпьютеров – весьма редкое событие" (10).

Cписок проектов распределённых вычислений
"Ниже приведен список наиболее популярных проектов распределённых вычислений в интернете.
Биология и медицина

  • Biochemical Library – проект университета Вандербилта, основными целями которого являются выяснение структуры мембранных белков, проектирование белков с новой структурой и функцями, понимание количественных отношений между химической структурой и биологической активностью (синтез лекарств);
  • Rosetta@home – вычисление структуры белка с самой низкой энергией;
  • Folding@Home – проект по расчёту третичной структуры белков;
  • World Community Grid – исследования, связанные с генетикой, а также с различными тяжёлыми заболеваниями человека. Решение научно-технических проблем, связанных с экологией, здоровьем, питанием и другими проблемами человечества;
  • grid.org – проект по поиску лекарства от рака (завершен 27 апреля 2007 года вследствие его передачи в сеть World Community Grid в качестве её первого проекта);
  • Find-a-Drug – проект по поиску лекарств от различных болезней путём расчёта докинга белков с различными молекулами (завершен в 2005 году);
  • DrugDiscovery@Home – Российский проект, фолдинг белка, скрининг баз данных биологически активных соединений;
  • CommunityTSC Drug Design Optimization Lab – проект, прекративший исследования 15 апреля 2009 года. Был разработан Институтом Детских Болезней Ротберга. Цель проекта заключалась в поиске лекарства оттуберозного склероза, для чего проводилось моделирование «кандидата» и проверка его лекарственных свойств;
  • evo@home – проект распределенных вычислений, целью которого является применение генетических алгоритмов для фолдинга белков.
  • DNA@Home – поиск последовательностей в молекулах ДНК, отвечающих за различные гены, с использованием вероятностных алгоритмов; исследование механизма транскрипции генов с использованием молекул полимеразы; исследование ДНК бактерий, вызывающих туберкулез и бубонную чуму.

Математика и криптография

  • Seventeen or Bust – проект, занимающийся решением задачи Серпинского;
  • GIMPS – проект по поиску простых чисел Мерсенна;
  • ZetaGrid – проверка гипотезы Римана (окончен в 2005 г.);
  • distributed.net – проекты по взлому RC5 полным перебором, поиск оптимальных линеек Голомба.
  • EulerNet – проект, связанный с поиском решений, подтверждающих справедливость обобщений гипотезы Эйлера.
  • AndrOINC – проект, направленный на взлом криптосистемы RSA (ключ — 1024 бит) для изделий Motorola.

Естественные науки

  • AQUA@home – моделирование работы адиабатического квантового сверхпроводящего компьютера;
  • Climate Prediction – проект по моделированию влияния выбросов углекислого газа на климат Земли;
  • Constellation – проект для решения вычислительно сложных аэрокосмических задач (оптимизация траекторий спутников и зондов, моделирование экзосферы Луны);
  • Cosmology@home – поиск модели, лучшим образом описывающей нашу Вселенную, а также определение диапазона моделей, согласующихся с совмеренными астрономическими и физическими данными;
  • EDGeS@Home – проект в области физики плазмы, моделирование поведения заряженных частиц в магнитном поле термоядерного реактора ITER;
  • Einstein@Home – проект по проверке гипотезы Эйнштейна о гравитационных волнах с помощью анализа гравитационных полей пульсаров или нейтронных звёзд;
  • Enabling Grids for E-sciencE – информация о проекте EGEE;
  • LHC@home – расчёты магнитной подсистемы ускорителя заряженных частиц – Большого адронного коллайдера (LHC);
  • MilkyWay@home – создание трехмерной модели звезд в Галактике;
  • Muon1 DPAD – расчёты при проектировании мюонного ускорителя – Neutrino Factory / Muon Collider;
  • SETI@Home – проект по обработке сигналов радиотелескопа, для поиска радиосигналов внеземных цивилизаций;
  • Spinhenge@home – проект в области нанотехнологий, исследование магнитных молекул" (9).

Список использованной литературы

1. Параллельные вычисления (электронный ресурс) \\ Викизнание (сайт) URL: www.wikiznanie.ru/ru-wz/index.php/Параллельные_Вычисления (дата обращения 11.05.2011)
2. Параллельные вычислительные системы (электронный ресурс) \\ Вычислительный центр имени А. А. Дородницына Российской академии наук (сайт) URL: www.ccas.ru/paral/intro.html (дата обращения 11.05.2011)
3. Параллельные вычислительные системы (электронный ресурс) \\ Википедия (сайт) URL:
www.ru.wikipedia.org/wiki/Параллельные_вычислительные_системы (дата обращения 11.05.2011)
4. Классификация параллельных вычислительных систем (электронный ресурс) \\ База и Генератор Образовательных Ресурсов (сайт) http://bigor.bmstu.ru/?cnt/?doc=Parallel/ch010101.mod/?cou=Parallel/base.cou (дата обращения 11.05.2011)
5. Модели параллельных компьютеров (электронный ресурс) \\ Вычислительный центр имени А. А. Дородницына Российской академии наук (сайт) URL: www.ccas.ru/paral/models.html (дата обращения 12.05.2011)
6. Высокопроизводительные вычисления и кластерные системы (электронный ресурс) \\ Всё о суперкомпьютерах (сайт) URL: http://www.parallelcomputing.ru/archives/412 (дата обращения 12.05.2011)
7. Кластер (группа компьютеров) (электронный ресурс) \\ Википедия (сайт) URL: www.ru.wikipedia.org/wiki/Кластер_(группа_компьютеров) (дата обращения 12.05.2011)
8. Кластер (практическое руководство) – классы задач (электронный ресурс) \\ Практическое руководство по параллельным вычислениям (сайт) URL: http://cluster.linux-ekb.info/class.php (дата обращения 12.05.2011)
9. Распределённые вычисления (электронный ресурс) \\ Википедия (сайт) URL: www.ru.wikipedia.org/wiki/Распределённые_вычисления (дата обращения 15.05.2011)
10. Распределенные вычисления: волонтеры на службе науки (электронный ресурс) \\ Научно-популярный портал «Вечная молодость» (сайт) URL:
http://www.vechnayamolodost.ru/pages/drugienaukiozhizni/rasvyvonaslnab6.html (дата обращения 15.05.2011)

Яндекс.Метрика