Многопроцессорные серверы из серийных компонентов
Системы этого класса строятся из тех же микропроцессоров, на базе которых выпускаются ПК и рабочие станции. Этот подход разрешает проблему преодоления разрыва в быстродействии между обращением в память и обработкой за счет распределения памяти по процессорам, что позволяет одновременно всем процессорам работать с памятью. Универсальные вычислительные системы представлены сегодня двумя ветвями. Первая, наиболее массовая, состоит из многопроцессорных серверов. Все ведущие производители выпускают многопроцессорные серверы с разделяемой памятью, стремясь предоставить пользователям программное окружение, доступное в среде традиционных однопроцессорных компьютеров.
Вторая ветвь представлена параллельными суперкомпьютерами с большим количеством процессоров (MPP — massive parallel processing). Основным режимом их работы является исполнение трудоемких вычислений на базе распределенной памяти.
В первой ветви акцент делается на развитии параллельного программного обеспечения, во второй на разработке архитектур для получения наивысшей производительности. Само их существование определяется ограничением на количество процессоров в серверах, обусловленным пределами масштабируемости системных и прикладных программ.
Универсальные вычислительные системы можно подразделить на две группы: фирменные и собираемые пользователями из стандартных компонентов. В фирменных системах, как правило, используются специально разработанные коммутаторы и аппаратно-программные средства обеспечения отказоустойчивости и высокой готовности (резервирование, «горячая» замена). Системы, собираемые пользователями из серийных компонентов, используют в качестве вычислительных узлов коммерчески доступные рабочие станции или серверы. Коммуникационная подсистема строится из коммерчески доступных компонентов. Системное программное обеспечение может быть как свободно распространяемым, так и фирменным, но коммерчески доступным как самостоятельный продукт или в составе используемого сервера.
Для образования MPP-систем могут быть использованы интерфейсы микропроцессора, предназначенные для доступа к внекристальной памяти или внешним устройствам (шина PCI).
При построении параллельных систем с разделяемой памятью с архитектурами ccNUMA и COMA [7] используется интерфейс памяти. В этом случае по отношению к внутрикристальной кэш-памяти любого микропроцессора системы вся остальная память рассматривается как единая общая память, обмен с которой выполняется механизмом замещения кэш-строк в рамках реализации протокола когерентности. Архитектура систем с разделяемой памятью трактует память как единое адресное пространство, работа с ячейками которого выполняется командами чтения и записи. Построение таких систем предполагает использование серийных микросхем и изготовление достаточно сложных адаптеров, подключаемых к шине памяти процессора и поддерживающих протокол когерентности кэша.
При использовании для объединения микропроцессоров интерфейса внешних устройств, что характерно для вычислительных систем, создаваемых пользователями, возможно построение систем как с распределенной памятью с архитектурой на базе обмена сообщениями, так и с разделяемой памятью на основе технологии рефлексивной памяти, например, технологии memory channel [7]. Архитектура на базе обмена сообщениями использует отдельные наборы команд чтения и записи для работы с локальной памятью и специальные команды типа send, receive для управления адаптерами каналов ввода-вывода. Стандартизированные требования, предъявляемые шиной к адаптерам, позволяют строить системы из «крупных» блоков — системных плат рабочих станций и ПК, а также сетевых плат (Myrinet — www.myri.com, Quadrics — www.quadrics.com, Dolphin SCI — www.dolphinics.com, Fast Ethernet и др.) и коммутаторов коммуникационных сред. Для таких систем остро стоит проблема эффективности параллельных вычислений, так как они заведомо имеют ограничение пропускной способности обменов, обусловленные шиной PCI.