⇣ Содержание
Опрос
|
реклама
Самое интересное в новостях
SMP на домашнем компьютере
"Because two is always better than one" Micah Schmidt Чем быстрее процессор, тем лучше... Долгое время это утверждение являлось аксиомой для миллионов пользователей во всем мире. И вот регулярно, каждые полгода-год, в зависимости от финансовых возможностей, эти миллионы дружными рядами шли в магазины, выгребая последние центы и копейки, короче, "у.е." лишь бы получить несколько десятков дополнительных мегагерц. Также регулярно мы жаловались друг другу на недостаточную производительность домашних систем и на необходимость будущего апгрейда, ибо в следующем месяце ожидается новый "супер-пупер турбо-гипер 986 процессор". Мы пытались решать эту проблему разгоном процессоров, что продлевало срок их службы, но это решение было неполным. Редкий процессор выживал в системе больше года. В то же время, уже несколько десятилетий существует способ повышения производительности отличный от тупого наращивания мегагерц - это многопроцессорность или SMP ака Symmetrical MultiProcessing (сразу оговоримся, что в статье не будут затронуты ни AMP ака Asymmetrical MultiProcessing, ни Attached Processors, ни SWAR ака SIMD With A Register, потому как круг их применения в домашних условиях довольно узок. SMP, в этом смысле, предоставляет гораздо больше возможностей, поэтому в дальнейшем синонимом SMP будет слово "многопроцессорность"). Формально многопроцессорность заключается в том, что процессоры, объединенные
общей локальной шиной, работают с общей оперативной памятью и другимим
ресурсами компьютера параллельно и независимо друг от друга. Поддержкой
SMP должна обладать и операционная система, не лишней будет также поддержка
со стороны приложений. Именно отсутствие поддержки SMP со стороны "домашней
операционной системы", которой de facto являлась Windows 9x и было одной
из основных причин отсутствия SMP машин у нас на столах, вторая причина
- дороговизна SMP-систем, но при ближайшем рассмотрении ее значение оказывается
в некотором смысле преувеличенным.
1. SMP в железеС середины 40-х годов XX века развитие суперкомпьютеров и мэйнфреймов напоминало недавнюю ситуацию с современными PC. Эволюция в основном связывалась с совершенствованием элементной базы. Сначала это были электровакуумные лампы, "процессоры" на их основе обладали быстродействием 10000-50000 операций в секунду. Потом их сменили полупроводники, и быстродействие достигло величин порядка 10^5-10^6 операций в секунду. Следующими были интегральные схемы, чье быстродействие превышало миллион операций в секунду. Но с каждым днем появлялось все больше и больше задач, которые требовали вычислительных мощностей недоступных на тот момент. Таким образом к концу 60-х темпы развития элементной базы перестали успевать за ростом потребностей в вычислительных мощностях, так как за 25 лет развития суперкомпьютеры увеличили свою производительность только в 100 раз. Пришлось искать другой путь, и решение не заставило себя долго ждать. Идея была простой и очевидной - распараллелить вычисления и использовать в вычислениях несколько процессоров или машин. Действительно, то, что выполняет один процессор за два такта, два процессора выполнят за один. Едва возникнув, эта технология разделилась на два ярко выраженных направления. Во-первых, объединение нескольких машин в единую систему, а во-вторых, объединение нескольких процессоров в пределах одной машины. Но на практике многомашинные системы столкнулись с рядом проблем, главной из которых было несовершенство технологии синхронизации запущенных процессов на машинах. Эти системы продолжали использоваться и используются до сих пор в узкоспециализированных задачах, т.к. позволяют наращивать мощь практически без ограничений и с меньшими затратами, правда, как правило, рейтинги производительности венчают многопроцессорные машины. Суперкомпьютеры продолжали развиваться дальше, а тем временем наступила эра РС. Официально родителем РС является IBM, наладившая массовый выпуск этих устройств в 1981 году. Так как РС изначально рассматривался как компьютер для бизнеса, т.е. для работы, то применение навороченных технологий типа многопроцессорности, а с ней и параллельных вычислений (RISC, сопроцессор, конвейер, несколько исполнительных устройств ака суперскалярность, кэш также можно отнести к технологии параллельных вычислений) в машине для массового рынка оказалось не целесообразно. Примером применения "крутых" технологий может послужить Apple Lisa - первая машина с графическим интерфейсом, появившаяся в 1982 году, которая, однако, не получила признания на рынке и позже трансформировавшаяся в Apple Macintosh. Отсюда можно сделать вывод, что должны были появиться новые области применения РС, чтобы заставить производителей железа и программного обеспечения использовать новые технологии в своих творениях, потому как со своей первоначальной ролью "навороченного" калькулятора IBM PC справлялся без проблем. С появлением локальных сетей и новых областей применений РС, жадных до производительности, вроде компьютерной анимации, цифровой обработки звука и, конечно, компьтерных игр, а также переносом научных и инженерных приложений на РС требования к железу росли с каждым днем, тем самым провоцируя производителей микропроцессоров внедрять технологии дотоле остававшиеся невостребованными. Так случилось с сопроцессором, следующим стал кэш, потом конвейер и суперскалярность, и наконец, элементы RISC-архитектуры и многопроцессорности в большей или меньшей степени нашли применение во всех современных процессорах, начиная с Pentium и K5. На сегодняшний день технология IA-32 (Intel Architecture, 32 bit) позволяет распараллелить вычисления на максимальном для себя уровне, сохраняя совместимость со всеми ранее выпущенными программами и приложениями. Следующей будет IA-64, которая пойдет еще дальше, обеспечивая, благодаря VLIW (Very Long Instruction Word) распараллеливание кода даже не приспособленного к параллельной обработке, т.е. фактически распараллеливание будет происходить чуть ли не насильно, просто потому что процессору типа Itanium легче такой код обрабатывать. До сих пор производительность процессоров повышалась в соответствии с законом Мура, но уже заметны тенденции, которые позволяют усомниться в его незыблемости. Кремниевая технология имеет частотный предел, по разным оценкам составляющий от 1 до 1,5 Ghz. Некоторые скажут, что арсенид галлия и так называемые "трехмерные" чипы (это когда транзисторы располагаются не на плоскости как теперь, а равномерно распределены в пространстве) позволяют создавать более высокочастотные устройства, вплоть до нескольких десятков гигагерц, однако, подобные технологии еще далеки от той стадии, когда их применение станет экономически оправдано. А к пределу возможностей кремниевой пластины мы подошли уже сегодня. К тому же память, системная шина и жесткие диски не удваивают свое быстродействие каждые 18 месяцев, поэтому для наращивания производительности актуальной становится SMP, как единственный пункт параллельных вычислений, который оказался не реализован в наших домашних системах. Поддержка SMP варьируется в зависимости от производителя и модели процессора, причем не имеют значения степпинг и размер кэша, главное, чтобы процессоры работали на одинаковой шине. На данный момент SMP поддерживают такие процессоры, как Pentium P54C, Pentium Pro, Pentium II, Pentium III, их производные типа Celeron и Xeon, а также Athlon. Частота FSB, а с ней и частота процессора, в SMP-системе теряет свое обычное значение фактора, определяющего производительность - в мире параллельных вычислений FSB всего лишь определяет скорость работы с периферией; здесь часто выигрывает "крутая" архитектура, а не "чистая" скорость. Теперь чипсеты. Все интеловские чипсеты поддерживают SMP кроме 430TX, 430VX, 440EX, 440ZX и i810, со стороны конкурентов - только AMD’шный Irongate. Все их фичи всем давно известны, рассмотрим только те, которые напрямую касаются SMP. У Intel поддержка SMP реализована через шину GTL+, а у AMD - через DEC’овскую EV6. В GTL+ процессоры рассматриваются локальной шиной просто как еще одни busmaster-устройства, со всеми вытекающими отсюда минусами. Плюс этой шины - в ее простой реализации и, главное, дешевизне матерей на основе чипсетов с ее поддержкой как в однопроцессорном варианте, так и в SMP варианте. EV6 реализует соединение каждого процессора с чипсетом типа точка-точка на частоте FSB, что никак не сказывается на производительности однопроцессорных матерей, однако, дает огромный прирост в SMP-конфигурациях. Считайте сами: в то время как GTL+ позволяет работать с шиной только одному процессору, которые затем меняются поочереди, EV6 поддерживает одновременную работу чипсета и памяти со всеми процессорами в системе. Однако, практическая реализация SMP-матерей на основе EV6 стоит просто немеряно дорого; авторы предполагают, что разница в цене между многопроцессорной GTL+-матерью и EV6-матерью может исчисляться разами.
⇣ Содержание
Если Вы заметили ошибку — выделите ее мышью и нажмите CTRL+ENTER.
|