Анализируя результаты работы компаний, исповедующих различные подходы к организации процесса, можно выделить следующие факты. Компании, выпускающие первый прототип, обладающий всего лишь 20% функциональности, в итоге уменьшали количества ошибок на 27%. Далее, регрессионное тестирование снижает количество ошибок на 36%, уточнение архитектуры конечного продукта на каждом этапе дает 55% снижения. Кстати, ранний выпуск работающих прототипов повышает общую производительность программистов на 35%. А если прототипы выпускаются ежедневно, то она вырастает почти вдвое - вот какой эффект имеет осязаемость результатов своего труда!
Итак, по разным оценкам, более 60% программного обеспечения создается на основе новых методов организации рабочего процесса. Только в 36% случаев применяется нисходящее программирование с детально проработанным планом и подробными спецификациями до начала его реализации. Можно смело утверждать, что мир разработки ПО окончательно изменился и большинство компаний применяют смесь из обычного программирования и итеративных методик. Это свидетельствует о том, что ориентация софтверных фирм на рынок «вообще» сменилась ориентацией на решение задач конкретного пользователя.
При сегодняшнем росте сложности разрабатываемого ПО неизбежен и рост удельного количества ошибок в нем, поэтому стремление к постоянному наращиванию скорости производства кода уже не может являться главной целью. Удивительно низкий уровень ошибок японских производителей при сохранении традиционного подхода вряд ли может быть применим в других регионах, так как для этого необходимо перенести туда и японский менталитет. Качество же индийского кода, продолжая расти, все-таки пока остается на недостаточном для современных задач уровне.
ТЕХНОЛОГИИ: На холодный конец
Автор: Константин Курбатов
В начале двадцатого века паровозы доставляли пассажиров из Москвы в Санкт-Петербург за десять часов. При этом их КПД не превышал семи процентов. То есть использовалась только одна четырнадцатая часть энергии дров и угля, а остальные тринадцать обогревали атмосферу. Конструкторы тех лет придумывали самые изощренные способы, дабы сохранить тепло.
Процессоры в современных серверных стойках тоже обогревают атмосферу, однако в данном случае конструкторы преследуют диаметрально противоположную цель - отвести от чипа как можно больше избыточного тепла.
Современные высокопроизводительные процессоры греются не хуже ламп накаливания; «топовые» модели производят до 130 Вт тепла, а порой и больше. Теперь представьте, что в одном сервере толщиной в один юнит (1,75 дюйма, около 4,4 см) может находиться два таких процессора, а юнитов в стойке - до сорока двух штук. Количеству выделяемых стойкой калорий позавидует иная тепловая пушка, обогревающая производственные помещения.
Но это не все трудности, встающие на пути инженеров-разработчиков высокопроизводительных систем. Вторая проблема - малый размер процессоров. Чтобы отвести тепло с небольшой площади радиатора, необходимо обдувать его очень большим количеством воздуха, а значит, вентиляторы должны быть высокопроизводительными и, как следствие, шумными.
Компания Cray - всемирно известная своими суперкомпьютерами, пошла по иному пути. Например, в модели ETA-10 была применена система охлаждения процессоров жидким азотом, что позволило вдвое повысить производительность. С эффективностью такой системы не поспоришь, однако ее цена заставляет задуматься даже военные ведомства. Так что применение этой технологии пока остается уделом сверхплотных и сверхпроизводительных систем стоимостью несколько сот тысяч и даже миллионов долларов.
Другой способ - закрытые кондиционированные шкафы, куда подается уже сильно охлажденный воздух. Но и здесь есть свои трудности. Во-первых, стоимость подобных шкафов и затраты на их эксплуатацию хоть и в разы меньше, чем у системы на азоте, тем не менее весьма высоки. Несмотря на кажущуюся простоту, приходится искать решения множества технологических задач, таких как равномерное распределение холодного воздуха в стойке, интенсивный отвод теплого воздуха, герметичность. Становится очень важным правильное распределение (не всегда совпадающее с желаемым) серверов внутри стойки и прочие тонкости. Да и КПД такой системы охлаждения тоже оказывается не на высоте: получается тройная передача тепловой энергии - сначала охлаждается фреон, который затем охлаждает воздух, а воздух, в свою очередь, охлаждает процессоры.
Специалисты российской компании Kraftway, изучив проблему, подумали: а зачем вообще нужен воздух в этой системе «теплых взаимоотношений»? И решили охлаждать процессоры сразу фреоном кондиционера.
Однако не все так просто. Подумайте, легко ли конфигурировать систему, насквозь пронизанную трубками с фреоном?! Поэтому было решено охлаждать не сами процессоры, которые располагаются в разных серверах по-разному, а сначала отводить тепло от раскаленных невероятной вычислительной мощностью ядер тепловыми трубками. То есть один ее конец располагается на самом процессоре, отбирая тепло, а другой - выводится на заднюю стенку сервера. Тем самым упрощается не только конструкция охладителя, но и процесс замены серверов: достаточно отвинтить тепловую трубку и вынуть корпус из стойки, не останавливая и не разбирая всю систему охлаждения.
Устройство тепловой трубки тоже заслуживает упоминания. Как известно, в них применяются самые разные теплоносители (вода, эфир, фреон). Однако большинство из них не обладают достаточной производительностью. Даже вода, несмотря на свою впечатляющую теплоемкость, не может справиться с той скоростью отвода тепла, которая требуется для современных процессоров[Главная проблема - скорость циркуляции. Есть, однако, примеры и удачного применения воды. Компания Icebear System построила систему водяного охлаждения для стоек. Мне, правда, не приходилось встречать сообщений о ее реальных применениях. К тому же прототип этой системы был предназначен только для машин на базе процессоров Opteron]. Есть и другой момент: представьте, что трубка вдруг начнет протекать… это явно не обрадует электрические схемы материнской платы.
Применение фреона позволяет добиться необходимой производительности и безопасности. В случае протечки он тут же улетучивается, а теплоемкость его испарения сравнима с водой. Устроена трубка следующим образом. Жидкий фреон по капиллярной губке направляется к процессору, там, испаряясь, поднимается к «утюжкам» (рис. 2), прикрепленным к постоянно охлаждаемой металлической колонне (о ней будет рассказано ниже), в которых он охлаждается и, конденсируясь, стекает вниз в горизонтальную часть трубки, где благодаря капиллярному эффекту попадает обратно к ядру процессора. Далее - по кругу. Надежность такой замкнутой и герметичной системы очень высока.
Однако выведя процессорное тепло наружу, мы решили только половину задачи. Ведь его все равно нужно каким-то образом передать дальше, «на улицу». Тут и выступает на сцену вышеупомянутая колонна, к которой прикреплены горячие «утюжки» тепловых трубок. Несмотря на свой заурядный вид, она вовсе не является копией морозилки бытового холодильника.
Внутри этой прямоугольной тепловой колонны расположена медная трубка с массой мельчайших отверстий[Как утверждают разработчики, для их изготовления пришлось применить лазерное сверление, ведь диаметр отверстий не превышает нескольких десятков микрон], в которую специальная помпа подает хладагент[Используется опять же фреон, однако любителям природы не стоит волноваться, - применяется безопасная для озонового слоя марка хладона (HFC R142b)]. Протекая по трубке, фреон через отверстия разбрызгивается на внутреннюю поверхность колонны. Испаряясь на ней, он отбирает тепло у «утюжков» и уходит по трубке к основному компрессору[Вообще, «теплый конец» - это стандартный внешний блок сплит-системы кондиционирования воздуха], который может быть расположен далеко за пределами стойки (например, на улице вместе с радиатором охлаждения хладагента). Дополнительная помпа (рис. 1) понадобилась для того, чтобы регулировать нагрузку: стойка с серверами может быть заполнена только частично, и охлаждать колонну целиком - пустая трата энергии. С другой стороны, основной компрессор кондиционера работает на постоянных оборотах, и снижать их недопустимо, так как он может просто-напросто сгореть (можно вспомнить частые случаи перегорания компрессоров холодильников в сельской местности из-за пониженного напряжения). Поэтому оказалось рациональнее (хоть это немного и усложнило конструкцию) поставить дополнительную помпу непосредственно в стойке и управлять уже ее оборотами. Таким образом, инженеры продолжают бороться за общее повышение КПД системы.