Выбор аппаратной платформы…. Инструменты для разработки и тестирования при неуправляемом развертывании

Предварительная подготовка

- Everyone please observe the fasten seat belt and no smoking signs have been turned on. Sit back and enjoy your ride.

Итак, по порядку.
Тестирование осуществляется на всех стадиях жизни аппаратуры. Тестирование бывает первоначальное (bringup), компонентное, функциональное, нагрузочное, производственное, и даже тестирование на заказчиках.

Еще на стадии разработки аппаратуры инженер думает о том, как он будет оживлять свое детище. Платы обсыпаются контрольными точками, отладочными коннекторами, перемычками, посадочными местами для запасных компонентов и прочим подобным. Совокупность возможностей для тестирования, заложенных в аппаратуру, называется DFT (Design for Testability). Плата, выпущенная в DFT фазе, может содержать в два раза больше компонентов, чем плата, вышедшая в тираж. Естественно, следуя принципу «работает – не трогай», потом ее никто не переделывает, и конечный потребитель недоуменно рассматривает пустующие посадочные места на материнской плате из магазина, придумывая различные конспирологические теории по поводу их предназначения.

Итак, забрали с фабрики наш борд – что делать дальше? Ну конечно же – воткнуть в розетку и выпустить из него весь белый дым.


- Everybody falls the first time.

Фотка из интернета, у нас жжёных плат не нашлось, но каюсь – иногда так и делается. На моей памяти есть давняя история, когда любопытный системный архитектор сидел и подбирал наугад, в какие разъёмы нужно воткнуть фазу, нейтраль и землю (ну вот не было у него времени заглянуть в схему), а рядом сидел разработчик и ловил бледного.

Но обычно всё происходит по-другому. Первая фаза тестирования – bringup (в народе «оживляш»).

Оживление Рождение

- Wake up, Neo...

Для bringup обычно изготавливается 3-5 образцов (в расчете на то, что как минимум два будут уничтожены в бреду дебага). Если в составе устройства есть дорогие чипы - на один из образцов они не устанавливаются. Фаб может предложить вам сэкономить на золоте - НИ В КОЕМ СЛУЧАЕ НЕ СОГЛАШАЙТЕСЬ (ну просто паять придется много и часто).

Плата без чипа - это первый кандидат на убой. На ней проверяются последовательность включения питания, сбросы, номиналы напряжений и прочее подобное. Потом такая плата является донором органов и/или полигоном для проверки всяческих гипотез. Также перед тем, как что-то включать, нужно обязательно:

  • прозвонить землю-питание, там частенько есть КЗ;
  • визуально осмотреть плату – там запросто бывает перепутана полярность конденсаторов, чипы стоят вверх ногами, присутствует стружка, с лёгкостью можно найти пассивные компоненты, которые оторвали;
  • отдельно изучить – а не поставили ли вам на плату компоненты, которые вы просили не ставить (лайфхак: не делайте черную маску на первых сэмплах – на ней не видно установлены или нет чип-резисторы).
Наигрались с первой жертвой – идем пускать дым из боевой платы. При этом необходимо запастись пилотом с кнопкой отрубания питания и тепловизором. Пилот надо поставить под ногу, на случай если по рукам будет бить 220 В (ну или просто руки будут заняты), а в тепловизор можно увидеть КЗ.

Но вообще при самом первом включении обычно можно не бояться - оно скорее всего не включится, так как вы наверняка забыли перепаять компоненты, у которых в дизайне перепутаны ноги:

И еще припаять немножко проводов:

Термоклей - наше все, лучший друг разработчика, почти как скотч в обычной жизни.
Сразу после Дремеля:

И молотка, которым приходится забивать бонки в плату, - не всегда выходит аккуратно.

Иногда приходится делать пациенту рентген или томографию. Выглядит это так:


Отсканировать плёнку, оказывается, не очень просто. Сняли телефоном на просвет напротив окна.

Конкретно на этом снимке не видно ничего - не вглядывайтесь. Но вообще на рентгене можно увидеть непропай, трещины и прочее подобное.

Отдельно стоит сказать про bringup материнских плат, потому что делается он по-другому. DFT сэмплов матерей обычно заказывается много – порядка 20 штук. Стоит это дорого, поэтому тут своя стратегия.

Берутся разработчики и отправляются на фабрику. Собирается порядка 5 плат и конвейер останавливается. Далее у разработчиков есть порядка 30 минут, чтобы плату включить (для x86-систем критерий успеха - загрузить BIOS). Если всем повезло - собираются остальные образцы. Если нет - производство отменяется, а разработчики едут домой думать. Деньги затраченные на PCB - потеряны, зато компоненты ждут на складе следующей попытки.

Хорошо - мы запустили нашу плату, и даже запустили другие, которые должны работать вместе с ней. Что дальше? Собираем стенд.
И тут вы, наверное, ожидаете увидеть такое?

Это все показуха для замминистров. Настоящий стенд должен быть собран из палок и желудей, и выглядит так:


- I didn"t say it would be easy, Neo. I just said it would be the truth.
(стакан для противовеса, фломастер - чтоб радиатор внатяг сидел - оно там проводом примотано)

В лабораторию набивается вот такая орда:

И все начинают наперегонки зашивать свои прошивки, программки, и тыкать везде осциллографом.
Иногда в процессе то и дело раздается вежливая просьба «Дорогой коллега, пожалуйста, уберите паяльник от моей руки - уж очень горячо» или «Будьте так добры - больше не включайте источник питания, когда я привинчиваю плату к шасси».

В нашем конкретном случае основная цель проверки совместной работы нескольких устройств - узнать, работает ли PCI Express, соответствует ли он стандарту. Просто без всего остального в принципе можно жить. Обычно функционал, закладываемый в железку, избыточен. Тонны GPIO выводов, I2C/SPI шин, термодатчиков, ледов и прочего, как правило, остаются невостребованными, так как их отладку откладывают на последний момент, который никогда не наступает.

Естественно, у нас нет на каждый случай жизни измерительной аппаратуры за несколько миллионов рублей - это для слабаков. Нам на помощь спешит тестовое ПО от производителей компонентов. Практически все современные чипы с высокоскоростными интерфейсами имеют внутри цифровой осциллограф. К нему полагается специализированное ПО, позволяющее считать его показания. Запускаем и смотрим глазковые диаграммы. Видим такое:

Иногда видим опасный прищур:

А иногда ловим кальмаров:

Кальмары - самые опасные. Это нелинейные искажения, и встроенные эквалайзеры с таким бороться особо не умеют. Кальмары означают, что где-то в канале связи есть что-то очень плохое - слишком длинное переходное отверстие, существенный перепад импеданса, попадание какой-то неравномерности в 1/4 или 1/2 длины волны каких-то гармоник в полезной полосе и прочее подобное.

Кто-то, возможно, заметит, что кальмар немного похож на то, что делает с принятым сигналом DFE в эквалайзере приемника PCIe. Но в данном случае это таки кальмар, а не результат работы DFE (просто результат работы DFE используемое нами ПО отображать не умеет).

Отдельно надо сказать про тестовый софт, который тоже бывает крайне коварным. Например для снимания глазковых диаграмм мы используем две версии одной и той же программы - одна версия рисует картинки, но не пишет значения раскрыва глаза, вторая - наоборот.

Ну и да - если вы планируете снимать глаза по интерфейсу I2C - забудьте, это будет очень очень очень медленно. Только in-band. Проблема в том, что для съема in-band у вашего устройства должен быть рабочий PCIe линк с компьютером, где работает тестовое ПО, что весьма проблематично, когда ваша железка не устанавливается в стандартный PCIe слот. И что самое забавное - у вас уже должен быть хоть как-то работающий линк на том канале, который вы отлаживаете, причем именно в том режиме (gen2/3) в котором вам нужно (ибо в разных режимах разные глаза и по разному работают эквалайзеры). Нет ножек, нет мультиков линка, нет глаз - вот как хотите, так и выкручивайтесь.

Про то, как выкручиваться с PCIe - я ранее написал отдельную .

Вообще, при разработке сервера, конечно, очень важна поддержка со стороны производителей используемых компонентов, поскольку сегодня сложность даже относительно простых чипов такова, что без использования встроенных в них тестовых вещей полноценно проверить и отладить систему вряд ли получится. Тактовые генераторы, регуляторы напряжений, сетевые контроллеры, коммутаторы PCI Express, редрайверы – все это имеет встроенные средства для настройки, диагностики, и нуждается в определенном наборе программ и кабелей для подключения для полноценной настройки и тестирования, без использования которых разработка становится просто невозможной.

В процессе проведения проверок иногда выясняется, что где-то что-то идет не так. И тогда начинается увлекательный процесс локализации ошибки, чтобы ее можно было исправить в следующей ревизии. И хорошо если это «не так» стабильно повторяется – тогда выяснить, что именно является причиной ошибки, как правило, не составляет труда. Но иногда все гораздо хуже. Например, на некоторых экземплярах плат при длительном прогоне тестов возникают одиночные некорректируемые ошибки на шине (которых быть не должно совсем). И вот здесь зачастую уже приходится применять метод «пристального взгляда» - то есть просто сидеть, гипотетически глядя на схему предполагать, что именно может быть причиной, пробовать эту гипотетическую причину устранить в схеме, и тестами уже проверить – угадали мы или нет.

Мы с подобным сталкивались несколько лет назад, когда тесты NVIDIA (да, многие производители предоставляют специфические наборы тестов, которые позволяют проверить вещи, недоступные программным путем при использовании стандартных утилит) давали редкие одиночные ошибки при длительных (сутки и более) прогонах на некоторых экземплярах плат. Тогда все дело оказалось в неудачной трассировке референсного клока (100 MHz) - хотя прежде чем мы к этому пришли, проверено было много всего, начиная от качества питания и заканчивая глазковыми диаграммами по всем линиям.

И кстати, это хорошо. Самый большой кошмар разработчика - когда все работает сразу. Это значит только одно - где-то закопана мина, которая сработает после отгрузки 100500 единиц оборудования заказчику. Дело в том, что в процессе поиска причины какой-то глобальной проблемы осуществляется проверка нескольких гипотез и как правило выявляется множество мелких неисправностей, никак с возникшей проблемой не связанных. Нет большой проблемы - не найдёте маленьких. Их за вас найдут ваши заказчики.

Проверка по списку

- All I do is what he tells me to do.

После завершения компонентных тестов начинается функциональное тестирование – проверка работоспособности комплекса в целом и корректной работы всех заложенных функций. Обычно этим занимается QA. Простор для творчества здесь, конечно, весьма обширный, но в целом основной упор делается на корректную работу системы при проигрывании стандартных сценариев использования. Здесь обнаруженные ошибки могут уже иметь как аппаратную, так и программную природу, поэтому в первую очередь важно выяснить, что именно вызвало ошибку. Зачастую первые предположения могут быть обманчивыми, то есть явно аппаратная на первый взгляд проблема может быть вызвана некорректной работой встроенного ПО. Значительную часть в функциональном тестировании занимает проверка того, как система отрабатывает разнообразные ошибки, которые могут возникать в процессе работы. Современные отладочные средства позволяют осуществлять искусственную инжекцию ошибок в стандартные интерфейсы процессоров, потому что на уровне железа многие из них создать специально достаточно проблематично (ну не отрывать же на лету чипы памяти или замыкать линии шины PCI Express).

А… я же не сказал, что функциональное тестирование не означает собранную готовую к бою систему. Тут тоже бывает не все гладко. В какой-то момент оказалось что у нас нет в запасе OcuLink кабелей нужной длины, и у сервера появились кишки.

И почему-то вот в такой вот конфигурации при нагрузочном тесте все начало перегреваться. До сих гадаем - почему. Кабели грелись, наверное.

А два арбуза в каждой руке унести сможешь?

- You"re faster than this. Don"t think you are, know you are…

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

Кроме того, здесь помогают отладочные средства от производителя аппаратной платформы (например, Hardware Tests Executive от IBM). Таким образом можно загнать процессор в совсем предельные режимы, принципиально недостижимые при работе реальных приложений. Основные проблемы, выявляемые при нагрузочном тестировании – перегрев, нестабильность питания или перегрузка по максимальному току, ошибки при активной работе с интерфейсами ввода-вывода.

Также на помощь приходят бенчмарки. Потому что когда реальные значение бенчмарков сильно отличаются от прогнозируемых - значит что-то пошло не так. Хороший повод пойти потыкать плату палочкой.

На стадии тестирования мы используем в основном микробенчмарки:
Для процессоров это обычно однопоточные нагрузки, типа spec2006 (сейчас уже speccpu2017 ), parsec , но вообще их огромное количество от сборки ядра linux и компрессии (lzma , gzip ), до перемножения матриц и вычисления быстрого преобразования Фурье (fftw ).
Для памяти много лет ничего не меняется: STREAM , RAMspeed SMP , lmbench .

Для дисков: fio , iozone .

При успешном прохождении всех функциональных и нагрузочных тестов остаются еще ряд вещей, требующих проверки – стабильность работы во всем диапазоне температур, стойкость к вибрации, проверка совместимости с определенным набором стандартных компонентов (память, диски, PCI Express контроллеры).

P.S.: После того как мы на функциональных тестах первой ревизии сервера все проверили и обрадовались, у нас в лаборатории внезапно обвалилось три сервера. Мы начали проверять питание и на линии 1.2В (питание шины PCIe процессоров) увидели вот такое:

Акцентирую ваше внимание - одна клетка 500mV. Номинал 1.2 В. Резистором ошиблись в цепи компенсации одного из VRM. Вот с таким вот питанием были успешно пройдены все нагрузочные тесты, бенчмарки, прожарки и прочее подобное, и дизайн радостно поехал на вторую ревизию.
Так что, когда на Вашем уютном домашнем компьютере именитого бренда внезапно появляется экран смерти - не стоит думать, что это непременно «глючит винда».

Технологии виртуализации сейчас применяются во многих сферах ИТ, как в производственной среде, так и энтузиастами, и домашними пользователями для самых разных задач. Несколько одновременно запущенных виртуальных систем на одной физической машине существенно повышают гибкость ИТ-инфраструктуры и увеличивают эффективность использования аппаратных ресурсов. Тестирование программного обеспечения - один из самых распространенных вариантов использования для платформ виртуализации. Неудивительно, ведь виртуальные машины обладают множеством полезных свойств, благодаря которым значительно сокращается время разработки и тестирования и повышается эффективность этих процессов.

В классической модели разработки программного обеспечения программистам и инженерам по качеству ПО большую часть времени приходилось испытывать программный продукт на одной платформе на протяжении практически всего времени разработки, и лишь в конце проводить его тестирование в различных ОС и пользовательских средах (так называемое тестирование конфигураций, Configurations Testing). К тому же, в распоряжении сотрудников отделов тестирования и разработчиков находилось не так много физических компьютеров, а на одной машине, в одной операционной системе, нельзя, например, поставить одновременно несколько версий одного программного продукта, с которым должна взаимодействовать разрабатываемая программа. Вследствие этого, в программном обеспечении, особенно небольших команд разработчиков, часто встречались ошибки, связанные с особенностями пользовательских конфигураций, поскольку времени и ресурсов на полноценное конфигурационное тестирование не хватало. Кроме того, инженерам по качеству приходилось тратить много времени на развертывание комплекса программных продуктов на тестовых стендах и настройку их работы в сетевой инфраструктуре.

Безусловно, одной из самых серьезных проблем при разработке ПО является тот факт, что на ранних этапах разработки, сборки программного продукта в процессе своей работы могут причинить непоправимый вред системе (например, различные драйвера устройств). Поэтому приходится планировать восстановление операционных систем и их настроек после сбоев из резервных копий и тратить значительное время на их восстановление.

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

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

В заключение перечисления списка проблем, возникающих в процессе разработки и тестирования, нужно привести еще одну. Зачастую складывается такая ситуация, когда требуется проверка сборки программного продукта «на дым» (так называемое дымовое тестирование, Smoke Testing), что означает быстрый прогон наиболее важных тестов. Но что если мы разрабатываем приложение, для которого требуются различные версии Internet Explorer? В этом случае будет тратиться много времени на загрузку подходящей системы, где установлена требуемая версия.

Суммируя описанные ситуации, обобщим проблемы, часто встречающиеся в процессе разработки и тестирования программных продуктов:

  • необходимость испытаний программного обеспечения в количестве пользовательских конфигураций большем, чем в распоряжении для тестирования физических компьютеров
  • большие временные затраты на развертывание и настройку тестовых стендов, содержащих множество различных компонентов, между которыми обеспечивается сетевое взаимодействие
  • большие временные затраты на создание резервных копий систем и их конфигураций, а также восстановление после сбоя вследствие нестабильной работы сборок программного продукта
  • невозможность воспроизведения дефекта, найденного тестировщиком, на машине разработчика и потеря времени на его поиск, исправление
  • необходимость в испытаниях программы в условиях аппаратной среды, которой нет в распоряжении команды тестирования
  • необходимость тестирования программного продукта в условиях, требующих быстрого переключения между пользовательскими конфигурациями

Если подсчитать, сколько времени и ресурсов тратится на решение этих проблем, получится весьма и весьма внушительная цифра, которая, будучи выраженной в денежном эквиваленте, составляет довольно большую часть бюджета проекта.

Технологии виртуализации, грамотно примененные в процессе разработки и тестирования, могут существенно снизить трудозатраты и значительно повысить эффективность процесса, что положительно скажется на качестве выпущенного программного продукта. Так конкретно виртуализация позволяет это сделать:

  • тестировщики в процессе работы с виртуальными машинами могут создавать неограниченное количество пользовательских конфигураций на своей физической машине, запуская, по необходимости, наиболее подходящую в данный момент
  • созданные однажды многомашинные конфигурации могут быть настроены с помощью инструментов платформ виртуализации и просто перенесены на другое оборудование, при этом их повторная настройка не требуется
  • резервная копия виртуальной машины может быть создана путем копирования папки или создания мгновенного снимка состояния («снапшота»)
  • после нахождения ошибки тестировщиком, виртуальная машина с повторяющимся дефектом может быть передана разработчику, при этом высвобождаются ресурсы на дальнейшее тестирование
  • необходимые условия для тестирования могут быть быстро созданы за счет гибкой настройки параметров аппаратной среды виртуальной машины (объем оперативной памяти, число виртуальных процессоров, ограничение ресурсов)
  • возможность быстрого отката к сохраненному состоянию виртуальной машины с необходимой конфигурацией или переключение между несколькими одновременно работающими гостевыми системами уменьшает время на тестирование

Все перечисленные решения нужно рассматривать в ракурсе того факта, что виртуальная машина с установленным в ней программным обеспечением представляет собой весьма гибкий объект, который может быть как быстро развернут на клиентских машинах из централизованного хранилища шаблонов пользовательских конфигураций, так и максимально гибко настроен в отношении параметров гостевой системы и ее окружения. Легкая переносимость на другое оборудование и независимость от аппаратной платформы – ключевое достоинство виртуальных машин.

Инструменты виртуальных машин для тестирования и разработки

Внедряя виртуальную инфраструктуру для целей разработки и тестирования ПО, необходимо, прежде всего, выбрать наиболее подходящую, надежную и эффективную платформу виртуализации, удовлетворяющую всем требованиям к процессу разработки в организации. Есть два наиболее распространенных пути использования виртуальных машин для тестирования программных продуктов:

  • Неуправляемое развертывание виртуальных машин на клиентских машинах или серверах тестирования, при котором либо сами тестировщики создают необходимые им конфигурации, либо копируют шаблоны виртуальных систем на свои компьютеры из центральной библиотеки виртуальных шаблонов (файлового сервера). Преимущество данного подхода – дешевизна решения, можно воспользоваться одной из многих бесплатных систем виртуализации (VMware Server, Virtual PC, VirtualBox и другие). Основные недостатки – стихийное развертывание виртуальных машин порождает конфликты в сетевой инфраструктуре, отсутствие контроля над использованием лицензий на операционные системы и прикладное ПО, невозможность интеграции в существующую ИТ-среду организации.
  • Управляемое развертывание виртуальных систем из централизованных библиотек виртуальных шаблонов, с полным контролем над использованием виртуальных машин в рамках ИТ-инфраструктуры компании. К достоинствам данного подхода надо отнести возможность разрешения конфликтов между виртуальными и физическими системами в сети, контроль использования лицензий, возможность мониторинга использования виртуальной инфраструктуры и создания общего пространства между различными участниками процесса разработки и тестирования, интеграция в реальную ИТ-инфраструктуру предприятия. Основной недостаток данного подхода – высокая стоимость решений. Примеры продуктов, обеспечивающих управляемое развертывание виртуальных машин: VMware LabManager, VMLogix LabManager, Microsoft System Center Virtual Machine Manager.

Платформы виртуализации, коих на рынке сейчас большое количество, развиваются стремительными темпами и предоставляют пользователям все больший набор инструментов для повышения эффективности процесса разработки и тестирования. Для решения каждой из перечисленных проблем платформы виртуализации различных вендоров имеют свои средства, позволяющие пользователям эффективно тестировать программные продукты в виртуальных машинах.

  1. Создание множества пользовательских конфигураций.

    При наличии большого объема свободного дискового пространства на машине тестировщика с помощью платформы виртуализации можно создать неограниченное число виртуальных систем, каждая из которых может быть загружена по требованию, без остановки рабочей деятельности работника в хостовой системе. Виртуальные машины могут также применяться на специализированных серверах тестирования на основе платформ VMware ESX Server, XenEnterprise или Virtual Iron. При этом могут быть назначены определенные права пользователям виртуальных систем, а также ограничены физические ресурсы сервера, которые могут быть использованы конкретным пользователем. На файловом сервере с виртуальными шаблонами могут храниться предустановленные виртуальные машины, которые развертываются на сервера тестирования или рабочие станции. В этом случае нужно учитывать особенности использования виртуальных машин в соответствии с лицензией. В большинстве случаев каждая виртуальная машина требует отдельной лицензии, однако есть и исключения: например, лицензия Windows Server 2003 Datacenter Edition позволяет запускать неограниченное число виртуальных экземпляров ОС.

    Если настроенное тестовое окружение уже развернуто на физической машине, его можно мигрировать на виртуальную с помощью продуктов вендоров платформ виртуализации и сторонних разработчиков. К таким решениям относятся продукты PlateSpin PowerConvert, VMware Converter, Microsoft Migration Toolkit.

  2. Создание многомашинных конфигураций на одном физическом сервере.

    Платформы виртуализации, ориентированные на тестирование ПО (VMware Workstation, Virtual PC, VirtualBox, Xen), позволяют создавать целые виртуальные инфраструктуры с различными типами сетевого взаимодействия в пределах одного физического хоста. Например, можно создать несколько «блоков» из виртуальных серверов (сервер баз данных, сервер приложений, окружение клиента), настроить сетевые адаптеры виртуальных машин (у одной машины их может быть несколько, в VMware Workstation - до десяти), и запустить тестируемую связку серверов. При этом платформы виртуализации позволяют подключать сетевые адаптеры виртуальных машин к различным сегментам виртуальной сети.

    После того, как тестовая виртуальная инфраструктура будет создана, можно настроить параметры каналов связи между виртуальными машинами.

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

  3. Резервное копирование виртуальных машин при тестировании.

    Если тестировщики используют виртуальные машины на своих рабочих станциях, они могут создавать их резервные копии путем копирования папки с файлами виртуальной машины. В случае краха системы, сохраненную копию не надо восстанавливать - она уже полностью готова к работе. К тому же многие платформы виртуализации позволяют создавать несколько снимков состояния виртуальной машины, откат к каждому из которых может быть произведен за несколько минут.

    Если тестирование производится на выделенных серверах тестирования, то для создания резервных копий виртуальных машин могут применяться специализированные решения вендоров платформ виртуализации, такие как vRanger Pro компании Vizioncore, VMware Consolidated Backup (VCB), или еще не выпущенное решение Microsoft Data Protection Manager для Virtual Server 2005 R2, которые позволяют создавать резервные копии виртуальных машин без их остановки.

  4. Демонстрация дефектов разработчикам.

    При нахождении дефекта тестировщик может просто сохранить состояние системы, в котором проявляется ошибка, в снапшоте и продолжить тестирование системы. При необходимости демонстрации дефекта, виртуальная машина может быть передана разработчику, который сможет работать с ней, не боясь повредить окружение тестировщика. Кроме того, на платформе VMware Workstation виртуальные машины могут действовать как VNC-серверы, без необходимости установки дополнительного ПО для удаленного доступа к рабочему столу.

  5. Гибкая настройка аппаратной среды.

    Зачастую при тестировании программного обеспечения требуется большая гибкость в отношении настройки аппаратных компонентов. Например, при стрессовом тестировании (Stress Testing) требуется проверка работы программного продукта в экстремальных или ограниченных условиях (нехватка дискового пространства, обрыв сетевого соединения). В этом случае, с помощью платформы виртуализации виртуальной машине можно добавить новые виртуальные устройства или ограничить выделяемые ей ресурсы.

    При этом если мы добавляем виртуальный диск в гостевой системе, можно создать его как динамически расширяемый, что позволяет экономить свободное место на диске, а также создать так называемые Undo-диски, изменения которых действуют только во время работы с виртуальной машиной и при завершении сеанса могут быть отменены, что очень удобно для тестирования.

    Что касается контроля ресурсов, многие платформы виртуализации позволяют ограничивать ресурсы виртуальной машины или пула ресурсов виртуальных машин, что позволяет моделировать реальные условия пользовательских окружений.

    Современные платформы виртуализации поддерживают стандарт USB 2.0, большое количество виртуальных сетевых адаптеров в виртуальной машине, эмуляцию SCSI-дисков, а также представление различного числа процессоров в гостевой системе посредством виртуального SMP (Symmetric Multi Processing).

  6. Работа с несколькими виртуальными системами одновременно.

    Эта возможность позволяет тестировщикам не только использовать экземпляры различных гостевых систем при тестировании, но и осуществлять простой обмен файлами как между хостом и гостевой ОС, так и между гостевыми ОС с помощью механизма Drag&Drop. При этом некоторые платформы виртуализации позволяют производить простой обмен файлами либо через общие папки хостовой системы (Shared Folders), либо «перетаскивать» файлы между гостевыми системами (VMware Workstation).

    Многие платформы виртуализации позволяют использовать общий с хостовой системой буфер обмена, что значительно упрощает, в частности, копирование сообщений об ошибках программ в систему багтрекинга.

Инструменты для разработки и тестирования при неуправляемом развертывании

Основой при управляемом развертывании виртуальных машин являются специализированные решения для создания и обслуживания тестовых виртуальных лабораторий (Virtual Labs), в пределах которых осуществляется контроль над использованием виртуальных систем различными группами пользователей, автоматизированное развертывание виртуальных машин на компьютеры участников проекта и создание общей рабочей среды. Эти решения довольно дорогостоящие (например, инфраструктура VMware LabManager обойдется не менее чем в $15 000), однако оправдывают себя в больших масштабах использования. Крупные компании, такие как Dell, очень широко используют виртуальные машины в пределах виртуальных лабораторий для испытаний программных продуктов. Такие системы используют сети хранения данных SAN, где в общей библиотеке виртуальных шаблонов располагаются шаблоны виртуальных машин, которые развертываются по требованию на свободных серверах тестирования на основе платформ виртуализации. Использование виртуальных лабораторий дает следующие преимущества:

  • Работа с многомашинными конфигурациями как с единым модулем, возможность публикации этих модулей
  • Снижение временных затрат на конфигурирование систем
  • Разграничение доступа к виртуальным машинам и демонстрация дефектов путем передачи ссылок на проблемную ситуацию, сохраненную в виде снимка состояния гостевой системы
  • Общая библиотека шаблонов с возможностью разрешения сетевых конфликтов при развертывании (идентификаторы безопасности SID, назначение уникальных MAC-адресов виртуальным сетевым интерфейсам)
  • Централизованное обслуживание и развертывание обновлений в тестовых окружениях
  • Мониторинг загрузки серверов тестирования

В данный момент наиболее популярными решениями для управляемого развертывания виртуальной тестовой инфраструктуры являются продукты VMware LabManager (для платформы ESX Server) и VMLogix LabManager (для платформ Microsoft, VMware и XenSource).

Тестовые лаборатории VMware LabManager

Компания VMware предлагает крупным компаниям использовать виртуальную тестовую инфраструктуру на основе решения (бывшая разработка поглощенной компании Akimbi), которое позволяет максимально быстро развертывать виртуальные машины на серверах тестирования и контролировать использование виртуальных систем, при этом процесс выглядит так, будто пользователь работает с физическим компьютером. Модель работы виртуальной лаборатории представлена далее:

Помимо всех перечисленных достоинств систем управления виртуальными лабораториями, VMware LabManager предоставляет интеграцию с популярными средствами тестирования и , имеет возможности для развертывания шаблонов в несколько кликов мыши, поддерживает протокол LDAP, легко интегрируется с другими решениями для виртуальной инфраструктуры VMware и имеет возможности для автоматизации операций посредством собственного API (Application Program Interface). Основной недостаток этого продукта - возможность обслуживания виртуальных серверов только на платформах VMware.

Тестовые лаборатории VMLogix LabManager

В отличие от решения компании VMware, продукт поддерживает платформы виртуализации различных вендоров. В качестве основы виртуальной тестовой лаборатории можно использовать платформы Microsoft (Virtual Server), Xen (XenEnterprise) и VMware (ESX Server и Server). Кроме того, LabManager компании VMLogix поддерживает обслуживание физических серверов организации. Архитектура решения VMLogix LabManager представлена ниже:

LabManager предоставляет пользователям портал самообслуживания, с помощью которого пользователи могут развертывать виртуальные машины из централизованной библиотеки шаблонов и ISO-образов операционных систем, а также имеет возможности по управлению лицензиями, настройки зон назначаемых IP-адресов и возможности аудита безопасности виртуальной тестовой инфраструктуры. Кроме того, VMLogix LabManager также имеет средства автоматизации операций посредством программного интерфейса API, возможности по развертыванию и обслуживанию многомашинных конфигураций и функции для демонстрации проблемных ситуаций путем предоставления общего доступа к снимкам состояния виртуальных машин.

Заключение

Модель организации процесса разработки и тестирования с помощью виртуальных машин позволяет существенно снизить затраты на развертывание тестовых пользовательских окружений и конфигурацию тестовых сред. По статистике, при тестировании программных продуктов на физических серверах и рабочих станциях на эти задачи уходит до 50 процентов времени команды тестирования. Виртуальные машины на платформах различных вендоров позволяют сократить это время в несколько раз, до 5% от общих затрат на тестирование. Повышенная гибкость виртуальных систем и их независимость от оборудования позволяют работать с ними, как с некими блоками, из которых строится виртуальная тестовая инфраструктура компании. Возможность предоставления общего доступа к найденным дефектам участникам команды разработки и пользователям продукта позволяет существенно ускорить поиск и исправление ошибок. Во многих компаниях уже стало стандартом де-факто тестирование с помощью виртуальных машин.

Однако процесс тестирования на виртуальных системах имеет некоторые ограничения: например, виртуальные системы не рекомендуется применять при тестировании производительности (Performance Testing), а также тестировании приложений, предъявляющих высокие требования к физическим ресурсам компьютера. Для других видов тестирования виртуальная тестовая инфраструктура является одним из лучших решений для повышения эффективности процесса разработки, а также упрощения взаимодействия между участниками команды.

  1. Аппаратные решения - это специальные платы, несущие на себе дополнительные процессор, оперативную память и видеопамять другой аппаратной платформы. Фактически они представляют собой отдельный компьютер, вставленный в существующий ПК. Его, как и обычный компьютер, можно оснастить любой операционной системой по выбору пользователя и соответствующим программным обеспечением. При этом можно легко переключаться между двумя операционными системами, обмениваться между ними файлами и выполнять другие операции, причем производительность обеих систем остается высокой и они не влияют друг на друга, так как практически не имеют разделяемых ресурсов, кроме мыши, клавиатуры и монитора. Основным недостатком таких плат является их высокая стоимость, хотя и несколько меньшая, чем отдельного ПК.
  2. Программные решения - это специально написанные программы-эмуляторы, позволяющие запустить программное обеспечение, разработанное для персональных компьютеров одного типа, на другом ПК. Существует несколько видов эмуляторов:
    • эмуляторы-исполнители позволяют запускать программы, написанные для других операционных систем;
    • эмуляторы аппаратного обеспечения воспроизводят настоящий персональный компьютер со всеми его аппаратными и программными особенностями. В этом случае пользователь получает абсолютный контроль над своим виртуальным ПК и может выполнять на нем практически все операции, что и с настоящим компьютером. Недостатком этих эмуляторов является некоторая медлительность;
    • эмуляторы операционных систем позволяют воспроизвести на ПК операционную систему, которая несовместима с данной аппаратной платформой. Примером такого эмулятора является эмулятор операционной системы Windows, который позволяет на компьютере Macintosh работать с операционной системой, написанной для IBM-совместимых ПК. Работают такие программы несколько быстрее, чем эмуляторы аппаратного обеспечения, но у них есть много ограничений. Например, пользователь не может сам выбрать операционную систему.

ВведениеПосле выяснения возможностей в 3DMAX современных видеокарт пришло время провести те же самые тесты для сравнения современных однопроцессорных аппаратных платформ.
В данный момент на массовом рынке присутствуют всего два семейства процессоров, которые можно считать “перспективными” – платформа Socket478 и Socket462 (SocketA). Я не буду рассматривать “устаревшие” платформы на базе процессоров под разъемы Socket370 и Socket423, так как покупать однопроцессорные системы на этих процессорах для работы в 3DMAX не имеет смысла.
Конечно же, уже приобретенные системы на базе как процессоров под разъем Socket370 на ядре Tualatin и кешем второго уровня объемом 512Kb, так и системы на базе старших процессоров под разъем Socket423 позволяют продуктивно работать в 3DMAX. Однако стоимость этих «устаревших» систем сегодня делает их приобретение невыгодным, так как системы на базе этих процессоров не имеют преимущества в производительности или даже уступают системам на процессорах семейств Socket478 и Socket462 при одинаковой цене. Это - следствие политики Intel по замещению “устаревших” линеек процессоров новыми, “перспективными”, что проявляется в более быстром обновления “перспективных” линеек процессоров и, соответственно, более быстром снижении цен на процессоры этих “перспективных” линеек.
Наиболее производительными чипсетами для процессоров Socket478 и Socket462, платы на которых сегодня доступны в широкой продаже, являются i850 и Apollo KT266A. Собирать платформы на платах с чипсетом i845D с поддержкой памяти PC2100 DDR SDRAM сегодня не имеет смысла, так как память PC800 RDRAM в данный момент стоит столько же, или даже дешевле, чем PC2100 DDR SDRAM, при этом обеспечивая заметно большую производительность.

Итак, в этом материале мы рассмотрим производительность системы на основе платы с чипсетом i850 (Abit TH7II) и процессорами Pentium4 – 2.2GHz, 2,0GHz с кешем второго уровня 512Kb (ядро Northwood) и процессорами Pentium4 – 2.0GHz, 1.7GHz с кешем второго уровня 256Kb (ядро Willamette). В первую очередь интерес представляет прирост производительности, который может дать увеличение вдвое кеша второго уровня, также мы увидим, насколько процессоры линейки Pentium4 мастшабируются, т.е. обеспечивает ли увеличение тактовой частоты сравнимый прироста производительности.
Для сравнения с этой системой я выбрал платформу, состоящую из платы на базе чипсета Apollo KT266А (Epox 8KHA+) и процессора AthlonXP 2000+ (реальная тактовая частота – 1667Mhz). Я взял только один процессор под Socket462 из-за того, что компания AMD сильно отстала от Intel в процессе наращивания тактовых частот своих процессоров, и тактовая частота этого «топового» процессора даже ниже тактовой частоты младшего процессора Pentium4, рассматриваемого в этом материале.

Описание аппаратных конфигураций

Для оценки скоростных показателей я воспользовался теми же самыми тестами, что и в прошлых обзорах. Напомню, что эти бенчмарки являются рекомендованными для тестирования в 3D Studio MAX самой компанией производителем программы.
Начиная с этой статьи я отказался от тестирования с включенным сглаживанием линий, так как все современные видеокарты выполняют сглаживание линий без потерь производительности.

Платформа №1:

Процессор – Pentium 4 2.2GHz (512Kb L2), Pentium 4 2.0А GHz (512Kb L2), Pentium 4 2.0GHz (256Kb L2), Pentium 4 1.7GHz (256Kb L2).
Материнская плата – Abit TH7II (i850)
Память – 1024Mb PC800 RDRAM



Платформа №2:

Процессор – AthlonXP 2000+ (1667Mhz)
Материнская плата – Epox 8KHA+ (Apollo KT266A)
Память – 1024Mb PC2100 SDRAM
Видеокарта – NVIDIA GeForce4 Ti4600 (Detonator версии 27.51)
Жесткий диск – 20Gb IBM DTLA 7200rpm


Программное обеспечение:

Windows 2000 SP2
3ds max 4.26 (OpenGL rendering), 1280x1024 32bit

Тестирования скоростных характеристик при работе в окнах проекции

1 . Первый бенчмарк является “стресс-тестом” – в четырех окнах проекции проигрывается анимация сцены. Однако, методы рендеринга (Rendering Method) разные. В двух верхних окнах сцена представлена в виде “Wireframe” (то есть в “проволочном” или “каркасном” режиме), в левом нижнем “Smooth + HighLights” + “Edged Faces” (в затененном режиме с выделенными гранями), в правом нижнем нижнем - “Smooth + HighLights”:

Эта сцена содержит весьма немного полигонов – всего 28 тысяч, однако из-за одновременного проигрывания анимации во всех четырех окнах, “общий” fps весьма мал.


Полигонов: 28868
Источников света: 1
Режим: Wireframe, Smooth+Highlights


При одновременном отображении анимации во всех четырех окнах проекции бОльшая часть нагрузки по визуализации сцены ложится на связку центральный процессор - память. Как мы видим, в этом бенчмарке процессор AMD «держится молодцом», подтверждая свой рейтинг. Прирост же от увеличения кеша второго уровня в процессорах Intel весьма мал и составляет примерно 5%

2 . Второй бенчмарк представляет собой сцену с семью базовыми геометрическими объектами, общей сложностью в десять тысяч полигонов.

Шесть объектов статичны, один медленно перемещается по сцене, “проходя сквозь” другие объекты. Этот бенчмарк проверяет корректность отображения “пересечения” объектов и скорость, с какой драйвер и “железо” видеокарты справятся с этим.


Полигонов: 9712
Источников света: 1
Режим: Smooth+Highlights


В отличие от предыдущего, этот бенчмарк, в данном случае, нагружает шину AGP и показывает скорость работы AGP порта материнской платы. В случае неправильной реализациии AGP значение fps падает в этом бенчмарке примерно до 80-100.
Таким образом, мы видим, что реализация AGP хороша у обеих платформ. Однако в этом бенчмарке увеличение кеша дает гораздо больший прирост, нежели в предыдущем – до 20%.

3 . Сцена третьего бенчмарка содержит шар, который очень медленно передвигается на фоне геометрии в 15000 полигонов.

Шар нигде не пересекает другие объекты. Так как шар передвигается очень медленно, то “правильный” драйвер будет вносить очень небольше изменения в каждый кадр. Другими словами, этот бенчмарк проверяет способность видеоплаты не перерисовывать в каждом кадре необновляемые объекты.


Полигонов: 15653
Источников света: 1
Режим: Smooth+Highlights


Этот бенчмарк аналогичен предыдущему, и результаты систем также аналогичны результатам, показанным в прошлом бенчмарке – AthlonXP 2000+ опять демонстрирует «честность» своего рейтинга, а удвоенный объем кеш памяти второго уровня у Pentium4 обеспечивает заметный прирост скорости.

4 . Этот бенчмарк показывает возможности видеокарты обрабатывать очень сложную геометрию Бенчмарк показывает производительность видеокарт в режиме Smooth+HighLights в сценах со сложной геометрией.


Полигонов: 200270
Источников света: 1
Режим: Smooth+Highlights


В этом геометрическом бенчмарке результат зависит от мощности блока FPU (так как необходимо обсчитывать сложную геометрию) и пропускной способности памяти (так как надо отрисовывать поверхности в режиме Smooth+HighLight). В первом Athlon имеет явной преимущество, однако, пропускная способность RDRAM намного больше, поэтому платформа Socket462 показывает результат, меньший результата системы на Pentium4 2.0GHz.

5 . Пятый бенчмарк тестирует возможности видеоплат по обработке исключительно сложной геометрии. На этот раз число полигонов почти удвоилось и составило почти 376 тысяч. На той же самой “поверхности” теперь стоят дома.

Этот бенчмарк способен “поставить на колени” любую видеокарту – средний fps не превышает трех кадров. Сам файл создавался, конечно же не при fps=3, дома создавались по отдельности в разных файлах и при “установке на грунт” неиспользуемая часть геометрии “отключалась” для повышения производительности.


Полигонов: 376875
Источников света: 1
Режим: Smooth+Highlights


В более тяжелом геометрическом бенчмарке положение аналогичное предыдущему, однако, с увеличением обрабатываемой геометрии влияние кеш памяти уменьшается, а влияние блока FPU растет.

6 . Бенчмарк, тестирующий скорость обработки множественных источников света. Так как большинство видеокарт не поддерживает более 8 источников, то этот тест и еще два последующих содержат 8 источников света разных типов. В этом тесте 8 источников света типа SpotLight, перемещаясь, освещают своебразный “астероид”:

Следует заметить, что отображение освещенности, созданной источниками типа Spotlight – намного более ресурсоемкий процесс, нежели отображение освещенности, созданной источниками света типа Omni и Directional.


Полигонов: 39600
Источников света: 8
Режим: Smooth+Highlights



7 . Тот же “астероид”, только теперь он освещается восемью источниками света типа Directional. Источники света типа Directional “медленнее” чем Omni, но “быстрее”, чем источники света типа Spotlight.


Полигонов: 39600
Источников света: 8
Режим: Smooth+Highlights



8 . Опять тот же самый “астероид” и опять восемь источников света. Теперь это источники типа Omni, самые “быстрые” источники света в 3DMAX.


Полигонов: 39600
Источников света: 8
Режим: Smooth+Highlights


В бенчмарках освещения AthlonXP 2000+ показывает результаты, сравнимые с результатами Pentium4 2.0GHz. Прирост производительности от увеличения кеш памяти не превышает 10%.

9 . Сцена с “легкой” геометрией и единственным источником света, всего в четыре с половиной тысячи полигонов, занимающая все окно проекции - это бенчмарк скорости растеризации в режиме Smoth+Highlights.

Во время перемещения камеры видеокарта должна проводить растеризацию больших и малых полигонов (относительно экранного размера)


Полигонов: 4684
Источников света: 1
Режим: Smooth+Highlights


В бенчмарке растеризации AthlonXP 2000+ показал низкий результат – меньший, чем у Pentium4 такой же тактовой частоты (1700Mhz). Это объясняется тем, что в этом бенчмарке все зависит от скорости передачи данный по шине процессор – память.

10 . Бенчмарк, показывающий скорость работы видеокарт с текстурами. Файл содержит множество текстур и минимум геометрии. Бенчмарк представляет из себя вращающийся шар, с 48-ю текстурами наложенными на его грани.

Минимум геометрии и максимум текстур этой сцены максимально показывают скорость обработки текстур видеокартой.


Полигонов: 224
Источников света: 1
Режим: Smooth+Highlights



11 . Полностью текстурированная комната, внутри которой перемещается камера. Этот бенчмарк наиболее приближен к реальным приложениям, так как содержит множество текстур, непростую геометрию и несколько источников света. Этот бенчмарк показывает возможности видеокарт при обработке непростых сцен в режиме Smooth+Highlight.


Полигонов: 12413
Источников света: 8
Режим: Smooth+Highlights



12 . Анимированные “волны” с наложенной текстурой показывают скорость обработки и модификации текстур.


Полигонов: 880
Источников света: 1
Режим: Smooth+Highlights


В трех текстурных бенчмарках системы должны обсчитывать вращающиеся текстуры (в первом текстурном бенчмарке), производить коррекцию неподвижных текстур при вращающейся камере (во втором) и деформировать текстуру (в третьем).
Нетрудно догадаться, что в первом текстурном бенчмарке в первую очередь важна пропускная способность памяти и объем кеш памяти – поэтому Athlon «не дотягивает» до Pentium4 2.2GHz.
Коррекция текстур выполняется силами FPU, поэтому во втором бенчмарке Athlon2000+ вплотную приближается к Pentium4 2.2GHz. Также, увеличение кеш памяти дает прирост в 15%.
Обсчет деформации текстур также выполняется FPU, и в этом бенчмарке AthlonXP 2000+ показывает лучший результат, чем Pentium4 2.2GHz.

13 . Бенчмарк меряет скорость работы в режиме Wireframe. 111 тысяч полигонов в режиме wireframe станут серьезным тестом любой современной видеокарты.


Полигонов: 111270
Источников света: 1
Режим: Wireframe


Этот текстурный бенчмарк содержит ту же сцену, что и бенчмарк№4, однако в отличие от четвертого бенчмарка, здесь эта сцена визуализируется в рeжиме Wireframe. Поэтому в этом бенчмарке все зависит от мощности блока FPU – Ahtlon показывает результат, сравнимый с результатами процессоров Pentium4, работающих на частоте 2GHz, причем увеличение объема кеш памяти в этом тесте не дает никого прироста скорости.

Все вышеописанные бенчмарки рекомендованы для тестирования видеокарт компанией производителем 3DMAX, однако, как мы видели, они тестируют возможности видеокарт по отдельным функциям, и среди них нет “общих” тестов. Поэтому я добавил еще один бенчмарк - это сцена с восемью источниками света, 61371 полигоном и множеством прозрачных плоскостей. Сложность этого файла вполне типична на сегодняшний день, весь файл вместе с текстурами занимает более 6Mb. Анимация построена для наиболее лучшего тестирования - камера перемещается по комнате, захватывая все объекты. Вот как выглядит первый кадр после окончательного рендеринга:

Я использовал эту сцену для тестирования видеокарт как в режимах Wireframe, так и Smoth+Highlights. Поэтому получилсь два бенчмарка:

14 . Сцена в режиме Wireframe


Полигонов: 61371
Источников света: 8
Режим: Wireframe


Так как сцена в этом бенчмарке отражена в режиме Wireframe, то, как и в предыдущем бенчмарке, объем кеш памяти не оказывает заметного влияния, а результат AthlonXP2000+, благодаря производительному блоку FPU, оказался равен результату Pentium4 2.2GHz, который работает на более высокой на 50% частоте и имеет вдвое больший объем кеш-памяти.

15 . Та же сцена в режиме Smooth+HighLight


Полигонов: 61371
Источников света: 8
Режим: Smooth+HighLight


Так как сцена отражена в режиме Smooth+HighLight, то результаты Athlon не так хороши, как в предыдущем бенчмарке. Однако, результаты AthlonXP 2000+ равны результатам Pentium4 2.0GHz, и Athlon опять подтверждает свой рейтинг.
512Kb кеш-память вместо 256Kb, в этом бенчмарке, как и в большинстве бенчмарков со «средней» геометрией и режимом Smooth+HighLight, позволяет получить примерно 15% прибавку к скорости.

Тестирование скоростных характеристик при финальном рендеринге

Я производил финальный рендеринг трех сцен из поставки 3ds max4 с одними и теми же параметрами, в одном разрешении 800х600, так как процентное соотношение результатов тестируемых платформ одно для всех разрешений от 640х480 до 1600х1200. Вот эти сцены:

Таблица результатов (время в секундах: чем меньше, тем лучше):


Скорость финального рендеринга в первую очередь зависит от мощности блока FPU, поэтому в финальном рендеринг AthlonXP2000+ «выступил» лишь немного хуже, чем Pentium4 2.2GHz.

Выводы

По совокупности результатов во всех бенчмарках, тестирующих работу в окнах проекции, AthlonXP 2000+ показывает результаты, сравнимые с результатами Pentium4 2.0A GHz. Причем при работе в режиме Wireframe, AthlonXP2000+, благодаря исключительно мощному блоку FPU, демонстрирует результат, близкий или равный результату Pentium4 2.2GHz (несмотря на то, что последний работает на +50% тактовой частоте и имеет вдвое больший кеш). Поэтому, если большую часть времени Вы проводите за работой в режиме Wireframe, то AthlonXP2000+ - лучший выбор. В тестах на скорость финального рендеринга, результаты AthlonXP 2000+ тоже примерно равны результатам Pentium4 2.2GHz. Таким образом, при стоимости процессора AthlonXP 2000+ в 250 у.е. (и при стоимости Pentium4 2.0AGHz и 2.2GHz в 350 и 550 у.е. соответственно) и более дешевых материнских платах под него, платформа Socket462 является на сегодня самой выгодной в категории «цена-производительность». Однако самый быстрый процессор для 3DMAX – это Pentium4 2.2GHz.
Разница в производительности процессоров Pentium4 с объемом кеша в 256Kb и 512Kb в подавляющем большинстве тестов, имитирующих работу в окнах проекции и обсчет финального рендеринга, не превышает 5%, поэтому менять процессор с 256Kb кешем на новые процессоры с 512Kb кешем нет смысла. С другой стороны, покупать процессоры с меньшим кешем сегодня тоже бессмысленно – цены на процессоры с 265Kb и 512Kb кешем почти равны.

Аппаратные платформы

Совместимость по аппаратной платформе означает, что компьютеры состоят из узлов и приборов, которые имеют одинаковую систему команд и кодировки данных, и потому могут быть взаимозаменимы. Хотя это и не обязательно – если устройства сильно отличаются по техническим характеристикам, то одно на другое заменить нельзя. А вот для разных аппаратных платформ все составные части полностью различны и несовместимы.

Для ПК сейчас остались только две конкурентоспособные аппаратные платформы: IBM PC и Apple Macintosh (рисунок 3).Причем IBMPC явно доминирует, свыше 90% компьютеров относится к этой платформе. Одно время Apple Macintosh были более приспособленными для работы с графикой и в издательском деле, но сейчас возможности обеих платформ здесь сравнялись. Тем не менее,


компьютеры Apple не исчезают, а по-прежнему находят применение.


Для высокопроизводительных серверов, или наоборот – примитивных чипов существуют и другие аппаратные платформы: SunMicrosystems, Compaq, HewlettPackard и др.

В аппаратной конфигурации компьютера важную роль играет принцип открытой архитектуры . Это построение компьютера по модульному принципу, когда все однотипные устройства компьютера имеют:

1. взаимно согласованные протоколы (стандарты) передачи данных;

2. стандартные геометрические размеры и унифицированные разъемы для подключения.

Открытая архитектура позволяет совершать Апгрейд (Upgrade), т.е. модернизацию компьютера путем простой замены одних устройств на другие, не затрагивая всего остального.

Вместо устаревшего устройства, ставят новое, с лучшими параметрами и подключают к тому же разъему. Операционная система регистрирует новое устройство и определяет для него наилучшие драйверы. Если их нет внутри ОС, то нужные драйверы берутся с внешнего носителя или из Интернета. После этого компьютер начинает работать с параметрами, в несколько раз лучшими. Простая и эффективная процедура.

Замена одних аппаратных устройств на другие, с лучшими характеристиками в определенной степени осуществляется в любых технических устройствах, но нигде не достигает таких масштабов, как в компьютерной технике. Например, трудно представить себе автомобиль, в котором новые части двигателя и трансмиссии ставятся на место устаревших, в результате чего мощность автомобиля увеличивается в несколько раз.

Апгрейд имеет свои границы, и на очень старый компьютер нельзя поставить все самое современное. Время от времени появляются принципиально новые стандарты подключения, старые системные шины перестают выпускаться, изменяются стандарты базовых устройств, таких, например, как материнская плата. И тогда модернизация становится бессмысленной, проще приобрести новый компьютер.

Платформа IBMPC обладает открытой архитектурой, а Apple – закрытой.

Открытая архитектура ¾ это как раз то, что позволило в свое время платформе IBM занять лидирующее положение в производстве компьютеров и победить конкурентов. И сейчас компьютеры на платформе IBM являются доминирующими в мире.

Однако сама IBM, введя открытую архитектуру своих изделий, успешно решила тактические задачи, но стратегически проиграла. Устройства с открытой архитектурой для компьютеров IBM стали делать сотни компаний во всем мире – в Америке, Европе, Азии. Юридических запретов на это не существует. А технически открытая шинная архитектура позволяет довольно просто это сделать.

В результате IBM перестала быть единоличным лидером в производстве вычислительной техники. Она стала всего лишь одной из крупных корпораций, входящей в первую пятерку производителей.