Автор: Владимир Мешалкин. Рубрики: Центр обработки данных. Опубликовано: Июнь 22nd, 2009

Исторически сложилось, что применение многопроцессорных систем (МС) ассоциируется с научной сферой и теоретическими расчетами, однако сейчас реалии экономики и бизнеса таковы, что из сугубо прикладных научных областей такие системы массово проникают в повседневную жизнь, непрерывно расширяя сферу применения в различных отраслях. Из областей, где востребованность высоких вычислительных мощностей наиболее очевидна, можно назвать атомную энергетику с ее системами контроля параметров и поддержки принятия решений в критических ситуациях, метеорологию с системой прогнозирования климатических изменений, генетику, прикладные области, где используются системы реального времени для моделирования сложных процессов,  распознавания изображения и голоса и многие другие области.    Задачи анализа гигантских объемов информации, критически важные приложения, приложения реального времени, СУБД, задачи, связанные с обработкой транзакций и др. задачи ставят все возрастающие требования к вычислительным мощностям компьютеров. В бизнесе все чаще используются корпоративные системы управления предприятием и принятия решений, системы документооборота и коллективной работы, основанные на обработке большого кол-ва информации, и все эти системы выдвигают жесткие требования к простоям и производительности, что накладывает отпечаток на используемые технологические решения и использование серверов стандартной архитектуры здесь явно не удовлетворяет исходным ожиданиям.

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

Всего 2-3 десятка лет назад использование нескольких процессоров встречалось лишь на больших суперкомпьютерах-мейнфреймах , но сейчас это уже встречается повсеместно, включая персональные компьютеры. Если говорить об архитектуре МС, то наиболее часто используется симметричная многопроцессорная обработка (Symmetrical Multi-Processing, SMP), в которой каждый процессор имеет равноправный доступ ко всей системной памяти. Однако система собственных процессорных кэшей усложняет синхронизацию и обмен данными, вводя дополнительные задержки, связанные с обновлением информации в памяти системы. Именно это, вкупе с ограничениями пропускной способности шины памяти,  является причиной нелинейного изменения производительности при добавлении дополнительных процессоров. Кроме того, подобные системы плохо масштабируются из-за возникающих конфликтов при одновременном обращении нескольких процессоров к одним и тем же областям памяти. Подобные конфликты уже могут быть ощутимы при 8 одновременно работающих процессорах. Все современные серверы стандартной архитектуры на процессорах Intel построены с использованием технологии SMP. Практически любая современная операционная система может работать на таких серверах.

Для обхода приведенных выше ограничений была разработана архитектура неравномерного доступа к памяти (Non-Uniform Memory Access, NUMA), в которой  процессоры имеют прямой доступ к собственной области основной памяти минуя системную шину, а другие процессоры для доступа к ней используют общую шину, при этом доступ к локальной памяти в несколько раз быстрее, чем к удаленной. При таких условиях количество поддерживаемых системой процессоров значительно возрастает, а вместе с этим и общая производительность системы. Масштабируемость таких систем ограничивается объемом адресного пространства и возможностями операционной системы по управлению большим числом процессоров. Примером таких систем являются HP 9000, SGI Origin2000, Sun HPC 10000 и другие.

Некоторые системы построены по технологии, когда память распределяется на отдельные разделы, доступ к которым предоставляется только определенным процессорам. В рамках этих разделов могут  работать различные операционные системы, а в существующий раздел можно добавить дополнительные процессоры и память. Взаимодействие между разделами осуществляется высокоскоростным коммутатором так же,  как и между разными физическими компьютерами. Такие системы называются системами массовой параллельной обработки (Massive Parallel Processing, MPP). Для правильного функционирования таких систем программное обеспечение должно быть специально разработано  и поддерживать разделение внутренних процессов. Такое требование предполагает специальные методы программирования. Системы обычно используется в научной сфере, а также в крупном бизнесе. Примерами подобных систем являются IBM RS/6000, CRAY T3E и другие.

Можно также говорить о кластерах- нескольких серверах, объединенных высокоскоростными каналами передачи данных, совместно работающих и составляющих единый вычислительный ресурс. Независимо от числа компонентов кластер представляется внешним пользователям как единая система. Объединение серверов в кластеры позволяет достаточно легко создавать высокопроизводительные системы, используя в качестве компонентов стандартные решения. Если  мы говорим об обработке большого кол-ва операций одного типа, то подразумеваем кластеры с распределенной нагрузкой. В качестве примера можно привести некоторое кол-во однотипных веб-серверов, когда приходящий запрос перераспределяется либо на наименее занятый, либо специализирующийся на обработке определенного типа данных. При высокопроизводительных вычислениях кластеры могут использоваться точно так же, как и в системах MPP, причем выигрыш в использовании кластерных систем будет за счет применения  менее дорогих и стандартных компонентов. Практически всегда можно безболезненно для всей системы в целом добавлять новые узлы для еще большего повышения производительности. Самый яркий пример таких кластеров — Beowulf. Кроме того, существует еще одна разновидность кластеров — GRID-сети, это объединения разнородных систем для выполнения единой вычислительной задачи, причем из-за возможной удаленности отдельных компонентов друг от друга изначально не ставилась задача обеспечения высокоскоростных каналов связи между ними, а основная идея строится на более строгом разделении задач между системами, простоте подключения новых компонентов и исключения требования стандартизации оборудования. Масщтабируемость подобных систем практически неограниченна. Ярким примером является система анализа сигналов в космосе, когда установив на персональном компьютере небольшое клиентское ПО можно подключиться в большую сеть и предоставить ресурсы своего компьютера для научных расчетов, причем ресурсы предоставляются только в тот момент, когда пользователь не работает. Еще одним более продуктивным примером является использование мощностей персональных компьютеров большого предприятия для выполнения ресурсоемких задач по анализу данных в ночные часы. Сети GRID широко распространены в научных исследованиях.

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

———————————————————————————————

 Часть материала была опубликована в журнале «IT Спец» за март 2008 года

Поделиться

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс

Мы в социальных сетях

Читать ProITClub в TwitterЧитать ProITClub в RSSЧитать ProITClub в п&##1086;чтовой подпискеЧитать ProITClub в Живом ЖурналеЧитать ProITClub в LinkedInЧитать ProITClub в LinkedIn
Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

Написать комментарий

Вы должны войти чтобы добавить сообщение.