Суперкомпьютеры в России - основные проблемы, тенденции, вопросы

С какого момента обычный компьютер или кластер становится суперкомпьютером? Некоторые специалисты считают, что с тех пор, как он начинает весить больше 1 тонны, некоторые, что с потребляемой мощности в 1 МВт, а кто-то, что с момента, когда он начинает стоить более 1 миллиона долларов.

Компьютеры, объединённые в вычислительный кластер, но не дотягивающие до этих показателей можно отнести к классу HPC (High Performance Computing) систем. В ноябре 2009 года обновился всемирно известный рейтинг суперкомпьютеров, TOP500. Событие это для IT-индустрии всегда заметное, хотя и мало что значащее для большинства специалистов. Однако, для России этот рейтинг имел особое значение – суперкомпьютер, размещённый в Московском Государственном Университете занял 12 место в рейтинге TOP500, и это без сомнения достижения для российского IT-пространства. В одном из своих обращений, президент России, Д.А. Медведев, намекнул, что для такой страны, как Россия, 12-е место – это маловато, и надо бы попасть в первую десятку…

24 ноября 2009 года корпорация Intel проводила ежегодный симпозиум по высокопроизводительным вычислениям и суперкомпьютерам, на котором рассматривались основные вопросы и проблемы индустрии суперкомпьютеров в России. Средний срок жизни суперкомпьютера составляет 4–5 лет, за это время многомиллионное оборудование морально устаревает, и вся система может потерять приставку «супер», так вот эти несколько лет надо использовать с максимальной эффективностью и производительностью, и чтобы этого добиться, недостаточно просто потратить миллионы на многотонное железо.

Параллельное программирование

Одноядерных процессоров больше нет! По мнению Нины Николаевны Поповой (ВМК МГУ), это аксиома современной IT-жизни, поэтому существенная проблема современных высокопроизводительных систем – недостаточное распараллеливание вычислений. Когда мы говорим о суперкомпьютерах, имеющих десятки тысяч компьютерных ядер, о небольших кластерах с сотнями ядер или об одной рабочей станции, мы должны говорить только о параллельных вычислениях, способных одинаково эффективно загружать все узлы и все процессоры системы. В настоящее время на базе некоторых российских ВУЗов существуют курсы по параллельному программированию и программированию для высокопроизводительных систем, но по мнению специалистов, этого недостаточно – если вы подготавливаете программиста, он получая диплом, должен уметь составлять код под высокопараллельные архитектуры, кластеры, суперкомпьютеры, распределённые системы вычислений.

Однако, давайте зададимся вопросом – действительно ли это столь существенная проблема? Хороший программист – это самосовершенствующаяся система, он быстро узнает о новых тенденциях, новых методах программирования, и как высказываются заказчики, в общем-то, не проблема для обычного программиста изначально писать код под параллельные вычисления. Намного сложнее оптимизировать уже готовый код, распараллеливать задачи, или что ещё сложнее – переписывать «однопоточный» код в «многопоточный».

Основные задачи, которые ставит перед собой система образования:

  1. Создание сети научно-образовательных центров суперкомпьютерных технологий
  2. Разработка учебно-методического обеспечения системы подготовки, переподготовки и повышения квалификации кадров в области суперкомпьютерных технологий
  3. Реализация образовательных программ подготовки, переподготовки и повышения квалификации кадров в области суперкомпьютерных технологий

Чтобы стимулировать развитие параллельного программирования, корпорация Intel серьёзно вкладывается в поддержку программистов. Intel выпустила целый спектр программных инструментов для диагностики и оптимизации кода под высокопроизводительные системы. Среди них – Intel Parallel Studio, собственные компиляторы Intel, и специальные библиотеки. Такие инструменты, как Intel Thread Checker помогают найти медленные места в кодах и оптимизировать их. Существуют комплекты инструментов для кластеров на Windows и Linux. Инструменты – коммерческие, но разработчики могут вступить в программу бета-тестирования и использовать их бесплатно, одновременно улучшая как сам инструмент, так и свои программные продукты. Так же специалисты Intel взяли за правило помогать разработчикам ПО через свои форумы. Компания подчёркивает, что для неё не важно, насколько крупна компания-разработчик, и Intel готов помогать всеми силами, вплоть до визита специалиста в офис разработчиков. Intel уже может похвастать внушительным списком тех профессиональных проектов, которые были распараллелены и оптимизированы с помощью её программных инструментов и консультаций со специалистами. Приятно, что в этом списке присутствуют не только коммерческие, но и OpenSource проекты.

Intel-books.jpg

Параллельно с этим, Intel создает центры компетенции, сотрудничает с крупными ВУЗ-ами, помогая подготавливать специалистов в области программирования под высокопроизводительные решения. Виктор Самофалов (на фото), директор по исследованиям и разработкам Intel в России, от лица компании Intel передал в дар МГУ книги по суперкомпьютерам и высокопроизводительным вычислениям.

Помощь в выборе оборудования – программа Intel Cluster Ready

Физически, суперкомпьютер или кластер – это обычные серверы или blade-серверы, объединённые через сетевые интерфейсы, питающиеся от UPS-ов, со всеми серверными атрибутами. И вопрос железа в HPC ранее активно не поднимался, заказчик доверялся компании-интегратору. Но HPC – это не только суперкомпьютеры, занимающие целые вычислительные залы. Это может быть и небольшой кластер, установленный в офисе компании, конструкторском бюро или в дата-центре. До сих пор специализированного образования по обслуживанию подобных систем не существовало, и многие компании сталкиваются с банальной проблемой – нехваткой сисадминов или несовместимостью оборудования. Сегодня ВУЗы уже осознают эту потребность, и как и в случае с параллельным программированием, готовят системных администраторов, способных обслуживать кластеры, дата-центры и суперкомпьютеры.

infiniband.jpg

Но чтобы облегчить выбор и установку оборудования, а нередко именно на сисадмина ложится задача выбора серверов для кластера, Intel запустила программу сертификации Intel Cluster Ready. Устройства, имеющие логотип «Intel Cluster Ready» гарантированно будут работать между собой, без проблем с совместимостью и стабильностью. Хотите установить кластер или собрать суперкомпьютер на базе процессоров Intel, но не хотите тратить время на поиск «железячных» проблем – выбирайте оборудование с логотипом Intel Cluster Ready. Причём, для современного суперкомпьютера или HPC на процессорах Intel, использование шины Infiniband в качестве интерконнекта – это уже стандарт де-факто, поскольку эта шина способна избавить HPC от бутылочного горлышка – интерконнекта между узлами и повысить эффективность кластера в целом.

Будущее – OpenCL, GPGPU и замена MPI

Отдельный вопрос, интересующий экспертов по HPC – это использование GPGPU плат, nVidia Tesla, в том числе и на архитектуре nVidia Fermi. Именно эти современные технологии позволяют добиться необычайной плотности вычислений – до 1 TFLOPS на 1 юнит в стойке. Специалисты сходятся во мнении, что в ближайшей перспективе GPGPU платы не смогут снизить значения CPU в HPC-системах, но будут активно использоваться в разных задачах, связанных с визуализацией и некоторыми типами вычислений. Однако, использование GPGPU плат означает, что надо осваивать новые методы программирования, с распараллеливанием на тысячи тредов, поскольку миллион ядер в одном компьютере – это уже перспектива завтрашнего дня. Сегодня не каждый разработчик может даже представить задачу, котороая параллелится на такое количество ядер. Какие именно это расчёты, которые могут потребовать мощности миллионов вычислительных ядер? Всё очень просто – физические расчёты с точностью до молекулы, и именно такая точность нужна в современном мире.

Slide_gpu.jpg

Чтобы эффективно использовать мощность GPGPU совместно с CPU надо использовать фреймворк OpenCL, и обучать программистов в том числе и использованию этих API и языка программирования. Возможно, такая параллелизация заставит отказаться от интерфейса передачи информации MPI в пользу более совершенного, с низкой нагрузкой на интерконнект, поскольку даже шина Infiniband не позволит эффективно передавать данные по стандартам MPI, если вам потребуется исполнять по миллиону тредов на каждом физическом сервере.

Этический вопрос – а нужны ли России суперкомпьютеры?

В настоящее время суперкомпьютеры установлены, по большей части, в крупнейших университетах, научных учреждениях и секретных ведомствах, которые не участвуют в рейтингах типа Top500 и не распространяются о своих системах. Установка суперкомпьютеров осуществляется за счёт государства, при государственной поддержке, то есть, на деньги налогоплательщиков. А нужны ли российскому бизнесу суперкомпьютеры, спрашивает Виктор Павлович Гергель (декан факультета ВМК Нижегородского университета)? Зачем, например, заводу АвтоВАЗ рассчитывать точную аэродинамику своих автомобилей, когда можно просто попросить 75 миллиардов рублей у государства? Зачем РЖД принимать участие в расчёте оптимизации колесной пары, если можно просто повысить тарифы за проезд? Основные заказчики вычислений на суперкомпьютерах – нефтяные компании, занимающиеся поиском и разработкой новых месторождений. Но даже помимо них, основные технические расчеты направлены на повышение эффективности уже существующих моделей. Например, на снижение аэродинамического сопротивления фюзеляжа самолёта, кузова автомобиля. Текстильная промышленность так же использует суперкомпьютеры для расчета своих моделей одежды. Иностранные компании даже расчет формы и материалов памперсов проводят на суперкомпьютерах.

Приятно, что Россия стала заметным игроком на суперкомпьютерном рынке. Но если задачи, использующие высокопроизводительные вычисления и суперкомпьютеры будут ограничиваться интересами монополий и предприятиями, работающими исключительно на внутреннем рынке, то о каком развитии может идти речь? Использование суперкомпьютеров в научных сферах позволило приблизиться к моделированию систем на атомарном уровне. Уже доступны квантово-механические расчеты систем из сотен тысяч атомов. Моделирование становится незаменимым инструментом при проектировании наносистем с необходимыми свойствами. Любые достижения в области нанотехнологий недоступны без вычислительной мощности суперкомпьютеров, просто потому, что многие процессы нельзя замерить – их можно только смоделировать в виртуальном пространстве.

Тем не менее, почти за 50 лет существования суперкомпьютеров, человечество не победило старость, не нашло лекарство от многих смертельных болезней, не нашло замену бензина, и даже не научилось противодействовать таким природным явлениям, как торнадо, цунами или землетрясение. Чтобы ощутить все прелести ноутбука или телефона – достаточно выйти с ним из дома. А чтобы понять полезность суперкомпьютера, должны пройти годы. И пока вопрос с суперкомпьютерами и HPC будет ставиться «как внедрить суперкомпьютер в производство или отрасль», они бесполезны. Но истинная выгода от использования суперкомпьютеров раскроется, когда вопрос будет ставиться «какие наши задачи мы можем решить с помощью суперкомпьютеров»?

  • Мировой рейтинг суперкомпьютеров – www.top500.org
  • Официальный сайт Intel в России – www.intel.ru
  • Компания «Т-платформы», крупнейший российский холдинг на рынке высокопроизводительных вычислений – www.t-platforms.ru
Пожалуйста, оцените статью:
Ваша оценка: None Средняя: 4.6 (14 votes)
Источник(и):

http://www.hwp.ru/…prosi_73554/



johndoe аватар

Создание сети научно-образовательных центров суперкомпьютерных технологий – IMHO посмешили :)
Еще один инновационный институт?
Пользователи уже давно используют практику параллельных вычислений на видеокартах. Уже есть работающие программы, правда они довольно специфические, но уже используются вовсю.
Написаны людьми не получивших образование в центрах суперкомпьютерных технологий.
А если говорить об обработке информации не на видеокарте, а CPU и обработке информации, то просто возьмите любой более-менее
крупный сетевой проект, чтобы понять что все уже давно придумано. Или для теста возьмите и откройте на своем ПК «диспетчер задач» (для пользователей комп которых, имеет больше одного ядра), запустите какой-нибудь ресурсоемкий процесс, для простоты примера игру какую-нибудь, и не забудьте «процессы» выбрать сам процесс и задать ему соответствие для 1 или нескольких процессоров