Популярные тесты в большинстве случаев проводятся честно, а дьявол таится — как водится — в их интерпретации
Михаил Кузьминский |
Конкуренция — вот что заставляет компании, выпускающие компьютеры, приводить данные о результатах тестов их производительности. В последнее время пик интереса со стороны крупных компаний, похоже, приходится на рейтинг TOP500 наиболее масштабных суперкомпьютерных инсталляций мира.
Это свидетельствует и об интересе ведущих компьютерных фирм к области высокопроизводительных вычислений; тенденции к его росту наблюдаются и в нашей стране.
Увы, конкуренция в любой сфере часто сопровождается появлением липовых результатов или иными формами мелкого жульничества. В этом смысле, кстати, светлое капиталистическое настоящее ничем не лучше светлого социалистического прошлого. История показывает, что такие явления сопутствуют самым разным видам тестов производительности.
Рассмотрим, к примеру, тест производительности с плавающей точкой — Linpack (решение системы N линейных уравнений с N неизвестными). Этот тест активно используется еще со времен господства векторных суперкомпьютеров, пользователи которых, понятное дело, обладали достаточно высокой квалификацией. К каким средствам прибегали фирмы, когда у них результаты были «не очень»? В общем-то, к вполне безобидным. Проще всего не публиковать результаты. Этот прием остается любимым до сих пор — если результатов популярного теста нет, потенциальный потребитель должен, вообще говоря, задуматься.
Использовалась и другая схема. Когда говорилось о результате Linpack без указания N, обычно подразумевалось стандартное значение N=100. Некоторые компании приводили, однако, значения для другого теста при N=1000, которому отвечает существенно более высокая производительность. Никаких претензий — правда и только правда. И может быть, даже вся правда — если где-нибудь, лучше на другой странице, привести малюсенькими буковками примечание с техническими деталями рассмотренных тестов. Кто ж это будет читать...
О всенародной любви
Тест — не поп-музыка, его надо не любить, а понимать. Потребитель часто не до конца осознает, как правильно оценить результат теста. Скажем, тесты SPECcpu2000: на рынке имеется несколько альтернативных компиляторов, и использование тех или иных версий способно поменять, в частности, результат «процессор А быстрее процессора B», скажем, на тесте SPECfp2000, на противоположный (конечно, реально это возможно только для процессоров, близких по техническим характеристикам). Но хороший процессор не виноват, если его использовали с плохим компилятором.
В этом смысле еще более подвержены манипуляциям близкие к реальным приложениям синтетические тесты. К примеру, TPC-C. Ниточек, за которые можно дергать, чтобы поднять производительность — масса. Вчера компания А установила рекорд. Руководство компании B выдает своей команде специалистов нагоняй, те засучивают рукава, удваивают емкость оперативной памяти, устанавливают более быстрые диски на разные каналы ввода-вывода, ставят более новую версию СУБД, «подкручивают» еще целый ряд параметров (работа это большая и сложная). И вот есть новый рекорд, на несколько единиц выше, чем у компании A!
Здесь речь идет о случае, когда число и тип процессоров в компьютере остается неизменным. Вспомните — похожая ситуация имела место в борьбе за лидерство на тестах TPC-C между IBM eServer pSeries и HP Superdome. Побитие рекордов было поставлено на поток, специалисты непрерывно работали, готовя новые рекорды и не дожидаясь очередного успеха конкурента. Вопрос престижа был исключительно важен для обеих фирм.
Между тем основной вывод, который можно было сделать из этой ситуации, был прост — системы близки по производительности. Все остальное — «от лукавого» (мы не обсуждаем другие вопросы — сопоставление цен, число использованных процессоров и проч.).
По гамбургскому счету
Результаты в TOP500 также основываются на тестах Linpack, но в параллельном варианте, когда решение системы линейных уравнений в многопроцессорных системах распараллеливается, а значение N может быть выбрано сколь угодно большим — чтобы достигнуть наивысшей производительности. В самом тесте все в порядке: полученный результат является уникальным для данной конфигурации вычислительной системы, да и существенных параметров во много раз меньше, чем, скажем, в TPC-C.
Но когда появился TOP500, джин был выпущен из бутылки — в рейтинге суперкомпьютеров может быть представлено, например, много идентичных результатов для одинаковых инсталляций, осуществленных в разных местах Земного шара. Производители, естественно, хотят получить как можно больше своих систем в списке TOP500... Широкой компьютерной общественности о таких «злоупотреблениях», наверное, не известно, однако в узких кругах специалистов вопрос о соответствии реальности прошедших сертификацию в TOP500 результатов, конечно, обсуждался.
Не исключено, что такая болезнь не миновала и Россию. В одном из давних списков TOP500 была представлена суперкомпьютерная инсталляция в нашей стране, в то время как сам компьютер уважаемой компании был, похоже, «виртуальным» — во всяком случае, следов его пребывания в нашей реальности автор не нашел: компания-производитель сослалась на «коммерческую тайну».
Поскольку наиболее распространенными в TOP500 типами вычислительных систем становятся не «обычные» суперкомпьютеры, а кластеры, остановимся на инсталляциях, производительность которых определяется их узлами (включая число узлов) и межсоединениями. В качестве межсоединения в TOP500 довольно часто встречается Myrinet компании Myricom. На «трюки» с Myrinet-кластерами уже не раз обращали внимание приверженцы альтернативных межсоединений. Однако, в качестве производителя/сборщика кластеров в TOP500 фигурировала вовсе не Myricom.
В некоторых версиях TOP500 были обнаружены явные «ошибки» — например, одинаковая достигнутая производительность в кластерах с идентичными узлами, но разными межсоединениями (Myrinet или Ethernet; у первого производительность должна быть выше). Появились и иные аномальные результаты (специалисты все-таки могут дать разумные теоретические оценки и обнаружить «трюкачество»). Поэтому перед опубликованием очередной версии рейтинга в ноябре прошлого года списка «бригада TOP500» специально запрашивала Myricom, были ли осуществлены поставки Myrinet-оборудования в то место, откуда пришла соответствующая заявка на включение в рейтинг.
В заключение — пару слов об интерпретации результатов TOP500. Технические недостатки самих тестов — это тема для отдельного разговора. Но вот интерпретировать результаты статистики тоже нужно с умом. Во-первых, TOP500 — это выборка по самым крупным инсталляциям; «в массах» же статистическая картина может быть иной — например, выше доля дешевых решений. Во-вторых, хорошие результаты в TOP500 получаются, в первую очередь, на микропроцессорах с высокой пиковой производительностью на задачах с плавающей точкой (достигаемая в тестах производительность обычно близка к пиковой). В то же время в реальной жизни приложения обычно другие, и соотношение стоимость/производительность может быть лучше на других процессорах.
Может показаться, что автор призывает вообще отказаться от тестов. Вовсе нет. Просто думайте — и решайте, как понимать результаты тестов с точки зрения ваших собственных нужд.
Михаилу Кузьминскому принадлежит ряд результатов на тестах Linpack, опубликованных в официальных таблицах Top500. С ним можно связаться по электронной почте по адресу kus@freenet.ru