Сферический Конь в вакууме, или «Пора переквалифицироваться в управдомы!»


Безжалостное убиение священных коров с особой жестокостью, наступление на любимые мозоли всем находящимся в радиусе действия ног, глумление над останками львов и варварское разрушение памятников чьему-либо самолюбию — вот лишь малый список того, чем ваш покорный слуга любит заниматься на досуге вместо таких безобидных вещей, как игра в карты или питие крепких спиртных напитков. Видимо, ни от того, ни от другого адреналин в старческих жилах уже быстрее бегать не начинает, вот и ищу способы :). Итак, кого будем мучить? Для разнообразия — себя же, любимого. Впрочем, всем коллегам-тестерам тоже достанется — за компанию :). Но для начала одно небольшое лирическое отступление…

Ветеринару, статистику и физику дали неделю срока и $100.000, чтобы каждый из них придумал способ угадывания коня, который победит на скачках. Через неделю все трое приходят…

Ветеринар: Я разработал таблицу, по которой, зная физические данные коней, можно будет предсказать победителя!
Комиссия: Очень полезная информация…

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

Физик: Мне нужно для работы еще $1.000.000 и два года, но к настоящему моменту я построил модель победы абсолютно упругого сферического коня в вакууме!

Именно упомянутый выше конек-Горбунок (вот ведь величие мысли русского народа где проявилось — даже это предугадали!) и будет предметом нашего обсуждения. Как ему живется там, в вакууме? Не давит ли сферический хребет? И не похожи ли мы все, уважаемые коллеги-тестеры, на того физика, зверски изуродовавшего бедную животину? А если похожи — то стоит ли дальше огород городить? Может, действительно — пора в управдомы?

Сферический Конь на дорожке реального ипподрома

Почему нужны тесты? Потому что вычислительной
мощности современного железа никогда не хватит
на то, чтобы вычислить, как оно будет себя вести!
(автор неизвестен)

Любое тестирование любого устройства (мы для простоты ограничимся экспериментами над устройствами), что бы там кто ни говорил — это всего лишь эксперимент. Конечно, можно пытаться не просто наобум изучать «выход» черного ящика на случайном наборе входных данных, но тщательно протоколировать его, исходя из известных деталей о его строении (то есть, например, измерить сначала скорость выполнения всех элементарных операций процессором, затем скорость выполнения возможных цепочек операций и т. д.). Не будем даже отвлекаться на то, что отнюдь не любой тестер обладает достаточными знаниями и умениями для выполнения подобного исследования — в конце концов, на данном этапе мы еще можем говорить об идеальной ситуации. Не будем также падать духом при мысли об объеме предстоящих работ и постоянном катастрофическом отставании от неумолимо рождающего все новые устройства прогресса. Предположим, в конце наших изысканий, опоздав к шапочному разбору на пару лет и истратив-таки миллион у. е., мы будем держать в руках математическую модель давно снятого с производства объекта исследования. Самое обидное, что никому плоды этих трудов будут не интересны по одной простой причине: для использования полученной модели устройства потребуется создать также модели каждого из интересующих нас приложений для их последующего совмещения :).

Итак, единственный реальный способ тестирования устройств — это управляемый эксперимент. А экспериментами человечество занимается не первый век, и все достоинства и недостатки подобного метода познания реальности известны давно.

Любой эксперимент ограничен. Чаще всего его задача состоит в том, чтобы определить, как себя поведет то или иное устройство в условиях, повторяющих условия эксперимента или же максимально на них похожих. По сути, то, что X показал себя лучше Y в результате тестирования в 255 различных ситуациях, означает лишь вышесказанное и ничего более. Исключительно на основании результатов тестов утверждать, что не найдется 256-й ситуации, в которой, в свою очередь, Y порвет в клочья X — мягко говоря, весьма самонадеянно. Методы борьбы с этим недостатком тоже известны: типизация нагрузок (т. е. подбор по одному «представителю» от целого класса задач) и экстенсивный путь — увеличение количества исследуемых ситуаций. Однако эти методы все равно лишь загоняют проблему вглубь, давая более развернутую картину, позволяющую получить представление о поведении устройства в большем количестве типовых случаев. В большем, но не в любом.

Любой реальный эксперимент ограничен не только объективными, но и субъективными факторами. Для того чтобы что-то узнать, нужно сначала захотеть что-то узнать :). Нас интересует производительность? ОКей, но я не видел еще ни одного уважаемого бенчмарка (давайте не будем считать таковыми Norton Utilities или Sandra :)), который бы после завершения тестов говорил: «Производительность данной системы равна 33 попугаям по моей шкале!» Как правило, проводя эксперименты с целой системой, мы все же измеряем быстродействие некоего ограниченного количества ее узлов. При этом один тестер считает нужным уделить внимание производительности в играх (один набор узлов), другой больший упор делает на программы 3D-моделирования (другой набор), третьему милей всего сложные математические расчеты (третий набор), а четвертый пытается совместить все вышеперечисленное, но все равно ограничен элементарными временными рамками: полгода на одно тестирование ему никто не даст. Однако после каждого из таких экспериментов в конце все же делаются выводы именно о производительности системы целиком!

А теперь вопрос: чем являются выводы, сделанные конкретным тестером по результатам проведенной им серии экспериментов? Они являются дважды субъективной точкой зрения — в первую очередь благодаря тому, что набор самих экспериментов и условия их проведения являются субъективной точкой зрения тестера на то, какого набора тестов достаточно для определения общей производительности, а во вторую очередь из-за того, что при сведении всех полученных результатов в некую общую интегральную оценку автор материала самолично расставляет весовые коэффициенты для каждого теста, руководствуясь опять-таки своей собственной точкой зрения на то, какими они должны быть. Использование специализированных бенчмарков, оценивающих производительность в собственных «баллах», добавляет ко всему перечисленному еще одну степень субъективизма: автор субъективно оценивает балл, который сам по себе является синтезом субъективных взглядов разработчика данного бенчмарка. Ну а на конце цепочки болтается читатель, который, пытаясь извлечь полезную для себя лично информацию из очередной статьи, начинает субъективно оценивать субъективную интегральную оценку автора, основанную на субъе… :).

Любой эксперимент подвержен воздействию внешних факторов, не учитываемых (и не могущих быть учтенными в полном объеме) при описании условий эксперимента. При тестировании компьютерного железа на результаты тестов может оказать влияние что угодно — от версии драйверов (456.89.32.02, а в прошлый раз была 456.89.32.01) до температуры в комнате и используемого кулера (особенно в случае с «умными» системами на базе Pentium 4, которые могут в случае перегрева процессора снижать производительность автоматически). Проще говоря — вы никогда не получите одинаковых результатов. Вы скажете: «Практика опровергает — бывают одинаковые результаты!» Да, бывают. Потому что неточно меряют :).

На самом деле, «профессиональные» бенчмарки (типа того же SYSmark) специально подсчитывают и фиксируют результаты таким образом, чтобы мелкие расхождения видны не были, это вполне оправданный подход. Конечно, можно описывать каждый раз и температуру, и версии всех драйверов от первого до последнего, но выглядеть это будет как тонкое издевательство над читателем: «А вот не поймаешь ты меня никогда на несоответствии — попробуй-ка воссоздай мои условия в полном объеме!» :) Кроме того, многие тесты (а особенно — изначально не предназначавшиеся для целей тестирования реальные программы) вносят свою, иногда довольно ощутимую лепту в величину расхождения результатов, снятых даже два раза подряд на одной и той же системе. Ну и что мы будем говорить, зная все это и глядя на разницу в 3% между двумя чипсетами (платами, процессорами, видеокартами, …)? То-то и оно…

Есть, кстати, еще один неприятнейший фактор, который часто умалчивается, дабы не травмировать ранимую душу рядового читателя. Дело в том, что профессиональные тестировщики, как правило, создают «идеальную» среду для теста — попросту говоря, умеют настроить компьютер, операционную систему и само приложение таким образом, чтобы при сохранении стабильности работы производительность была максимальной. Рядовой же пользователь работает зачастую на Windows XP, которая была поставлена поверх Windows 2000, которая, в свою очередь, когда-то была установлена поверх Windows 98, в System Tray благополучно живут различные Gator'ы, парочка менеджеров закачки (вы думаете я фантазирую?! как бы не так — сам видел!), ну и в завершение всего на самом видном месте висит Norton System Doctor, весело блистающий всеми красками радуги. Производительность такой системы не то что измерить — даже пытаться предсказать бесполезно! А если шаловливые ручки пользователя дорвались еще и до какого-нибудь системного твикера, или, Боже упаси!, до тонких настроек BIOS, то умело настроенный Duron по сравнению с таким Pentium 4 2,53 ГГц будет демонстрировать просто чудеса скорострельности…

Результаты отнюдь не всякого эксперимента представляют практическую ценность. В процессе исследования поведения устройства в искусственно созданной ситуации многое зависит от того, насколько она близка к ситуациям, возникающим в процессе реальной работы. Я называю это разделением на «теоретизирующие» и «практические» тесты (несколько грубовато, конечно, но зато сразу понятно о чем идет речь). В первом случае нас интересуют расхождения между значениями измеряемых параметров безотносительно практической ценности самих параметров. К примеру, если реальная пропускная способность канала UltraATA 100 на одной плате составляет 90 МБ/с, а на другой — 75 МБ/с, то первая превосходит вторую на весьма ощутимую величину в 90/75 = ~20%. Круто!

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

Производительность можно измерять, но в реальной жизни мы ее все-таки не измеряем, а ощущаем. Не стоит забывать, что лишь опытный редактор iXBT.com :) может на глаз отличить 100 fps в Quake III от 70 и 130. И куда там всем этим погрешностям тестов и мелким расхождениям в версиях драйверов до той степени «ошибочности», которую вносит сам человек! Во дни моей бурной молодости я наткнулся на один документ (на английском, который я тогда знал весьма поверхностно, да еще и распечатанный на матричном принтере с «полусдохшей» лентой), представлявший из себя «тестирование субъективной оценки производительности». Сразу же извиняюсь за то, что не могу привести ссылку (не уверен даже, есть ли она — т. е. попал ли материал в интернет), но суть была в следующем: группа из большого количества человек оценивала «по ощущениям» быстродействие двух внешне одинаковых компьютеров, которые перед этим комплектовались таким образом, чтобы между их скоростью присутствовала реально поддающаяся измерению разница (для оценки использовался Winstone). Исследователи поставили себе задачу определить, начиная с какого фактического расхождения люди начинают чувствовать разницу в производительности на уровне «вот этот, как мне кажется, медленнее». Усредненная цифра ошеломила самих авторов: 8%! То есть разницу в производительности менее восьми процентов большинство испытуемых не ощущали вообще! No comments, как говорится…

Закат «эпохи тотального тестинга»?

Поток железа, проходящего через каждого из нас, за последнее время увеличился раза этак в три. Процессоры, материнские платы, видеокарты, звуковые карты, винчестеры, CDRW, кулеры, всевозможнейшие контроллеры… Какая там «весна, птички поют»?! Арбайтен, господа тестеры, время не ждет! Скажи мне, сколько тестов ты сможешь сделать за месяц — и я скажу тебе, через какое время твоя крыша улетит по касательной… Но это мелочи, к этому привыкли все. Беспокоит другое — саднящее чувство ненужности своей работы. Мы не переварим весь компьютерный рынок, даже если подключим к своей работе половину населения России и стран ближнего зарубежья — да и нужно ли это кому-то на самом деле? Сколько людей узнало то, что им нужно, прочитав наши статьи? А сколько не узнало? Все чаще ловишь себя на мысли, что научившись хорошо отвечать на стандартный набор вопросов, все меньше и меньше внимания обращаешь на то, что набор этот сформировался черт-те когда, а время-то идет…

Раньше, когда «деревья были большими», новые процессоры появлялись хотя бы раз в полгода, IDE-контроллер на одной мультикарте показывал три попугая, а на другой — тридцать три, Voodoo2 SLI рвала всех на мелкие частички, а винчестеры от Quantum по скорости было реально очень трудно догнать — тогда результаты каждого теста ждали как манны небесной, распечатывали для товарищей, у которых нет доступа в интернет, и зачитывали до дыр. Сейчас же… Пожалуй, главный показатель — это то, чего ждут, и то, чего не ждут. Да, все еще по привычке читают, и даже обсуждают, но — не ждут. Просто «принимают к сведению», что нечто быстрее чего-то еще на 10 секунд или еще на 20 fps. И все чаще во всех тестовых материалах (и не только наших) появляются давно знакомые нотки: «как и следовало ожидать…», «в принципе, легко можно было предсказать…», «лидер в очередной раз подтвердил свое лидерство…», «ну, от этой компании мы ничего другого и не ждали…». Ну а если «ничего другого и не ждали», то в чем тогда сокровенный смысл? Потратив кучу усилий и тщательно все проверив, убедиться в том, что результаты, которые ты предполагал увидеть с самого начала, действительно являются таковыми?

Куда пойти, куда податься…

Не люблю в последнее время писать «пораженческие» статьи, устал от негатива. Да и вряд ли стал бы я так глубоко надпиливать тот сук, на котором сам же сижу, если бы не было никаких мыслей по поводу возможных путей выхода из ситуации. Технически ориентированным компьютерным масс-медиа пора меняться — для меня это факт. Сферические Кони интересуют все меньшее и меньшее количество людей, и мы рискуем попасть в классическую ситуацию декабристов: «Узок круг их интересов, страшно далеки они от народа…». Но в управдомы подаваться все-таки неохота. Что же делать? Мне видится несколько путей.

«До основанья, а затем…» никто ничего разрушать не собирается. Классические задачи не отменяются, их актуальность по-прежнему остается высокой, и «закат эпохи тотального тестинга» вовсе не означает заката эпохи тестирований вообще. Разумное перераспределение приоритетов состоит не в том, чтобы уменьшить количество тест-ориентированных материалов, а наоборот — в том, чтобы использовать «мощности» тестовой лаборатории максимально полезно и продуктивно, по возможности избавив ее от работы излишней, что позволит сосредоточиться на вещах актуальных и реально полезных для большинства.

Вернемся к тому, о чем уже говорилось выше: одна из основных проблем, которая уже давно стоит на пороге любой тестовой лаборатории — это громадное количество однотипного по сути железа, которое «по старой привычке» следует скрупулезно исследовать по стандартной «суперрасширенной» методике, чтобы получить в результате вполне предсказуемый вывод о практически полной идентичности продуктов… которые действительно являются почти идентичными, о чем можно было с уверенностью говорить, даже не начиная тестов! Теперь давайте разберемся: а зачем вообще нужно тестировать [десятка полтора] материнских плат или видеокарт на базе одного и того же чипа (чипсета)? Правильно: исключительно с целью выделить неудачные или «некондиционные» модели. Нужен ли для этого десяток тестов? Нет, вполне можно обойтись двумя-тремя. Пострадает ли от этого материал? НЕТ. Зато какое количество времени и сил высвободится на вещи действительно актуальные!

Озвученное выше ворчание по поводу тестов низкоуровневых, синтетических и полусинтетических, также не означает, что их следует «в могилу закопать, и надпись написать». Следует понимать, что весь этот материал написан в жанре «Баба Яга против!» совершенно осознанно, т. е. утрирование некоторых ситуаций и намеренное заострение проблем является лишь приемом, позволяющим обратить внимание на вещи, зачастую теряющиеся в общей массе. Низкоуровневыми тестами не стоит увлекаться, но это не значит, что их не стоит использовать вообще. Сами по себе fillrate или скорость блока SSE действительно мало кого интересуют, но иногда эти данные помогают лучше понять результаты, которые устройства демонстрируют в тестах «реальных». То есть служат тому, о чем уже многократно было сказано ранее: от «предоставления в распоряжение читателя результатов тестов» позволяют перейти к действительно серьезной оценке производительности в рамках материала, причем с элементами… впрочем, об этом — следующий абзац.

Аналитика. Чипов (чипсетов, процессоров, GPU, аудио и прочая) стало столько, что уже не так важно их все протестировать (а если действительно все — то это попросту невозможно!), как четко понять, для чего же все это может быть применено и на что реально следует делать ставку. На самом деле, чудес на свете случается очень ограниченное количество, и ни для кого не является секретом, что характеристики многих продуктов и даже результаты их тестирования зачастую вполне можно предсказать, зная только имя производителя и полные технические характеристики. Однако кто их знает?! Рядовой пользователь, пусть даже интересующийся компьютерами на уровне хобби? Он прочел все datasheet'ы на все чипы Intel, AMD, VIA, SiS, NVIDIA, ATI, Creative, Realtek?! В жизни не поверю! Краем уха об одном, краем другого уха о другом — большего ему и не нужно, чтобы «быть в курсе», и это правильно. Это мы от нечего делать забиваем себе мозги всем подряд :).

Однако раз уж мозги забиты — грех не использовать накопленные знания по назначению. Хороший аналитический материал, построенный на знании характеристик выпускающихся (и планируемых на ближайшее время) продуктов, знании тенденций рынка, некоторой «внутренней кухни» крупных ОЕМ, причем знании глубоком, но в то же самое время широком и полном — подчас объясняет больше, чем двадцать два тестирования. И не беда, что автор имеет свое мнение, которое может отличаться от вашего. В хорошей аналитической статье фактов всегда достаточно для построения собственной модели, если не нравится авторская. Что же касается тестов, то они вполне удачно вписываются и в такой материал, но занимают в нем не центральное место, а именно то, которое им и положено занимать. Структуру хорошего обзора (имеющего, как я уже говорил выше, гораздо большую ценность, чем простое тестирование) изобретать не нужно, она хорошо известна: «теоретическая» часть (описание продукта) плавно перетекает в аналитическую (его позиционирование, место на рынке и т. д. и т. п.), после чего в качестве подтверждения сделанных выводов даются результаты тестов. Причем не сто двадцать восемь диаграмм, от которых сносит крышу на второй минуте (любимый прием плохих тестеров — прятаться за количеством результатов), а ровно столько, сколько необходимо в рамках основной задачи: подтверждения выводов аналитической части.

Лицом к DIY. Как ни странно, многие из моих друзей и знакомых приходят ко мне с одним и тем же вопросом: «Расскажи, из чего собирать сейчас компьютер?» Я, естественно, отвечаю: «Так зайди на сайт да почитай!» А они говорят: «Читал — все равно непонятно!» И в общем-то я их с некоторых пор понимаю все лучше и лучше. Опять старая проблема: пишем об отдельных устройствах. Вот это — хорошая плата под Socket A. А вот это — хороший процессор Intel Pentium 4 2,53 ГГц. Логично было бы эти два хороших продукта соединить вместе, не правда ли? :) Шутки шутками, а так оно иногда со стороны и выглядит. Руководство по выбору оптимальных конфигураций — вот чего жаждет пользователь. Причем он ленив, и это тоже можно понять — он хочет данное руководство не в виде всего сайта iXBT.com целиком, он хочет его в виде одного связного материала. Buyers Guide? Do It Yourself Guide? В качестве одного из элементов наполнения — почему бы и нет? И не стоит уподобляться снобам и кривить нос, дескать: «Это все для чайников!» Специалистов, способных грамотно подобрать сбалансированную конфигурацию для определенной задачи (а как же еще?!), вовсе не так уж и много. Посмотрите на «шедевры глупости», модельные ряды многих немаленьких компаний, и вы в этом очень быстро убедитесь.

Опять-таки, увлекаться одним подходом в ущерб другому — означает повторять печальный опыт 1917 года :). К слову, я очень хорошо пойму тех, кто скажет: «Автора дико носит из стороны в сторону, он то призывает к чему-то новому, то бросается защищать старое». Что ж, это действительно факт — «носило». Причем как в процессе написания, так и в процессе корректировки и редактирования этого материала. Почему? Ответ в общем-то прост: очень хочется избежать той самой «р-р-революционности» в духе матроса Железняка. Постоянно вспоминаю «Ревизор» Николая Васильевича Гоголя: «Александр Македонский герой, но зачем же стулья ломать?». Тесты «отдельно взятого процессора X» (которые я вроде как ругаю), если их противопоставлять тестам «одной комплексной системы в составе которой присутствует X», выглядят не плохо и не хорошо — просто они в отрыве друг от друга выглядят неполно. В конечном счете, речь ведь идет не о том, чтобы с одной категории читателей «перекинуться» на другую, а о том, что пора поставить себе целью удовлетворить обе. Задача в результате получается как минимум в два раза более сложная, но надо же время от времени оправдывать звание лучших из лучших, не так ли? :)

Тестирование готовых решений. Собственно, а почему бы и нет? Посмотрите на количество компьютерных магазинов, на объемы производства локальных брендов — это все что, «в закрома Родины» уходит? Нет — это ставится на вполне конкретные столы вполне конкретных людей. Эти конфигурации собираются из комплектующих, выбранных менеджерами компаний — в лучшем случае, после того, как они посоветовались с инженерами, в худшем… сами знаете как :). Эти замечательно сбалансированные целевые компьютеры или же безобразно спроектированные универсальные уродцы покупаются и используются по назначению (или не по назначению) громадным количеством людей. Почему бы не дать этим людям возможность узнать, каков в тестах компьютер модели X от компании Y и что мы вообще думаем по поводу этой модели?

Прекрасное далеко, не будь ко мне жестоко…

Несомненно, многие заметили, что постепенно наполнение сайта изменяется, в том числе и в тех направлениях, которые указаны здесь. Глупо строить из себя пророка с большой или маленькой буквы — это происходит не потому, что кто-то гениальный нашел единственный и неповторимый путь, просто своевременные мысли приходят в голову очень большому количеству людей одновременно. Открываются новые проекты, призванные заполнить информационный вакуум в тех областях, которых мы раньше просто не касались (Computorg.iXBT.com), более отточенными становятся iТоги, появляется все больше статей-обозрений, ориентированных на оценку не конкретных устройств, а перспектив развития самой отрасли или отдельных технологий.

Однако именно в этом отношении feedback поразительно мал. Чуть ли не каждый день кто-то радостно спешит сообщить о том, что он заметил орфографическую или стилистическую ошибку в новостях. Ежедневно я выгребаю из своего почтового ящика по пять-десять писем с просьбой «сказать, какую материнскую плату на чипсете i845 с поддержкой DDR вы мне посоветуете купить?», но еще никто не попросил просто научить его выбирать. Неужели неинтересно? Ненужно? Неактуально? Эта статья — одновременно и изложение взглядов автора на грядущие изменения, и попытка начать диалог о том, какими они должны быть. Можно предположить, что мнений наберется немало, и отнюдь не все совпадут с озвученными здесь. Но это в общем-то не так уж и важно. Главное, чтобы они были. Ну и еще желательно, чтобы мы о них знали :).




Дополнительно

iXBT BRAND 2016

«iXBT Brand 2016» — Выбор читателей в номинации «Процессоры (CPU)»:
Подробнее с условиями участия в розыгрыше можно ознакомиться здесь. Текущие результаты опроса доступны тут.

Нашли ошибку на сайте? Выделите текст и нажмите Shift+Enter

Код для блога бета

Выделите HTML-код в поле, скопируйте его в буфер и вставьте в свой блог.