Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #49, ДЕКАБРЬ 2004 г.

Домашний Cray

Крис Касперски aka мыщъх

Спецвыпуск: Хакер, номер #049, стр. 049-016-1


Идеальный ПК для настоящего кодера

Каков идеальный ПК для кодера? Как его собрать собственноручно? Можно не заморачиваться этими вопросами, а просто купить самый крутой и навороченный ПК, переплатив за возможности, большая часть из которых никогда не будет востребована. Но стоит помнить, что "дорого" не синоним "хорошо", а "круто" вовсе не означает «то, что тебе нужно». Потребности кодеров имеют свою специфику, о которой я и собираюсь рассказать.

Процессор

Компиляция – весьма ресурсоемкий процесс. Даже на самых мощных процессорах полная пересборка типичного программистского проекта может растянуться на несколько часов. Желательно, чтобы у процессора была не только впечатляющая тактовая частота, но и достаточно вместительный кэш первого и второго уровней. Усеченные версии "топовых" процессоров, ориентированные на массовый рынок, (типа Celeron'ов) кодеру приобретать невыгодно - такие камни малопроизводительны в компиляции. Так что на камне лучше не экономить. Мощный камень очень быстро себя окупит.

Разгонять процессор (как и все остальные компоненты ПК) категорически не рекомендуется! Кодер как никто другой должен быть уверен в надежности аппаратного обеспечения, чтобы точно отличать свои программистские ошибки от сбоев машины. Типичный случай: накануне сдачи судьбоносного проекта уже отлаженная программа внезапно начинает сбоить, причем воспроизвести последовательность действий, приводящую к ошибке несмотря на все усилия так и не удается. Плавающий глюк, что может быть хуже! Программист не спит ночами, много курит, нервничает, ругается матом, вносит в исходный код большое количество исправлений, доламывающих программу окончательно. Между тем, источник ошибок вовсе не в ней, а в разогнанном процессоре. Мораль: нормальные кодеры не разгоняют процессоры!

Какой процессор выбрать: Intel или AMD? Для конечного потребителя это вопрос вкуса, но кодер не может полагаться на свой собственный вкус. Он – слуга потребителя. В идеале следует иметь несколько компьютеров с различными конфигурациями, но на практике это не всегда достижимо, поэтому приходится выбирать что-то одно.

Intel - законодатель мод, захвативший львиную долю рынка и не собирающийся ее никому отдавать. Вопреки распространенному мнению, процессоры Intel и AMD не полностью совместимы друг с другом (в частности, они по-разному обрабатывают флаги, помеченные в документации как "неопределенные"). Поэтому программа, закладывающая на некоторые не вполне "легальные" особенности поведения процессора (независимо от того, осведомлен кодер об их "недокументированном" статусе или нет), на другом процессоре может просто не пойти!

Еще более строгие условия налагает оптимизация. Стратегия построения оптимального кода определяется внутренней архитектурой процессора, а она у Intel и AMD очень разная. Оптимизация под AMD с экономической точки зрения совершенно бессмысленна: количество поклонников этого процессора относительно невелико, причем большая часть из них - довольно воинственные субъекты, предпочитающие программы не покупать, а "национализировать". Качество документации от AMD все еще оставляет желать лучшего, в от время как Intel предлагает не только великолепное и бесплатно рассылаемое в печатном виде руководство по оптимизации, но и высокопроизводительные библиотеки, оптимизированные на все случае жизни.

Содержание  Вперед на стр. 049-016-2