Анализируя результаты работы компаний, исповедующих различные подходы к организации процесса, можно выделить следующие факты. Компании, выпускающие первый прототип, обладающий всего лишь 20% функциональности, в итоге уменьшали количества ошибок на 27%. Далее, регрессионное тестирование снижает количество ошибок на 36%, уточнение архитектуры конечного продукта на каждом этапе дает 55% снижения. Кстати, ранний выпуск работающих прототипов повышает общую производительность программистов на 35%. А если прототипы выпускаются ежедневно, то она вырастает почти вдвое - вот какой эффект имеет осязаемость результатов своего труда!
Итак, по разным оценкам, более 60% программного обеспечения создается на основе новых методов организации рабочего процесса. Только в 36% случаев применяется нисходящее программирование с детально проработанным планом и подробными спецификациями до начала его реализации. Можно смело утверждать, что мир разработки ПО окончательно изменился и большинство компаний применяют смесь из обычного программирования и итеративных методик. Это свидетельствует о том, что ориентация софтверных фирм на рынок «вообще» сменилась ориентацией на решение задач конкретного пользователя.
При сегодняшнем росте сложности разрабатываемого ПО неизбежен и рост удельного количества ошибок в нем, поэтому стремление к постоянному наращиванию скорости производства кода уже не может являться главной целью. Удивительно низкий уровень ошибок японских производителей при сохранении традиционного подхода вряд ли может быть применим в других регионах, так как для этого необходимо перенести туда и японский менталитет. Качество же индийского кода, продолжая расти, все-таки пока остается на недостаточном для современных задач уровне.
ТЕХНОЛОГИИ: На холодный конец
Автор: Константин Курбатов
В начале двадцатого века паровозы доставляли пассажиров из Москвы в Санкт-Петербург за десять часов. При этом их КПД не превышал семи процентов. То есть использовалась только одна четырнадцатая часть энергии дров и угля, а остальные тринадцать обогревали атмосферу. Конструкторы тех лет придумывали самые изощренные способы, дабы сохранить тепло.
Процессоры в современных серверных стойках тоже обогревают атмосферу, однако в данном случае конструкторы преследуют диаметрально противоположную цель - отвести от чипа как можно больше избыточного тепла.
Современные высокопроизводительные процессоры греются не хуже ламп накаливания; «топовые» модели производят до 130 Вт тепла, а порой и больше. Теперь представьте, что в одном сервере толщиной в один юнит (1,75 дюйма, около 4,4 см) может находиться два таких процессора, а юнитов в стойке - до сорока двух штук. Количеству выделяемых стойкой калорий позавидует иная тепловая пушка, обогревающая производственные помещения.
Но это не все трудности, встающие на пути инженеров-разработчиков высокопроизводительных систем. Вторая проблема - малый размер процессоров. Чтобы отвести тепло с небольшой площади радиатора, необходимо обдувать его очень большим количеством воздуха, а значит, вентиляторы должны быть высокопроизводительными и, как следствие, шумными.
Компания Cray - всемирно известная своими суперкомпьютерами, пошла по иному пути. Например, в модели ETA-10 была применена система охлаждения процессоров жидким азотом, что позволило вдвое повысить производительность. С эффективностью такой системы не поспоришь, однако ее цена заставляет задуматься даже военные ведомства. Так что применение этой технологии пока остается уделом сверхплотных и сверхпроизводительных систем стоимостью несколько сот тысяч и даже миллионов долларов.
Другой способ - закрытые кондиционированные шкафы, куда подается уже сильно охлажденный воздух. Но и здесь есть свои трудности. Во-первых, стоимость подобных шкафов и затраты на их эксплуатацию хоть и в разы меньше, чем у системы на азоте, тем не менее весьма высоки. Несмотря на кажущуюся простоту, приходится искать решения множества технологических задач, таких как равномерное распределение холодного воздуха в стойке, интенсивный отвод теплого воздуха, герметичность. Становится очень важным правильное распределение (не всегда совпадающее с желаемым) серверов внутри стойки и прочие тонкости. Да и КПД такой системы охлаждения тоже оказывается не на высоте: получается тройная передача тепловой энергии - сначала охлаждается фреон, который затем охлаждает воздух, а воздух, в свою очередь, охлаждает процессоры.
Специалисты российской компании Kraftway, изучив проблему, подумали: а зачем вообще нужен воздух в этой системе «теплых взаимоотношений»? И решили охлаждать процессоры сразу фреоном кондиционера.
Однако не все так просто. Подумайте, легко ли конфигурировать систему, насквозь пронизанную трубками с фреоном?! Поэтому было решено охлаждать не сами процессоры, которые располагаются в разных серверах по-разному, а сначала отводить тепло от раскаленных невероятной вычислительной мощностью ядер тепловыми трубками. То есть один ее конец располагается на самом процессоре, отбирая тепло, а другой - выводится на заднюю стенку сервера. Тем самым упрощается не только конструкция охладителя, но и процесс замены серверов: достаточно отвинтить тепловую трубку и вынуть корпус из стойки, не останавливая и не разбирая всю систему охлаждения.
Устройство тепловой трубки тоже заслуживает упоминания. Как известно, в них применяются самые разные теплоносители (вода, эфир, фреон). Однако большинство из них не обладают достаточной производительностью. Даже вода, несмотря на свою впечатляющую теплоемкость, не может справиться с той скоростью отвода тепла, которая требуется для современных процессоров[Главная проблема - скорость циркуляции. Есть, однако, примеры и удачного применения воды. Компания Icebear System построила систему водяного охлаждения для стоек. Мне, правда, не приходилось встречать сообщений о ее реальных применениях. К тому же прототип этой системы был предназначен только для машин на базе процессоров Opteron]. Есть и другой момент: представьте, что трубка вдруг начнет протекать… это явно не обрадует электрические схемы материнской платы.
Применение фреона позволяет добиться необходимой производительности и безопасности. В случае протечки он тут же улетучивается, а теплоемкость его испарения сравнима с водой. Устроена трубка следующим образом. Жидкий фреон по капиллярной губке направляется к процессору, там, испаряясь, поднимается к «утюжкам» (рис. 2), прикрепленным к постоянно охлаждаемой металлической колонне (о ней будет рассказано ниже), в которых он охлаждается и, конденсируясь, стекает вниз в горизонтальную часть трубки, где благодаря капиллярному эффекту попадает обратно к ядру процессора. Далее - по кругу. Надежность такой замкнутой и герметичной системы очень высока.
Однако выведя процессорное тепло наружу, мы решили только половину задачи. Ведь его все равно нужно каким-то образом передать дальше, «на улицу». Тут и выступает на сцену вышеупомянутая колонна, к которой прикреплены горячие «утюжки» тепловых трубок. Несмотря на свой заурядный вид, она вовсе не является копией морозилки бытового холодильника.
Внутри этой прямоугольной тепловой колонны расположена медная трубка с массой мельчайших отверстий[Как утверждают разработчики, для их изготовления пришлось применить лазерное сверление, ведь диаметр отверстий не превышает нескольких десятков микрон], в которую специальная помпа подает хладагент[Используется опять же фреон, однако любителям природы не стоит волноваться, - применяется безопасная для озонового слоя марка хладона (HFC R142b)]. Протекая по трубке, фреон через отверстия разбрызгивается на внутреннюю поверхность колонны. Испаряясь на ней, он отбирает тепло у «утюжков» и уходит по трубке к основному компрессору[Вообще, «теплый конец» - это стандартный внешний блок сплит-системы кондиционирования воздуха], который может быть расположен далеко за пределами стойки (например, на улице вместе с радиатором охлаждения хладагента). Дополнительная помпа (рис. 1) понадобилась для того, чтобы регулировать нагрузку: стойка с серверами может быть заполнена только частично, и охлаждать колонну целиком - пустая трата энергии. С другой стороны, основной компрессор кондиционера работает на постоянных оборотах, и снижать их недопустимо, так как он может просто-напросто сгореть (можно вспомнить частые случаи перегорания компрессоров холодильников в сельской местности из-за пониженного напряжения). Поэтому оказалось рациональнее (хоть это немного и усложнило конструкцию) поставить дополнительную помпу непосредственно в стойке и управлять уже ее оборотами. Таким образом, инженеры продолжают бороться за общее повышение КПД системы.
Итак, получается двойная, а не тройная система охлаждения. Сначала нагревается непосредственно фреон, минуя воздушную стадию (нагревом корпуса трубок можно пренебречь), и уже он отдает тепло окружающему воздуху, причем далеко за пределами серверной стойки.
Если мы избавились от воздушного охлаждения процессоров, то нет необходимости в большом количестве вентиляторов внутри каждого сервера. По утверждению разработчика, для охлаждения всех оставшихся схем, включая жесткий диск и блок питания, достаточно лишь одного вентилятора на корпус. Это радикально снижает шум, что позволяет размещать такие стойки внутри рабочих комнат, не вынося их в специальные помещения.
Представители компании Kraftway очень неохотно отвечали на вопрос о возможной стоимости подобной системы. Ссылаясь на то, что пока существует только прототип и многие решения еще не вышли на стадию массового производства, говорить о конкретных расчетах слишком трудно. Однако мне удалось в приватной беседе выяснить, что ориентировочная стоимость в расчете на один процессор не должна превышать пятидесяти долларов (не забывайте, что речь идет о многопроцессорных системах с количеством чипов около сотни). Это, согласитесь, уже близко к цене обычных медных радиаторов и, разумеется, гораздо меньше стоимости систем на жидком азоте.
Похоже, Россия становится не только «родиной слонов» и великих комбинаторов, но и местом рождения остроумных технических решений для современных высокопроизводительных вычислительных систем. Возможно, недалек тот день, когда первые строчки знаменитого Top 500 будут занимать компьютеры, построенные именно у нас.
ТЕХНОЛОГИИ: Сколько мегапикселов можно разместить
Автор: Юрий Ревич
И фотолюбители, и журналисты, пишущие о цифровой фотографии, как «Отче наш» затвердили, что количество мегапикселов в матрице не главная характеристика цифрового фотоаппарата. Но ни в одном из известных мне источников вы не найдете точного ответа на вопросы, которые возникают по этому поводу у неискушенного покупателя цифровой камеры.
Самый главный вопрос - почему? Интуитивно кажется, что чем больше мегапикселов, тем камера лучше, и маркетологи вовсю играют на этом заблуждении. В то же время их оппоненты из пишущей братии в лучшем случае что-то промямлят про низкую чувствительность и повышенный уровень шумов. «Чайник» покупает камеру, убеждается, что никаких шумов там нет, и лишний раз приходит к справедливому выводу, что верить печатному слову не следует. Это действительно так практически для любой из популярных моделей камер в ценовом диапазоне от $200 - исключая, разумеется, экстремальные условия съемки при низкой освещенности, когда никто ничего хорошего и не ждет. Но чем 8-мегапиксельная «мыльница» Nikon Coolpix P1 тогда хуже 6-мегапиксельного Nikon D70? Неужели, кроме зеркального видоискателя, сменной оптики и количества функций - то есть, грубо говоря, удобства и некоторых специальных возможностей, - ничем не хуже? За что тогда почти втрое большая цена - только за зеркало и возможность подключения продвинутой внешней вспышки?
Другой важный вопрос, который задает себе фотолюбитель, особенно если его в техническом вузе научили инженерному подходу к действительности: а сколько их надо, этих мегапикселов? И в каких случаях это действительно важно, а в каких нет? Недавно Роман Косячков показал мне карточку 10х15, отпечатанную на термосублимационном принтере. Отличного качества отпечаток, хоть в журнале помещай. Секрет состоял в том, что исходное изображение скачано из Интернета, и его размер был 700х466 точек - 0,3 мегапиксела! Даже если принять сей факт за лишнее подтверждение того, что нас всех обувают, как лохов, - но не в такой же степени?!
Далее мы попробуем в этом разобраться. И для начала подчеркнем, что физический размер матрицы и количество мегапикселов в ней - это параметры, которые имеют важное значение каждый сам по себе, вне прямой зависимости друг от друга.
Почему большие матрицы лучше маленьких
Рассматривать влияние физических размеров матрицы на качество снимков мы все же начнем со взаимосвязи этого параметра с числом мегапикселов - то есть сначала разберемся с чувствительностью и шумами. Действительно, продвинутая «мыльница» Olympus Camedia C-770 имеет 4-мегапиксельную матрицу типоразмером 1/2,5”. Ее линейный размер - 5,76х4,29 мм (см. таблицу), и простейший подсчет показывает, что на один элемент приходится квадратик 2,5х2,5 мкм. Эти величины вполне сравнимы с длиной волны видимого света (0,7 мкм для красного), причем надо иметь в виду, что из расчетной площади на собственно сенсор приходится едва ли половина, остальное занимают электрические схемы. То есть в размеры одного сенсора укладывается всего-навсего пара световых волн!
Совсем другое дело в случае полноразмерной матрицы (36х24 мм). Даже для 16-мегапиксельной камеры (Canon Mark II) на каждый сенсор приходится 7,2х7,2 мкм, вдобавок площадь, занятая собственно сенсором, там существенно выше. Так почему я утверждаю, что в настоящее время фактор шумов не имеет особого значения? А потому, что прогресс не стоит на месте - маленькая матрица, выпущенная сегодня, на много порядков лучше, чем большая, но изготовленная в году этак 1999-м. И сами матрицы, и технологии подавления шумов стали совершеннее. Разумеется, при непосредственном сравнении C-770 проиграет Mark II, но так ли уж это важно для тех, кто покупает С-770? Учтем еще, что даже заметный шум скрадывается при печати на принтере. Наконец, прогресс в этой области в стенку совсем не уперся - пока нет особых причин, по которым новые поколения матриц не должны шуметь все меньше и меньше.
Глубина резкости
Еще одно обстоятельство, которое часто упоминают, рассуждая о недостатках небольших матриц, - чрезмерная глубина резкости. Фокусное расстояние «нормального» объектива примерно равно диагонали матрицы (или чуть превышает ее). Поэтому «нормальным» для того же С-770 будет объектив с фокусным расстоянием около 9 мм, что мы и наблюдаем - камера имеет 10-кратный зум и диапазон фокусных расстояний 6,3-63 мм (38-380 мм в 35-миллиметровом эквиваленте), то есть немного в сторону широкоугольности при минимальном зуме. Глубина резкоизображаемого пространства находится в квадратичной зависимости от фокусного расстояния. Не углубляясь в подробности, приведем только конечную формулу этой функции:
где H - гиперфокальное расстояние (расстояние до передней границы резкоизображаемого пространства при наводке на бесконечность), f - фокусное расстояние объектива, F - значение диафрагмы, а #948; - величина так называемого допустимого кружка рассеяния, которая для кадра 24х36 мм обычно принимается равной 0,05 мм. Матрица у нас много меньше пленочного кадра, поэтому примем #948; = 0,01 мм. Если подсчитать гиперфокальное расстояние, например, при фокусном расстоянии 7 мм и диафрагме 2,8, которая имеет место для рассматриваемого объектива, то получим 1,75 м. Таким образом, все, что дальше 1,75 м, будет отображаться резко без специальной наводки! На самом деле, как мы увидим дальше, нас устроит допущение относительно кружка рассеяния и в 0,05 мм, то есть фактически такой камерой можно снимать, вообще не наводя на резкость на коротком фокусе - зачем? Оттого-то и снимки выходят плоскими и невыразительными, объекты теряются на фоне, и хороший портрет или предметный снимок сделать такой камерой трудно.