Темой ноябрьского номера журнала являются «Экстремально масштабные вычисления» («Extreme-Scale Computing»). Этой теме посвящены вводная заметка приглашенных редакторов, которыми в этот раз являются Адольфи Хойзи и Владимир Гетов (Adolfy Hoisie, Los Alamos National Laboratory, Vladimir Getov, University of Westminster, London), и пять больших статей. Редакторская заметка называется «Экстремально масштабные вычисления – там, где не работают стандартные решения» («Extreme-Scale Computing— Where “Just More of the Same” Does Not Work»).
Направление экстремально масштабных вычислений находится на переднем крае активно развивающейся области высокопроизводительных вычислений (high-performance computing, HPC) и относится к аппаратным и программным (как системным, так и прикладным) средствам, позволяющим производить моделирование в петамасштабном диапазоне производительности. Более того, экстремально масштабные вычисления являются научной и технологической движущей силой компьютинга в целом. Обеспечивая новые возможности ученым за счет проведения имитационного моделирования небывалого размера и точности, экстремально масштабные вычисления играют роль инкубатора научных и технических идей в области компьютинга. Быстрое развитие этого направления оказывает влияние на несколько соседних областей, таких как слабо связанные распределенные системы, инфраструктура grid, «облачные» вычисления и сенсорные сети.
Сложность организации вычислений быстро возрастает по мере роста их масштаба и соответствует сложности выполняемого моделирования. Поэтому потребность в обеспечении более высокой скорости является всего лишь одной из многих проблем, возникающих при разработке новых высокопроизводительных компьютерных систем. Эта сложность проистекает по причине взаимодействия различных факторов, таких как уровень параллелизма (в экстремально масштабных системах в настоящее время используются сотни тысяч процессорных элементов, и предвидится достижение миллионов параллельных потоков управления), потребность в средствах распараллеливания алгоритмов, разработка и реализация системного программного обеспечения, наличие глубокой иерархии памяти, неоднородность, требования надежности, отказоустойчивости, ограниченного энергопотребления и т.д.
Достижение высокого уровня производительности приложений является исключительно сложной задачей. Для удовлетворения непрекращающихся требований все более и более высокой производительности в направлении экстремально масштабных вычислений одновременно решаются несколько проблем, связанных с масштабируемостью. Внимание профессионального сообщества привлекают следующие вопросы:
- Имеются ли пределы для уровней контролируемого параллелизма? Можно ли управлять миллионами потоков управления? Какие модели программирования пригодны для разработки с осмысленными трудозатратами приложений, демонстрирующих высокую производительность и эффективность?
- Имеются ли ограничения на число ядер, которые можно использовать для создания одного компьютера? Насколько в этом отношении существенны разнородные и гибридные схемы организации компьютеров?
- Имеются ли принципиальные ограничения на размеры внутренних соединений? Каковы разумные соотношения уровней производительности и надежности?
- Какие факторы препятствуют достижению высокого уровня стационарной производительности? Как лучше всего оценивать, моделировать и предсказывать производительность в режимах экстремальной масштабности?
- В чем состоят проблемы, ограничения и перспективы системного программного обеспечения? Можем ли мы разрабатывать программное обеспечение с учетом неоднородности и асинхронности аппаратуры?
- Какими свойствами должны обладать подсистемы ввода-вывода и хранения данных для поддержки гигантских объемов данных, генерируемых в ходе экстремально масштабного моделирования?
- В чем состоят проблемы обеспечения высокого качества обслуживания в имеющихся сегодня и будущих экстремально масштабных системах? Можно ли преодолеть присущие крупномасштабным системам ограничения надежности и отказоустойчивости?
- Является ли неизбежным спутником экстремально масштабных суперкомпьютеров специальная энергетическая установка? Можно ли снизить энергопотребление таких систем, оставляя возможность разработки все более быстрых компьютеров?
Значительная часть этих вопросов обсуждается в основных статьях данного номера журнала.
Первую регулярную статью тематической подборки под названием «Архитектуры для поддержки экстремально масштабных вычислений» («Architectures for Extreme-Scale Computing») представил Йозеп Торрелас (Josep Torrellas, University of Illinois at Urbana-Champaign).
После многих лет исследований и разработок в области высокопроизводительных вычислений удалось, наконец, достичь петамасштабной производительности, т.е. автономные машины могут выполнять около 1015 операций в секунду. Эти машины достигают такой производительности за счет использования необычных, высоко параллельных архитектур. К их числу относятся суперкомпьютер Roadrunne из Лос-Аламосской Национальной лаборатории, в котором традиционные процессоры дополняются акселераторами от IBM на базе процессора Cell, в результате чего образуется гибридная платформа; или установки IBM Blue Gene/P, в которых используется огромное число простых традиционных процессоров, и которые основываются на тесной системной интеграции. К этому семейству скоро добавится система Blue Waters Иллинойского университета, основанная на применении высокопроизводительных процессоров и новых компонентов и средств компоновки системы. Наличие всех этих архитектур позволяет надеяться на получение в ближайшие годы новых прорывных результатов в науке и технике.
Однако эти архитектуры являются почти не масштабируемыми. Они просто очень крупные и потребляют очень много энергии. Площадь, занимаемая петамасштабными машинами, составляет почти десятую часть площади футбольного поля, и они потребляют мощность в несколько мегаватт. Один мегаватт электроэнергии обходится почти в миллион долларов в год. По этим причинам архитекторы высокопроизводительных архитектур фокусируются на экстремально масштабных вычислениях. Грубо говоря, экстремально масштабная архитектура в тысячу раз эффективнее любой другой современной архитектуры с тем же потреблением энергии и той же самой занимаемой площадью. Это означает, что машина с энергопотреблением и габаритами современной петамасштабной машины должна быть способна обеспечить экзамасштабную производительность, т.е. 1018 операций в секунду. Из общих соображений это также означает, что энергопотребление и физические габариты современного сервера, используемого в подразделениях компаний, должны быть достаточны для обеспечения петамасштабной производительности. Наконец, один чип из категории товаров массового спроса должен обеспечивать терамасштабную производительность, т.е. 1012 операций в секунду.
Очевидно, что достижение возможности производить терамасшатбные чипы общего назначения, петамасштабные серверы и экзамасштабные центры данных привело бы к революции в компьютинге. Однако для разработки и построения таких систем требуется решить ряд технических проблем на всех уровнях компьютерного стека, включая схемотехнику, архитектуру, программные системы и приложения. Сложность этих проблем и важность получения подобных систем к концу следующего десятилетия должны сильно стимулировать соответствующие исследования.
Следующая статья называется «Tofu: A 6D Mesh/Torus Interconnect for Exascale Computers» («Tofu: шестимерная сетчато-тороидальная топология внутренних соединений для экзамасштабных компьютеров») и написана Юичиро Аджимо, Шинджи Сумимото и Тошиюки Шимицу (Yuichiro Ajima, Shinji Sumimoto, Toshiyuki Shimizu, Fujitsu).
Исследователи продолжают совершенствовать высокопроизводительные вычислительные системы, увеличивая число процессорных ядер в узлах и число узлов в системе. Для связывания десятков тысяч узлов во многих высокопроизводительных системах используются сетчато-тороидальные топологии, поскольку они хорошо масштабируются и экономически эффективны.
В системах с сетчатыми внутренними связями для многих приложений важна настройка с учетом топологии. Система должна обладать возможностью непрерывно обслуживать задания и обеспечивать для каждого задания тороидальную топологию. Для обеспечения высокого уровня загрузки системы также важна поддержка подсеток изменяемого размера. Для удовлетворения этих потребностей авторы разрабатывают архитектуру внутренних соединений Tofu, отличающуюся более основательной сетчато-тороидальной топологией (Tofu – это аббревиатура от «torus fusion» («слияние торов»)). Система Tofu может быть подразделена на произвольное число прямоугольных подсеток, и в каждой подсетке обеспечивается тороидальная топология.
В Tofu имеется шесть осей координат: x, y, z, a, b и c. На осях a и c располагается по два узла, на оси b для обеспечения отказоустойчивости – три. Всего у каждого узла имеется 10 соединений. Двенадцать узлов с одними и теми же координатами xyz составляют группу узлов, связанную осями abc. Группу узлов можно рассматривать, как единицу выделения вычислительных ресурсов для задания. На рисунках показаны три группы узлов с координатами (0,0,0), (1,0,0) и (2,0,0) и возможные маршруты между узлами разных групп.
![](pic1.jpg)
Группы узлов Tofu. Двенадцать узлов с одинаковыми координатами xyz составляют группу узлов и связаны осями abc
Следующую статью под названием «Использование моделирования производительности при разработке крупномасштабных систем» («Using Performance Modeling to Design Large-Scale Systems») представили Кевин Баркер, Кей Дэвис, Адольфи Хойзи, Дарен Кербисон, Майкл Лэнг, Скотт Пэкин и Хосе Карлос Санчо (Kevin J. Barker, Kei Davis, Adolfy Hoisie, Darren J. Kerbyson, Michael Lang, Scott Pakin, José Carlos Sancho, Los Alamos National Laboratory).
Все чаще научные открытия основываются на компьютерном моделировании, что вызывает потребность во все более быстрых суперкомпьютерах. Такие компьютеры позволяют быстрее получить результаты, часто с более высокой достоверностью. Однако по мере повышения скорости суперкомпьютеров возрастает и их сложность. В то время как высокопроизводительный настольный компьютер мог бы содержать 16 процессорных ядер, единое адресное пространство основной памяти и простую внутреннюю сеть, связывающую все ядра по принципу «каждое с каждым», сегодняшние наиболее быстрые суперкомпьютеры содержат от десятков до сотен тысяч ядер, множество раздельных адресных пространств и несколько сетей внутренних соединений с разными свойствами и характеристиками производительности.
Все эти компоненты сложным образом взаимодействуют по причине своей иерархической организации и борьбы за ограниченный набор системных ресурсов. Поэтому соседние процессорные ядра должны координировать свое поведение быстрее, чем удаленные ядра, а удаленные ядра не должны конкурировать между собой за доступ к основной памяти. При наличии в настоящее время петамасштабных вычислительных систем, примерами которых являются Roadrunner, Jaguar и Jugene, в сообществе высокопроизводительных вычислений исследуются проблемы создания экзамасштабных систем, появление которых ожидается не ранее чем через шесть лет, и которые будут обладать пиковой производительностью, в тысячу раз превышающей производительность сегодняшних систем. Соответствующим образом возрастет и их сложность.
Сложность суперкомпьютерных архитектур затрудняет оценку того, насколько быстрее будут выполняться на экзамасштабных суперкомпьютерах приложения, работающие на сегодняшних петамасштабных (или менее мощных) машинах. Тысячекратное повышение пиковой производительности редко приводит к аналогичному повышению скорости выполнения приложений. Сложность неизбежно приводит к падению производительности. Практически невозможно точно экстраполировать производительность приложений при переходе от одной системы к другой на основе всего лишь интуиции и умозаключений. Однако возможность предсказания производительности является очень важной, поскольку она помогает системным архитекторам выбирать правильные проектные решения. Кроме того, эта возможность помогает ученым принимать правильные решения о выборе суперкомпьютера для переноса своих приложений, поскольку в современных условиях для этого требуется много времени.
Распространенным подходом к предсказанию производительности является использование симуляторов, программ, выполняемых на существующих системах и имитирующих целевые системы. Хотя имитационное моделирование хорошо работает для быстро выполняемых приложений на ограниченном числе процессоров, у этого подхода имеются трудности с предсказанием производительности долговременно выполняемых приложений на экстремально масштабных системах. В этом случае симулятор либо должен работать на системе, размер которой сопоставим с размером целевой системы, либо протяженность времени его работы будет недопустимой, или будет потеряна точность моделирования.
В статье описывается альтернативный подхода к симуляции систем – моделирование производительности. Подобно тому, как модель некоторого физического процесса обеспечивает набор аналитических формул, описывающих характерные свойства соответствующего физического явления, модель производительности предоставляет набор аналитических формул, описывающих основные характеристики сложного искусственного явления – выполнения приложения на существующем или ожидаемом в будущем суперкомпьютере. Более того, как и в случае моделирования физических процессов, модель производительности поддерживает не только предсказание, но также понимание и интерпретацию сути происходящего.
В Лос-Аламосской Национальной лаборатории моделирование производительности в последнее десятилетие применяется почти ежедневно для исследования производительности многочисленных систем на разных стадиях их жизненного цикла – от начального проектирования до производственного использования.
Авторами статьи «Разработка параллельных сценариев для пета- и более масштабных приложений» («Parallel Scripting for Applications at the Petascale and Beyond») являются Майкл Вильде, Ян Фостер, Камил Искра, Пит Бекман, Жао Жанг, Эллан Эспиноза, Михаэль Хейтган, Бен Клиффорд и Иоан Райку (Michael Wilde, Ian Foster, Kamil Iskra, Pete Beckman, University of Chicago and Argonne National Laboratory, Zhao Zhang, Allan Espinosa, Mihael Hategan, Ben Clifford, Uk, University of Chicago, Ioan Raicu, Northwestern University).
Джон Остерхаут (John Ousterhout) метко назвал разработку сценариев «программированием более высокого уровня в 21-м веке». Использование скриптовых языков революционизирует разработку приложений для настольных компьютеров и серверов, ускоряя и упрощая программирование за счет того, что программисты могут производить композицию существующих программ для создания более мощных приложений.
Может ли разработка сценариев быть настолько же полезна для параллельных компьютеров, включая экстремально масштабные компьютеры? Авторы полагают, что да. Скриптовые языки позволяют пользователям быстро собирать сложные приложения путем композиции существующего кода. При разработке параллельных сценариев пользователи могут применять конструкции параллельной композиции к существующим последовательным и параллельным программам. При использовании таких методов программисты могут быстро специфицировать параллельные приложения, для выполнения которых в зависимости от масштаба проблемы может потребоваться 16-ядерная рабочая станция или 160000-ядерная петамасштабная система.
Большая часть исследований и разработок моделей программирования для экзамасштабных машин относится к средствам разработки приложений категории SPMD (single-program, multiple-data). К таким приложениям относятся, например, программы вычислительной гидродинамики, применяемые при моделировании погодных условий, или строительной механики, используемые при проектировании автомобилей. Для подобных приложений требуется большая вычислительная мощность и высокопроизводительная инфраструктура обмена сообщениями.
Однако было бы недальновидно полагать, что только для приложений такого рода требуются высокопроизводительные суперкомпьютеры. По опыту авторов, имеется значительная и неудовлетворенная потребность в крупномасштабном выполнении существующих программ, когда целесообразно одновременно выполнять много копий одной и той же программы. Каждая такая программа может быть параллельной программой, основанной на передаче сообщений, многопотоковой или даже чисто последовательной программой. Разработчикам приложений этой категории, как и разработчикам SPMD-приложений, требуются методы и инструменты, снижающие сложность разработки, повышающие уровень повторного использования и оптимизирующие производительность на различных платформах. И основу таких методов и средств могут обеспечить скриптовые языки.
Поэтому среди приоритетных исследований моделей параллельного программирования следующего поколения должны находиться исследования методов масштабировани средств написания сценариев к компьютерам 21-го века. Результатам, полученным авторами в этом направлении, посвящается основная часть статьи.
Наконец, последняя статья тематической подборки написана Дэвидом Донофрио, Леонидом Оликером, Джоном Шалфом, Майклом Венером, Крисом Роуеном, Йенсом Крюгером, Шоабом Камилем и Марфубом Мохиюддином (David Donofrio, Leonid Oliker, John Shalf, Michael F. Wehner, Lawrence Berkeley National Laboratory, Chris Rowen, Tensilica, Jens Krueger, Fraunhofer Institute, Germany, Shoaib Kamil, Marghoob Mohiyuddin, University of California, Berkeley) и называется «Энергоэффективные вычисления в экстремально масштабной науке» («Energy-Efficient Computing for Extreme-Scale Science»).
Вычислительная мощность, требуемая для точного моделирования экстремально сложных проблем, не может быть обеспечена при применении традиционных подходов. Построение все более крупных кластеров на основе аппаратных средств массового производства все более ограничивается проблемами питания и охлаждения. Для решения экзамасштабных проблем энергопотребление может достичь сотен мегаватт. Поэтому имеет смысл использовать опыт, полученный при разработке энергоэффективных архитектур, которые предназначаются для встроенных систем, для разработки машин экзамасштабной производительности.
С этой целью авторы разрабатывают управляемую приложениями систему Green Flash, в которой используются многоядерный процессор и новые подходы к обеспечению когерентности кэшей и автоматической настройки, позволяющие повысить эффективность вычислений. Этот подход может позволить достичь повышения эффективности на два порядка при решении задачи имитационного моделирования климата по сравнению с традиционным подходом применения симметричных мультипроцессоров.
У проблемы перевода высокопроизводительных вычислительных архитектур на экзауровень имеются поразительные экономические и политические аспекты. Для достижения вычислительной мощности, которая требуется для экстремально масштабного моделирования с точностью, достаточной для поддержки принятия политических решений, нужен новый вид экстремально масштабных компьютеров. При разработке их архитектур нужно задаваться вопросом «Какие системы требуется построить, чтобы можно было решить наиболее важные научные проблемы?».
Например, для моделей глобальной системы атмосферы в километровом масштабе требуется выполнять симуляцию со скоростью в 1000 раз большей реального времени. Модель километрового масштаба разбивает атмосферу Земли на 20 миллиардов отдельных клеток, и для ее обработки требуется машина с небывалой производительностью.
Самого по себе применения энергоэффективных встраиваемых процессоров, хотя это и является важным первым шагом, недостаточно для решения этой проблемы. Компьютерная индустрия достигла точки перегиба: фундаментальные принципы архитектуры компьютеров подвергаются сомнению, и исследуются новые идеи. Проект Green Flash не только дает представление о том, как процессы разработки, успешно зарекомендовавшие себя в области встроенных систем, могут быть применены в научном компьютинге, но также позволяет решить некоторые сложные проблемы управления экспоненциальным ростом уровня внутрипроцессорного параллелизма, свойственные всей IT-индустрии.
Единственная большая статья, опубликованная вне тематической подборки, называется «Основанная на обязательствах сервис-ориентированная архитектура» («Commitment-Based Service-Oriented Architecture») и представлена Муниндаром Сингхом, Амитом Чопрой и Нирмитом Десаи (Munindar P. Singh, North Carolina State University, Amit K. Chopra, Università degli Studi di Trento, Italy, Nirmit Desai, IBM India Research Labs, Bangalore).
Концепция сервис-ориентированного компьютинга (service-oriented computing, SOC) сулит создание динамической Всемирной Паутины услуг. В соответствии с этой концепцией, любой человек, желающий предложить другим людям что-либо ценное, может создать и внедрить соответствующую службу; любой человек, желающий воспользоваться этой ценностью, может просто выбрать одну или более служб и объединить их в требуемое приложение или другую службу.
Существующие в настоящее время сервис-ориентированные архитектуры (service-oriented architecture, SOA) претендуют на поддержку концепции SOC, но на самом деле существенно ее ограничивают. Концепция SOC подразумевает, что сервисы являются бизнес-службами. Однако в существующих SOA сервисы интерпретируются более узко – как суррогаты вычислительных объектов. В то время как бизнес-службы привлекаются (engaged) (часто с учетом тонких бизнес-соображений), объекты вызываются (invoked) (а бизнес-соображения скрываются внутри вычислительных артефактов). Еще более важно то, что бизнес-сервисы являются автономными сущностями, объединяемыми при привлечении сервиса.
Рассмотрим, как моделируется известный сценарий совершения покупки при использовании ведущих подходов SOA. Поддержка покупки (например, книги) – это бизнес-сервис, объединяющий индивидуальные сервисы, такие как оформление заказа, платеж и доставка. Эти сервисы могут обеспечиваться разными организациями.
При использовании Business Process Modeling Notation (BPMN) и Business Process Execution Language (BPEL) составные сервисы представляются как процессы, специфицируемые потоками управления и данных поверх задач (различия между BPMN и BPEL являются чисто синтаксическими). Например, на основе BPMN покупка моделировалась бы в виде трех задач (заказ, платеж и доставка), и потоки управления и данных (идентификатор книги и цена) направлялись бы из заказа к платежу и доставке.
В другом подходе к SOA, основанном на Choreography Description Language (WS-CDL), специфицируется, как сервисы обмениваются сообщениями. В отличие от вызовов процедур, обмен сообщениями разъединяет участвующие стороны и поэтому больше подходит для распределенных систем. На языке WS-CDL специфицировалось бы, как сервис оформления заказа посылает сообщения сервисам платежа и доставки, которые выполняли бы свою часть работы после получения таких сообщений. Декларативные подходы для ограничения порядка задач или сообщений способствует повышению уровней модульности и контролируемости, но и в них продолжают главенствовать потоки управления и данных.
В отличие от существующих подходов, в основанной на обязательствах SOA (commitment-based SOA, CSOA) главенствует бизнес-смысл привлечения сервиса, который фиксируется на основе взаимных обязательств участников. При применении CSOA задачи или сообщения ограничиваются только в тех случаях, когда это влияет на бизнес-смысл. Технически каждый участник представляется в виде агента; взаимодействие агентов осуществляет привлечение сервиса путем создания их взаимных обязательств и манипулирования ими.