Реальная производительность параллельных вычислительных систем Анализ «узких мест» процесса решения задач и их влияния на реальную производительность
С какой бы стороны не рассматривать параллельную вычислительную технику, главным стимулом ее развития было и остается повышение эффективности процессов решения больших и очень больших задач. Эффективность зависит от производительности вычислительных систем, размеров и структуры их оперативной памяти, пропускной способности каналов связи. Но в не меньшей, если не большей, степени она зависит также от уровня развития языков программирования, компиляторов, операционных систем, численных методов и многих сопутствующих математических исследований. Если с этой точки зрения взглянуть на приоритеты пользователей, то они всегда связаны с выбором тех средств, которые позволяют решать задачи более эффективно.
Эффективность — понятие многоплановое. Это - удобство использования техники и программного обеспечения, наличие необходимого интерфейса, простота доступа и многое другое. Но главное — это достижение близкой к пиковой производительности вычислительных систем. Данный фактор настолько важен, что всю историю развития вычислительной техники и связанных с ней областей можно описать как историю погони за наивысшей эффективностью решения задач.
Конечно, такой взгляд отражает точку зрения пользователей. Но ведь именно пользователям приходится "выжимать" все возможное из имеющихся у них вычислительных средств и приводить в действие все "рычаги", чтобы достичь максимальной производительности вычислительных систем на своих конкретных задачах. Поэтому им нужно знать, где находятся явные и скрытые возможности повышения производительности и как наилучшим образом ими воспользоваться. Реальная производительность сложным образом зависит от всех составляющих процесса решения задач. Можно иметь высокопроизводительную вычислительную систему, но если компилятор создает не эффективный код, реальная производительность будет малой. Она будет малой и в том случае, если не эффективны используемые алгоритмы. Не эффективно работающая программа — это прямые потери производительности вычислительной системы, средств на ее приобретение, усилий на освоение и т. п. Таких потерь хотелось бы избежать или, по крайней мере, их минимизировать.
Практика решения многих задач показала, что не было ни одного случая, когда одна и та же программа эффективно реализовывалась без существенной переделки при переходе к другой технике. Конечно, хотя и трудно, но, все же, можно заново переписать программу, удовлетворяя требованиям языка программирования и штатного компилятора. Однако новую большую программу очень сложно сделать эффективно работающей.
Технология обнаружения «узких» мест процесса реализации программы плохо алгоритмизирована. Опыт показывает, что для повышения эффективности приходится рассматривать все этапы действий, начиная от постановки задачи и кончая изучением архитектуры и структуры вычислительной системы, через выбор численного метода и алгоритма, тщательно учитывая особенности языка программирования и даже компилятора. Основной способ обнаружения «узких» мест — это метод проб и ошибок, сопровождающийся большим числом прогонов вариантов программы. Необходимость многих экспериментов объясняется скудностью информации, получаемой от компилятора после каждого прогона. К тому же ни один компилятор не дает никаких гарантий относительно меры эффективности реализуемых им отдельных конструкций языка программирования. С самого начала пользователь ставится в такие условия, когда он не знает, как надо писать эффективные программы. Получить соответствующую информацию он может только на основе опыта, изучая почти как «черный ящик» влияние различных форм описания алгоритмов на эффективность.
Исследования показывают, что большинство из «узких» мест может быть объединено в три группы.
Первая группа «узких» мест связана собственно с вычислительной системой. На любой параллельной вычислительной системе не все потоки данных обрабатываются одинаково. Какие-то из них реализуются предельно эффективно, какие-то достаточно плохо. Изучая особенности структуры вычислительной системы, очень важно понять, что представляют собой те или другие потоки и описать их математически.
Вторая группа «узких» мест определяется структурой связей между операциями программы. Не в каждой программе обязаны существовать фрагменты, реализуемые эффективно на конкретной вычислительной системе.
И, наконец, третья группа «узких» мест зависит от используемой в компиляторе технологии отображения программ в машинный код.
Если технология позволяет разложить программу на фрагменты, по которым почти всегда будет строиться эффективный код, то «узких» мест в этой группе может не быть. Такие технологии были разработаны для первых параллельных вычислительных систем. Но по мере усложнения вычислительной техники технологии компиляции становятся все менее и менее эффективными, и «узких» мест в третьей группе оказывается все больше и больше. Для больших распределенных вычислительных систем «узкие» места компиляции начинают играть решающую роль в потере общей эффективности. Поэтому уже давно наметилось и теперь почти воплотилось в реальность "компромиссное" разделение труда: наименее алгоритмизированные и сложно реализуемые этапы компиляции, в первую очередь, расщепление программы на параллельные ветви вычислений, распределение данных по модулям оперативной памяти и организацию пересылок данных возлагаются на пользователя. Проблем от этого не стало меньше. Просто о том, о чем раньше заботились разработчики компиляторов, теперь должны беспокоиться сами пользователи.
«Узкие» места описываются и изучаются практически всюду: в параллельных вычислительных системах и больших вычислительных системах, процессах работы многих функциональных устройств, конструировании численных методов, языках и системах программирования, различных приложениях и даже в работе пользователей. Особое внимание уделяется «узким» местам, связанным с выявлением параллельных структур алгоритмов и программ и их отображением на структуру параллельных вычислительных систем.
- Что такое параллельные вычислительные системы и зачем они нужны
- Некоторые примеры использования параллельных вычислительных систем Об использования суперкомпьютеров
- Классификация параллельных вычислительных систем
- Классификация современных параллельных вычислительных систем с учетом структуры оперативной памяти, модели связи и обмена Симметричные скалярные мультипроцессорные вычислительные системы
- Несимметричные скалярные мультипроцессорные вычислительные системы
- Массово параллельные вычислительные системы с общей оперативной памятью
- Массово параллельные вычислительные системы с распределенной оперативной памятью
- Серверы
- Требования к серверам Основные компоненты и подсистемы современных серверов
- Структуры несимметричных мвс с фирмы Intel Структурные особенности процессоров со структурой Nehalem
- Структуры мвс с процессорами Nehalem
- Мвс на базе процессоров фирмы amd
- Структура шестиядерного процессора Istanbul приведена на рис. 23.
- Примеры структур несимметричных мвс с процессорами линии Opteron Barcelona, Shanghai, Istanbul
- Сравнение структур мвс с процессорами Barcelona, Shanghai, Istanbul с мвс с процессорами со структурой Nehalem
- 12 Ядерные процессоры Magny-Cours
- Основные особенности 12-ти и 8-ми ядерных микросхем Magny-Cours
- Структуры мвс с процессорами Magny--Cours
- Перспективы развития процессоров фирмы amd для мвс
- Мвс на базе процессоров фирмы ibm power6, power7 Основные особенности процессоров power6, power7
- Процессор power6
- Структуры мвс на базе процессоров power4, power5
- Структуры мвс на базе процессоров power6, power7
- Требования к серверам
- Основные компоненты и подсистемы современных серверов
- Поддерживаемые шины ввода-вывода
- Raid контроллеры
- Сервер Superdome 2 для бизнес-критичных приложений
- Структура сервера
- Надежность и доступность
- Конфигурации и производительность
- Основные особенности симметричных мультипроцессорных систем?
- Векторные параллельные системы
- Скалярная и векторная обработка
- Основные особенности векторных параллельных систем
- Векторные параллельные системы sx-6, sx-7 фирмы nec
- Особенности вычислительной системы sx-7
- Параллельная векторная система Earth Simulator
- Cуперкластерная система
- Суперкомпьютер CrayXt5h
- «Лезвия» векторной обработки Cray x2
- «Лезвия» с реконфигурируемой структурой
- Массово параллельные вычислительные системы с скалярными вычислительными узлами и общей оперативной памятью
- Массово параллельные вычислительные системы с скалярными вычислительными узлами и распределенной оперативной памятью
- Cуперкомпьютеры семейства cray xt Семейство Cray xt5
- «Гибридные» суперкомпьютеры CrayXt5h
- «Лезвия» векторной обработки Cray x2
- «Лезвия» с реконфигурируемой структурой
- Развитие линии Cray хт5 – Cray xt6/xt6m
- Модель Cray xe6
- Процессор
- Коммуникационная среда с топологией «3-мерный тор»
- Реализация коммуникационных сред
- Операционная система
- Суперкомпьютер RoadRunner
- Топологии связей в массово параллельных системах
- Оценка производительности параллельных вычислительных систем
- Необходимость оценки производительности параллельных вычислительных систем
- Реальная производительность параллельных вычислительных систем Анализ «узких мест» процесса решения задач и их влияния на реальную производительность
- «Узкие» места, обусловленные иерархической структурой памяти
- Влияние на реальную производительность параллельных вычислительных систем соответствия их структуры и структуры программ
- Анализ реальной производительности («узких» мест) мвс с общей оперативной памятью
- Анализ реальной производительности («узких» мест) кластерных систем с распределённой оперативной памятью
- Какие «узкие места» процесса решения задач существенно влияют на реальную производительность параллельных вычислительных систем?
- Тенденции развития суперкомпьютеров. Список top500
- Что такое список тор 500 и как он создается?
- 38 Редакция списка (ноябрь 2011 г.)
- Коммуникационные технологии
- Архитектуры, модели процессоров и их количество в системах списка
- Основные тенденции развития суперкомпьютеров
- Перспективные суперкомпьютеры тера- и экзафлопного масштаба
- Производительность 500 лучших суперкомпьютеров за последние 18 лет
- Перспективные суперкомпьютеры тера- и экзафлопного масштаба
- Программа darpa uhpc
- Основные положения программы uhpc
- Экзафлопсный барьер: проблемы и решения
- Проблемы
- Эволюционный путь
- Революционный путь
- Кто победит?
- Примеры перспективных суперкомпьютеров Суперкомпьютер фирмы ibm Mira
- Стратегические суперкомпьютерные технологии Китая