Я ценю непростой труд жюри по выбору победителей, но тем не менее, у меня появились некоторые вопросы/предложения, ответы на которые, я думаю, будут интересны всем участникам конкурса.
...мы старались быть объективными и исключить разброс результатов из-за особенностей конкретных инструментов. Так, например, если участник конкурса указал, что им была использована библиотека Intel® MKL v.9.0, мы уравняли шансы на победу, перекомпилировав приложение с использование последней версии данной библиотеки.
Как известно, в 10-й версии библиотеки Intel® MKL появился новый режим - “Enhanced Performance“ mode (EP Mode), которого не было в 9-й версии. Этот режим, по сравнению с режимом “Low Accuracy“ (LA), дает существенное повышение производительности, на некоторых функциях выигрыш достигает двух раз и более (см.
Performance of VML (Non-Threaded) Functions). К сожалению, не всем участникам конкурса была доступна новая, 10-я версии библиотеки. Например, на дисках, любезно предоставленных офисом Интел участникам конкурса, оказалась 9-я версия библиотеки Intel® MKL. Таким образом, участники, использующие разные версии и, соответственно, разные режимы работы библиотеки Intel® MKL, были поставлены в заведомо неравные условия.
Вопрос:
Применялся ли режим “Enhanced Performance“ mode (EP Mode) вместо режима LA при тестировании работ участников, написанных с использованием библиотеки Intel® MKL v.9.0, и если нет, то почему?
MAD\doganezo:...Все участники будут в равных условиях…
... ваша задача - добиться максимального ускорения относительно "неоптимизированного" кода на ваших машинах, т.е. тех, на которых вы производите оптимизацию....
Рекомендация оптимизировать код под имеющийся у участника процессор выглядит опрометчиво. Не у всех участников система построена на процессоре нужной для конкурса архитектуры. Некоторые оптимизации кода (или отказ от них), дающие на системе участника положительный результат, на тестовой платформе могут дать отрицательный результат из-за иной архитектуры процессора. Слепое следование таким рекомендациям, видимо, сыграло дурную шутку с некоторыми участниками конкурса, в том числе и со мной, когда я закомментировал векторную функцию вычисления синуса и косинуса vsSinCos из библиотеки Intel® MKL (предназначенную вместо 536-542 строки в исходном файле sunset.cpp). Когда я одумался, было уже поздно. Хотя строка с функцией vsSinCos и осталась в коде программы (в закомментированном виде) вряд ли жюри обратило на нее внимание.
Для того, чтобы действительно поставить всех участников в равные условия, желательно для будущих конкурсов организовать систему онлайн-тестирования, о которой уже упоминал один из участников.
olegg1: Возможно ли сделать некое подобие онлайн системы тестирования?
Имеется в виду система, позволяющая любому участнику конкурса получить через WEB интерфейс предварительные результаты выполнения своего кода на тестовой системе.
Думаю, многие участники настоящего конкурса будут рады помочь в тестировании подобной системы (чтобы она стабильно работала к следующему конкурсу), тем более что каждому участнику, по-моему мнению, будет интересно самому проверить результаты выполнения своего кода на тестовой системе.
Предложение:
Почему бы не опубликовать на сайте таблицу с результатами всех остальных протестированных работ участников? Я думаю, всем участникам конкурса будет интересно взглянуть на свои результаты, особенно если жюри кратко отметит недостатки и достоинства отдельных работ. Ведь даже у работ, не попавших в первую десятку, наверняка есть интересные решения. Например, один из моих вариантов работы использовал алгоритм CORDIC для целочисленного вычисления тригонометрических функций. Правда, я этот вариант работы на конкурс решил не посылать, т.к. применение библиотеки Intel® MKL дало лучший результат.