Юрий Ревич - 1001 совет по обустройству компьютера
Множество достаточно производительных систем, предлагаемых сейчас торговлей, имеют тактовую частоту намного ниже практически достижимого порога. Скорость работы компьютеров, наконец, стала определяться не тактовой частотой, а организацией обмена информацией и различными нововведениями в этой области, подтягивающими узкие места. В результате компьютер производства 2003 года может отставать по производительности от компьютера производства 2010 года с той же тактовой частотой процессора (и даже с тем же по видимости типом процессора) в разы.
С другой стороны, производители обнаружили, что такая высокая производительность требуется вовсе не всегда – большинство практических задач совсем не предполагают никаких экстремальных расчетов, и с ними могут справиться вполне рядовые системы. Не то, чтобы задач, требующих повышенной производительности, вообще не существовало – просто ее повышение на 30 % и даже в два раза проблем не решает. Примером могут служить интеллектуальные функции машин – например, нет сомнений, что проблему машинного языкового перевода решить можно. Но вычислительную мощность, которая для этого потребуется, можно оценить на примере родственной задачи – компьютер «Ватсон», выигравший в 2011 году американскую телевикторину Jeopardy (в России эта программа называется «Своя игра»), по вычислительной мощности входит в сотню самых производительных суперкомпьютеров мира. Да, его научили «понимать» запросы на естественном языке практически без ограничений, распознавать юмор, учитывать социокультурный контекст, что очень важно как раз в случае перевода с одного языка на другой. Но даже довольно ограниченный интеллект в рамках такой определенной задачи потребовал почти трех тысяч процессорных ядер и 16 терабайт памяти – и, не забудем, четырех лет на разработку уникального программного обеспечения.
Возможности «Ватсон» в сотни раз превышают возможности современных настольных машин, и чтобы их расширить, производителям придется обойти еще не один технический порог, подобный уже возникшему физическому ограничению по тактовой частоте. Когда-нибудь они это, без сомнения, сделают или найдут другие пути решения проблемы экстремальных задач (например, «облачные вычисления»), а пока приходится обходиться тем, что имеется в наличии.
1.1. Выбор процессора для персональных компьютеров
С уверенностью можно сказать, что в большинстве случаев для рядовых пользователей выбор центрального процессора сегодня решающего значения не имеет – мощность компьютера даже со слабым процессором все равно позволит выполнять почти любые практические задачи. Собственно, выбирать процессор сегодня приходится лишь в одном случае – при покупке нового настольного компьютера (десктопа). Ноутбуки и тем более другие мобильные устройства (нетбуки, планшеты или смартфоны) по критерию процессора, как и вообще аппаратной платформы в целом, выбирать бессмысленно – их выбирают по функциональности и цене. В крайнем случае можно озаботиться качеством дисплея.
А в случае десктопа действительно приходится начинать выбор именно с процессора. Как и когда-то, такой выбор обуславливает производительность компьютера в целом. Только теперь не столько потому, что такой-то процессор медленнее или быстрее другого, сколько из-за того, что выбор процессора влечет за собой выбор управляющего чипсета, а следовательно, и типа материнской платы, системы охлаждения и многих других мелочей, а именно от этого сегодня зависит функциональность и производительность компьютера в целом. Так, контроллер доступа к памяти в современных системах в ряде случаев встроен в процессор (обычно это процессоры, поддерживающие 64-разрядные вычисления), и потому, выбрав процессор, вы оказываетесь жестко привязаны к определенному типу памяти.
Особо следует поговорить о выборе между 32-разрядными и 64-разрядными системами. Большинство современных процессоров поддерживает 64-разрядные вычисления (включая даже почти все модификации самого простого и дешевого процессора Intel под названием Atom, предназначенного в основном для мобильных компьютеров). Названия таких процессоров и чипсетов к ним дополнительно включают в себя цифру 64: «Intel 64», «amd64», «x86-64», «x64», «EM64T» – разные названия одной и той же технологии.
На практике преимущество 64-разрядных систем заключается не в собственно разрядности вычислений (это может и не дать заметного эффекта), а в том, что системы с такой разрядностью могут поддерживать гораздо больший объем памяти. Сравните – обычная 32-разрядная Windows XP поддерживает физическую память максимум в 4 гигабайта, из которых реально работает около 3,5. 64-разрядная Windows XP поддерживает уже 16 Гбайт, а Windows 7 – до 192 Гбайт (в зависимости от редакции), что фактически равно объему современных жестких дисков.
Но также понятно, что для достижения реального эффекта в таких системах нужно еще много условий. Нужны не просто соответствующие драйверы, которые могут работать в 64-разрядной системе – они вместе с аппаратурой должны реально поддерживать 64-разрядный режим расчетов. Нужны соответствующие программы – обычные 32-битные, естественно, не дадут никакого прироста производительности, даже если их приспособить для работы в 64-разрядной среде. Наконец, нужны собственно задачи, для которых эффект будет значимым: включающие объемные вычисления и оперирование большими объемами данных. Таких задач, как уже говорилось, у обычного пользователя сегодня практически нет – даже с преобразованиями фотографий формата настенных календарей рядовая современная персоналка справляется, как говорится, «на раз».
Возможно, в скором времени все персональные компьютеры и системы для них станут 64-разрядными, и будет накоплено много соответствующего программного обеспечения. Но пока для всех практических случаев, включая даже самые «навороченные» компьютерные игры (одна из самых сложных задач для бытового компьютера), выбор 32-разрядной системы является необходимым и достаточным. Заодно вы гарантированы от несовместимости старых программ с 64-разрядной системой – хотя Microsoft обещает, что в большинстве случаев эти программы будут выполнятся, но все-таки не все. И довольно глупо покупать какой-нибудь новый антивирус только из любви к прогрессу, не получив таким способом ровным счетом никаких преимуществ.
Несколько иная, кстати, ситуация с количеством вычислительных ядер в процессоре. Несколько ядер – все равно, что несколько процессоров, работающих одновременно. Общеизвестно, что реальную отдачу от многих ядер можно получить лишь в случае, когда выполняющаяся программа эффективно делится на ряд параллельных потоков, и далеко не все компьютерные задачи соответствуют этому предположению. Кроме того, даже если такое деление и возможно, то оно очень трудоемко – «распараллеливание» программ почти не поддается автоматизации, и программистам его приходится проводить фактически вручную (именно так делаются программы для суперкомпьютеров).
Но в мире персональных компьютеров есть одна очень распространенная задача, которая уже сама по своей природе является распараллеленной. Более того, это самая часто встречающаяся задача на практике – выполнение одновременно многих задач в многозадачной операционной системе. Здесь ничего придумывать не приходится, и для запуска каждой задачи в своем отдельном процессоре нет никаких препятствий. В реальности, конечно, удвоение и учетверение количества ядер не дает такого же прироста производительности – как минимум, в таких системах процессорам приходится делить общую память и другие ресурсы компьютера, что сильно уменьшает выигрыш. Два ядра могут суммарно дать примерно 167 % увеличения производительности в сравнении с одноядерным процессором, четыре – примерно 250 %, а больше шести ядер (Intel Core i7 или AMD Phenom II X6) и вовсе ставить нецелесообразно – дальше производительность будет расти очень медленно. Но эффект от увеличения количества ядер все равно намного больший, чем от таких дорогих усовершенствований, как повышение быстродействия памяти, или даже от подгонки задач под 64-разрядные вычисления. Потому двухъядерные или четырехъядерные процессоры уже стали фактическим стандартом в отрасли.
Далее приводятся примерные рекомендации по выбору процессора в зависимости от задач, которые вам предстоит решать на настольном компьютере[2]. Расшифровка обозначений: Celeron 430 LGA775 1.8GHz/512Kb/800MHz означает процессор Intel Celeron модели 430; сокет (разъем) – LGA775; тактовая частота – 1,8 гигагерц; объём кэша второго уровня (L2) – 512 килобайт; частота системной шины процессора – 800 мегагерц. Отметим, что AMD и Intel считают частоту системной шины немного по-разному, оттого у них сильно различающиеся цифры (некоторые подробности см. в разд. 1.6 «Память»). Если подробности о кэше и системной шине не приводятся, это значит, что их разновидностей для данного типа процессоров немного, и они не имеют большого значения.