О вреде избыточного питания компьютеров
Доводы в пользу компьютинга с соразмерным потреблением энергии
🕛 09.04.2008, 09:55
В этом году декабрьский номер журнала Computer посвящается технологии, способствующей эффективному потреблению электропитания серверами, центрами данных и суперкомпьютерами. Этой теме посвящена развернутая вводная заметка приглашенных редакторов и три статьи тематической подборки. В качестве приглашенных редакторов выступают Луиз Андре Барросо и Урс Хёлцле (Luiz André Barroso, Urs Hölzle, Google). Свою заметку они назвали «Доводы в пользу компьютинга с соразмерным потреблением энергии» («The Case for Energy-Proportional Computing»).Эффективность потребления энергии, будучи новым центром внимания в области компьютеров общего назначения, в течение некоторого времени являлась основной движущей силой развития технологии в областях мобильных и встроенных компьютеров. В ранних работах основной упор делался на продление времени жизни батарей, но затем в исследованиях начали затрагиваться и вопросы сокращения пикового энергопотребления, поскольку на пути дальнейшего совершенствования производительности центральных процессоров встали температурные ограничения.
Управление энергопотреблением стало теперь ключевой проблемой функционирования серверов и центров данных, причем внимание уделяется сокращению всех расходов, связанных с энергопотреблением, включая капитальные и эксплуатационные затраты, а также воздействия на окружающую среду. Многие методы энергосбережения, разработанные для мобильных устройств, стали естественными кандидатами для применения в этой новой проблемной области. Однако здесь требуются дополнительные исследования, посвященные созданию эффективных методов энергопотребления.
В современных серверах энергия наименее эффективно потребляется, когда они работают в самом обычном режиме. Для устранения этого перекоса требуется существенное переосмысление принципов организации компонентов и систем. Авторы полагают, что первичной целью должно стать соразмерное потребление энергии. Хотя это мнение основано на опыте работы авторов именно с серверами, они считают, что принципы соразмерного потребления энергии будут полезны и для других типов компьютерных устройств.
В последнее время наблюдается возрастающий интерес к вопросам потребления энергии компьютерами. Наблюдаемые тенденции могут привести к тому, что именно электроэнергия может стать доминирующим фактором совокупной стоимости владения (total cost of ownership, TCO) серверами. Помимо затрат на электропитание самих серверов, TCO включает другие энергозависимые компоненты, такие как стоимость энергии, расходуемой на поддержку систем охлаждения и питания. В первом приближении расходы на поддержку охлаждения и питания пропорциональны количеству энергии, потребляемой серверами. Следовательно, повышение эффективности энергопотребления серверами положительно подействует на все энергозависимые компоненты.
Понижению уровня энергопотребления компьютерами способствует деятельность таких организаций, как Climate Savers Computing Initiative, которые содействуют повсеместному внедрению высокоэффективных источников питания и использованию энергосберегающих средств, уже присутствующих в имеющемся у пользователей компьютерном оборудовании. Появление более эффективных многоядерных микропроцессоров также способствует созданию серверов с более эффективным энергопотреблением. Однако в долговременной перспективе сохраняется та тенденция, что повышению производительности сопутствует повышение уровня энергопотребления. Это означает, что по мере роста производительности компьютеров требуется непрерывно совершенствовать и эффективность энергопотребления, чтобы избежать недопустимого возрастания объема требуемой энергии.
Многие из методов понижения уровня энергопотребления, разработанных для мобильных устройств, напрямую применимы к серверам общего назначения, включая поддержку нескольких уровней подаваемой мощности, clock-gating (отключение блоков базовой логики с целью экономии энергии), динамическое масштабирование напряжения и частоты. В мобильных устройствах высокая производительность требуется в короткие промежутки времени, когда пользователь ожидает ответа от компьютера, после чего следуют относительно длинные интервалы простоя, измеряемые секундами или даже минутами. Аналогичная двухрежимная модель присуща использованию многих встроенных компьютеров, например, в агентах сенсорных сетей.
Этот паттерн функционирования поощряет проектировщиков аппаратуры к тому, чтобы добиваться высокой эффективности энергопотребления на уровне пиковой производительности и в режиме ожидания, в котором компьютер почти не потребляет энергию. Однако модель использования серверов, в особенности, тех, которые применяются в крупномасштабных службах Internet, обладает совсем другими характеристиками. Серверы редко полностью переходят в режим ожидания и лишь изредка функционируют в режиме пиковой производительности. Большую часть времени они бывают загружены на 10-50% от своей максимальной возможности. Такое поведение не является случайным; оно является следствием здравых принципов проектирования распределенных систем, предназначенных для оказания услуг.
Если какой-либо сервис в Internet обеспечивается таким образом, что средняя загрузка сервера близка к 100%, то могут возникнуть трудности при обеспечении гарантированной пропускной способности и времени задержки, поскольку даже незначительные колебания трафика и любое внутреннее нарушение функционирования могут вывести значения требуемых параметров сервиса за пределы допустимых границ. Кроме того, отсутствие разумного резерва мощности приводит к чрезвычайному усложнению обычных операций, поскольку, например, выполнение любой задачи по обслуживанию сервера потенциально может вызвать серьезное нарушение сервисов. Аналогично, в правильно организованных службах редко допускаются значительные периоды простоя серверов, поскольку это означало бы наличие существенных непроизводительных затрат.
Полный простой серверов маловероятен даже в те периоды времени, когда наблюдается низкий уровень спроса на соответствующие сервисы. В крупномасштабных службах обычно требуются сотни серверов, и между ними распределяется общая нагрузка. В некоторых случаях можно было бы перевести часть серверов в полностью бездействующее состояние, сокращая число активных клиентских компьютеров. Однако часто это трудно сделать, поскольку между машинами распределяются не только вычисления, но и данные. Например, принято распределять пользовательские данные между несколькими базами данных во избежание узких мест, возникающих при использовании одной централизованной базы данных.
Распределение данных между несколькими машинами повышает и уровень доступности данных, поскольку уменьшается вероятность потери данных в случае аварийного отказа. Это также способствует убыстрению процедуры восстановления после аварийного отказа аппаратуры или программного обеспечения за счет распределения рабочей нагрузки восстановления между большим числом узлов, как это делается в Google File System. В результате все серверы должны быть доступными даже в периоды низкой нагрузки. Кроме того, сетевые серверы часто выполняют многочисленные фоновые задачи, из-за чего их невозможно перевести в состояние бездействия.
Поскольку для серверов периоды полного бездействия возникают крайне редко, для них невозможно эффективно применять методы экономии энергии, основанные на специальном режиме функционирования. Хотя разработчики иногда могут реструктурировать приложения с целью создания интервалов бездействия при наличии малой нагрузки, на практике это оказывается очень непростой задачей, и такие системы оказывается трудно поддерживать. Кроме того, для большинства привлекательных режимов экономии энергии свойственны очень высокие расходы на восстановление обычного режима функционирования, например, время, требующееся для раскрутки диска. Это затрудняет использование приложений и снижает полезность подобных подходов.
Энергопотребление сервера зависит от уровня его утилизации. Под утилизацией авторы понимают показатель производительности приложений, например, число запросов в секунду, которые должен обрабатывать Web-сервер, нормализованный показателем производительности сервера при его максимальной загрузке. Даже сервер со сравнительно эффективным потреблением энергии потребляет примерно половину своей пиковой энергии в периоды, когда ему почти нечего делать. Серверы, при разработке которых эффективному потреблению энергии уделялось недостаточное внимание, часто потребляют большую мощность даже в периоды бездействия.
Поучительно взглянуть на то, как влияет использование этого узкого динамического диапазона изменения мощности на эффективность потребления энергии системой. Показатель эффективности потребления энергии получается путем деления показателя утилизации на соответствующий показатель потребляемой энергии. Тогда пиковая эффективность потребления энергии проявляется в периоды пиковой утилизации, а по мере понижения значения показателя утилизации быстро падает. В частности, эффективность потребления энергии в диапазоне показателя утилизации от 20 до 30% (а именно с такой утилизацией серверы работают большую часть времени) более чем в два раза уступает эффективности потребления энергии в периоды пиковой производительности.
Ответственность за устранение это несоответствия между характеристиками энергопотребления серверов и рабочими нагрузками серверных приложений лежит, прежде всего, на разработчиках компонентов и систем. Они должны помочь построить машины, в которых объем потребляемой энергии был бы пропорционален объему выполняемой работы. Такие машины с соразмерным потреблением энергии в идеале вообще не будут потреблять энергию в периоды бездействия, будут почти не потреблять энергию при малой нагрузке и повышать уровень потребления энергии по мере повышения нагрузки.
Первая «регулярная» статья тематической подборки называется «Модели и метрики, позволяющие оптимизировать эффективность энергопотребления» («Models and Metrics to Enable Energy-Efficiency Optimizations») и представлена Сьюзан Ривуар, Кристосом Козиракисом, Мехулом Шахом, Партасарати Ранганатаном и Джастином Мецой (Suzanne Rivoire, Christos Kozyrakis, Stanford University, Mehul A. Shah, Parthasarathy Ranganathan, Hewlett-Packard Laboratories, Justin Meza, University of California, Los Angeles).
В последние годы большой проблемой становится энергопотребление серверов и центров данных. По данным Агентства по защите окружающей среды США (US Environmental Protection Agency) в период с 2000 по 2006 гг. потребление энергии серверов и центров данных на предприятиях США удвоилось, и оно еще раз удвоится в течение следующих пяти лет. Возрастание объема энергопотребления серверов влияет не только на стоимость электроэнергии, требуемой центрам данных, но также приводит к необходимости приобретения и эксплуатации аппаратуры охлаждения, которая может потреблять полватта мощности на каждый ватт, потребляемый сервером.
Все эти расходы, связанные с энергией, потенциально могут превышать стоимость приобретения компьютерной аппаратуры. Кроме того, все большее внимание привлекает влияние энергопотребления центров данных на окружающую среду, поскольку возрастание плотности рассеиваемой мощности отрицательно влияет на возможность компактного размещения машин в центре данных.
Основными, взаимосвязанными подходами к решению этой проблемы являются встраивание в конструкцию компонентов и систем компонентов, поддерживающих эффективное энергопотребление, а также адаптивное управление энергопотреблением систем или групп систем при изменении рабочей нагрузки или условий окружающей среды. Примерами применения первого подхода могут служить технология изготовления электронных схем, препятствующих подачи тактовых сигналов в неиспользуемые части процессора; архитектурные методы, такие как замена сложных монопроцессоров на процессоры с несколькими простыми ядрами; поддержка нескольких состояний с низким потреблением энергии в процессорах, основной памяти и дисках.
Для применения второго подхода на системном уровне требуются политики разумного использования этих состояний с низким потреблением энергии для экономии энергии. Применяемые к нескольким системах в кластере или к центру данных, эти политики должны динамически распределять рабочую нагрузку и подачу питания в соответствии с заданными целями (сокращение объема потребляемой энергии, выдерживание тепловых условий и т.д.).
Для содействия этой оптимизации требуются метрики эффективности энергопотребления, которые могли бы помочь разработчикам сравнивать разные решения и находить перспективные технологии поддержки эффективности энергопотребления. Также требуются модели для предсказания последствий применения политик динамического управления энергией, в особенности, в случае нескольких машин. Притом, что управлению электропитанием и его оптимизации посвящалось много исследований, относительно мало работ относилось к метрикам и моделям.
Авторы предлагают решение проблемы определения метрик эффективности энергопотребления на основе использования эталонного тестового набора JouleSort, который является полным тестовым набором (ориентированным на задачи внешней сортировки), пригодным для определения эффективности энергопотребления различных классов систем.
Ву-чун Фенг и Кирк Камерон (Wu-chun Feng, Kirk W. Cameron, Virginia Tech) представили статью «Список Green500: поощрение экологически рациональных компьютеров» («The Green500 List: Encouraging Sustainable Supercomputing»).
Хотя с 1992 г. производительность суперкомпьютеров, выполняющих параллельные научные приложения, выросла в 10000 раз, производительность в расчете на один ватт потребляемой мощности возросла только в 300 раз, а производительность в расчете на квадратный фут - только в 65 раз. Из-за недостаточного совершенствования этих характеристик суперкомпьютеров исследователям приходится проектировать и оборудовать новые машинные залы, а в некоторых случаях и целые здания.
Экспоненциально возрастают требования суперкомпьютеров к объему потребляемой энергии. Некоторые сегодняшние суперкомпьютеры из списка TOP500 потребляют пиковую мощность в 10 мегаватт, достаточную для удовлетворения потребностей в энергии города с 40000 жителей. Даже быстрейшая в мире машина IBM Blue Gene/L, специально построенная из компонентов с низким потреблением энергии, потребляет мощность в несколько мегаватт. Если учесть, что мегаватт/год электроэнергии стоит от 200000 до 1,2 миллионов долларов, трудно назвать такие машины малозатратными.
Электропитание компьютеров - это технология, требующая переосмысления проектирования суперкомпьютеров. По мере того как узлы суперкомпьютера потребляют все больше и больше энергии, их приходится размещать все менее плотно и подвергать энергичному охлаждению. Если не использовать специальные средства охлаждения, компьютеры перегреваются и становятся слишком ненадежными для проведения научных расчетов. К сожалению, специальные средства охлаждения могут стоить столько же, сколько сам суперкомпьютер, а расходы на эксплуатацию и поддержку этих средств оказываются еще больше.
Парадигма «производительность любой ценой» больше не является оправданной. Очевидно, что рост производительности суперкомпьютеров, наблюдавшийся в течение двух десятилетий, был бы невозможен без существенных изменений в проектировании. К сожалению, в метрике, основанной исключительно на производительности, не отражаются показатели эффективности энергопотребления. Тем не менее, эта метрика, происходящая от эталонных тестовых наборов Linpack и системы тестов SPEC (Standard Performance Evaluation Corp.), существенно повлияла на проектирование современных высокопроизводительных систем, включая серверы и суперкомпьютеры.
Метрика, основанная только на производительности, вероятно, останется полезной для сравнения существующих систем. Тем не менее, требуются новые метрики, в которых учитывались бы различия разных архитектур в части эффективности энергопотребления. Например, две гипотетические высокопроизводительные машины могли бы показать производительность в 100 терафлоп на Linpack и получить соответствующие позиции в списке TOP500. Но разумное управление энергопотреблением на одной машине, не снижающее производительность и сокращающее энергопотребление на 10%, не повлияло бы на положение этой машины в TOP500.
К сожалению, при разработке метрики приходится сталкиваться с техническими и политическими проблемами. Что касается технической стороны, метрика и связанные с ней тестовые наборы должны восприниматься специалистами, как представители рабочей нагрузки, обычно присутствующей в производственных системах. С точки зрения политики, в метриках и тестовых наборах должно быть серьезно заинтересовано сообщество.
Авторы занимаются пропагандой идеи проектирования суперкомпьютеров (и центров данных) с эффективным энергопотреблением уже семь лет. После ряда контактов с правительственными агентствами, поставщиками и университетами они установили наличие потребности в метриках, на основе которых можно справедливо оценивать системы, исполняющие производственный научный код. В исходном списке Green500 использовались одна метрика и общепринятая рабочая нагрузка, хотя имеется намерение расширить методологию Green500 для ранжирования наборов параллельных научных приложений.
В списке Green500 суперкомпьютеры ранжируются на основе объема энергии, требуемой для выполнения фиксированного объема работы. Работа в основном ориентирована на установки масштаба центров данных, используемые, прежде всего, для научно-производственных расчетов. В отличие от этого, подкомитет SPECPower организации SPEC разрабатывает соответствующие эталонные тестовые наборы для серверов, на которых исполняются коммерческие производственные коды. Различные типы оценок, обеспечиваемые Green500 и SPECPower, обеспечивают пользователям большую свободу выбора при определении метрик эффективности их систем и приложений.
Последняя статья тематической подборки называется «Компьютинг со знанием жизненного цикла» («Life Cycle Aware Computing: Reusing Silicon Technology»). Ее написали Джон Оливер, Раджеван Амиртараджан, Венкатеш Акелла, Рональд Гейер и Фредерик Чонг (John Y. Oliver, California Polytechnic State University, San Luis Obispo, Rajeevan Amirtharajah, Venkatesh Akella, University of California, Davis, Roland Geyer, Frederic T. Chong, University of California, Santa Barbara).
В последнее десятилетие наблюдалось беспрецедентное увеличение числа электронных устройств, доступных для потребителей. Во многих этих устройствах, от компьютеров до телеприставок и мобильных телефонов требуются сложные полупроводниковое оборудование, такое как процессоры и схемы памяти. Производство этого оборудования для новых и непрерывно обновляемых устройств влечет огромные экономические и затраты на охрану окружающей среды.
Поскольку в процессе производства полупроводникового оборудования используются высокоочищенный кремний, затраты энергии достаточно велики - примерно 41 мегаджоуль на кристалл динамической основной памяти (DRAM) площадью в 1.2 см2. Для иллюстрации макроэкономического воздействия этих энергетических расходов авторы приводят тот факт, что к 2015 г. полупроводниковая индустрия Японии будет потреблять 1.7% всего бюджета электроэнергии страны. Для производства энергии, достаточного для создания килограмма полупроводников, требуется около 600 килограммов ископаемого топлива. Кроме того, по данным консорциума Sematech продолжает возрастать уровень энергопотребления и в кремниевых мастерских.
Если говорить про охрану окружающей среды, то для создания упомянутого кристалла DRAM используется 72 грамма токсичных химических веществ. В 2000 г. полупроводниковая индустрия произвела 28.4 миллионов квадратных сантиметров таких кристаллов, использовав около 17 миллионов килограммов опасных веществ. Поскольку каждый год производится все больше полупроводниковых устройств, возрастают расходы и на утилизацию полупроводников.
Несмотря на все эти расходы, типичный процессор используется только в течение части своего ожидаемого жизненного цикла. Хотя развитие технологии приводит к тому, что полупроводниковое оборудование быстро устаревает, кристаллы можно было бы повторно использовать для решения менее ответственных компьютерных задач. Стратегия повторного использования привела бы к созданию «цепи питания» компьютерных устройств, амортизирующей энергетические затраты, которые требуются для создания процессоров - в особенности, встроенных процессоров с пониженным энергопотреблением.
Жизненный цикл энергопотребления процессора или схемы памяти можно представить как сумму производственных энергетических затрат, включая создание кремниевых пластин, химические и литографические процессы, а также монтаж и сборку кристаллов, и энергетических расходов на эксплуатацию кристалла. Сравнительный анализ этих двух компонентов показывает, что объем энергии, требуемой для производства процессора, может превосходить объем энергии, потребляемой при эксплуатации процессора. Для повторного использования процессоров потребуются новые методы построения компьютеров с перестраиваемой структурой и совместного проектирования аппаратуры и программного обеспечения, а также правительственная политика, поощряющая повторное использование полупроводникового оборудования. Однако потенциальная польза для общества с лихвой окупит требуемые расходы.
Единственная статья декабрьского номера, не вошедшая в тематическую подборку, называется «Анализ проблем научных потоков работ» («Examining the Challenges of Scientific Workflows») и написана Иоландой Гил, Евой Дилман, Марком Эллисманом, Томасом Варингером, Джеффри Фоксом, Деннисом Гоблом, Мироном Ливни, Люком Моро и Джимом Майерсом (Yolanda Gil, Ewa Deelman, University of Southern California, Mark Ellisman, University of California, San Diego, Thomas Fahringer, University of Innsbruck, Geoffrey Fox, Dennis Gannon, Indiana University, Carole Goble, University of Manchester, Miron Livny, University of Wisconsin-Madison, Luc Moreau, University of Southampton, Jim Myers, National Center for Supercomputing Applications).
Существенные научные достижения все более возможны только на основе сложного набора процессов вычислений и анализа данных. Вычисления могут состоять из тысяч шагов, и на каждом шаге могут интегрироваться разные модели и источники данных, созданные различными научными группами. Приложения и данные могут быть также распределены в среде обработки. При сборке таких сложных распределенных вычислений и управлении ими возникает много проблем, и все более амбициозные научные запросы постоянно наталкиваются на ограничения современной технологии.
Научные потоки работ представляют собой парадигму представления и управления распределенными научными вычислениями, позволяющую ускорить прогресс науки. Научные потоки работ управляют потоками данных между отдельными шагами преобразования и анализа данных, а также организуют исполнение этих шагов в распределенной среде.
Каждый шаг в потоке работ специфицирует выполнение некоторого процесса или вычисления (например, программы или Web-сервиса). Поток работ связывает шаги в соответствии с потоком данных и зависимостями между шагами. Представление этих вычислительных потоков работ содержит много подробностей, требуемых для выполнения каждого шага, включая использование конкретных вычислительных ресурсов и ресурсов хранения данных в распределенной среде.
Системы управления потоками работ используют эти явные представления сложных вычислительных процессов для управления их жизненным циклом и автоматизации их исполнения. В дополнение к этой автоматизации потоки работ могут обеспечить информацию, необходимую для воспроизведения научных результатов, отслеживания происхождения результатов и совместного использования результатов между сотрудниками.
Системы потоков работ демонстрируют эти возможности в разнообразных приложениях, в которых потоки работ состоят из тысяч компонентов, обрабатывающих крупные распределенные наборы данных с использованием высокопроизводительных вычислительных ресурсов. Некоторые системы потоков работ внедряются для повседневного использования в научных коллаборациях - виртуальных образованиях, позволяющих ученым сотрудничать за пределами организационных и физических границ.
Большая часть выполняемых исследований в области научных потоков работ посвящается созданию потоков работ, их повторному использованию, отслеживанию происхождения данных, оптимизации производительности и надежности. Однако для полной реализации потенциала технологии потоков работ требуется удовлетворить многие дополнительные требования и решить множество проблем. Для научных приложений требуются поддержка динамического анализа под управлением событий, управление потоковыми данными, налаживание взаимодействия с пользователями, интеллектуальная поддержка коллективной разработки потоков работ, обеспечение совместного использования результатов в коллаборациях.
В 2006 г. Симпозиум по проблемам научных потоков работ (2006 Workshop on Challenges of Scientific Workflows) Национального научного фонда США (National Science Foundation) собрал ученых из прикладных, компьютерных и общественных областей для обсуждения требований к будущим научным приложениям и проблемам, которые они представляют для современных технологий потоков работ. В частности, анализировались требования приложений, представления потоков работ и динамические потоки работ.