Добро пожаловать, гость | Вход | Зарегистрироваться
Дополнительный рейтинг и SunSet
Dmitry Oganezov (Intel) (20 пост(а)) 20.11.2007 08:06
Всем привет,
Я обещал опубликовать комментарии наших экспертов к дополнительному рейтингу конкурса «Студенческий кубок Intel: оптимизация многопоточных приложений».
Перед тем как перейти к собственно комментариям, мне хотелось бы сказать вот что: мы с жюри конкурса собирались несколько раз, анализировали результаты, думали, спорили и сомневались… И принять окончательное решение было очень непросто, поверьте! Наш специалист по оптимизации Максим Локтюхин компилировал ваши приложения и перепроверял результаты до 2-х ночи, потом мы строили разные рейтинги и читали пояснительные записки, снова собирались, спорили и снова сомневались…
Мы старались быть объективными, насколько это возможно. И наше общее объективное мнение (то, что совпало :), – каждый из участников вложил труд, время и частичку души в эту работу. За это и объявляем вам наш огромный, торжественный, трудовой респект!
Итак, к нашим экспертам. Андрей Нарайкин, Валерий Федорович Курякин и Игорь Ермолаев анализировали работы участников, а я попробовал «скомпилировать» их мнения в данном посте. Подробнее об официальных результатах конкурса я писал в этой статье.
Юрий Мальков продемонстрировал отличное знание микро-архитектуры, понимание и навыки параллельного программирования, видно очень хорошее знание инструментария, умение прилично его использовать и структурированный подход: последовательная оптимизация, параллельная оптимизация, общая.
Юрий сделал анализ алгоритма и предложил улучшения, аргументировав свои предложения. Наконец, нам понравилось описание проекта Юрия – оно очень неплохого качества. Лучшее из всех приведенных.
Александр Романов также показал отличное знание микро-архитектуры и навыки параллельного программирования. Грамотно воспользовался инструментами оптимизации. Проявил дисциплинированность в описании параметров системы. Наконец, из комментариев в коде видно, насколько Александр вложился в анализ производительности и оптимизацию. С технической точки зрения – отлично сработано.
Сравнивая работы Юрия и Александра, эксперты отметили два разных подхода к оптимизации: «университетский» и «политеховский». Александр много экспериментировал. Это, несомненно, плюс, но некоторые решения приняты просто на основе экспериментов («так оказалось быстрее»), хотя выбор был далеко не очевиден. Юрий работал «по системе», структурно. Плюс - составил великолепное описание своей работы. По оценке экспертов Юрий получает высшую оценку, хотя по результатам измерений Александр, несомненно, – лидер. Он же сохраняет и лидерство в общем зачете.
Евгений Калишенко выступил «экономично» (большой +): минимизировал изменения, «бил» в главные проблемные точки. Технически – сделал все на хорошем уровне. Отмечаем хорошее знание инструментария и умение его использовать
Из минусов - экономично выступил и в описании. Краткость она, конечно, сестра таланта, но нам хотелось бы увидеть пояснения, почему сделаны те или иные изменения.
Илья К. Налицо понимание и навыки параллельного программирования, видно очень хорошее знание инструментария. Структурированный подход к работе: последовательная оптимизация, параллельная оптимизация, общая. Неплохое общее описание (сразу видно - литературу хорошую читал ). К сожалению, «что-то пошло не так» - лишь седьмое место по таймингам.
Павел Зубарев и Вера Кононова. Описания – краткие. Изменения кода – логичны, но можно было сделать больше (что собственно лидеры и доказали).
Алексей Щербаков. Описание – достаточно подробное. Привел много данных по анализу, сравнительные характеристики (например, компиляторов). Но у нас сложилось ощущение, что Алексей остановился на самом интересном месте: собрал много данных, сделал некоторые изменения, но отнюдь не все, которые можно было бы, основываясь на этих данных. Какие-то вещи не сработали, в результате – отстал от лидеров.
Руслан Увашев. Нам понравился подробно прокомментированный код, который прислал Руслан. Из комментариев понятно, что сделано и почему. Руслан всячески старался соблюсти условия корректного выполнения программы… И это, видимо отчасти его подвело – лидеры подошли к проблеме более агрессивно и аргументировали свою позицию, привели разные варианты. Тем не менее, стремление блюсти букву закона мы отмечаем плюсом.
Петр Процик показал отличный результат по таймингам, но, к сожалению, не потрудился описать, как именно он этого добился.
Юрий Демин, Евгений Гришуль. Сделанные ребятами изменения очень логичны, но можно было сделать и больше.
Владимир Червяков. Видны приложенные усилия… Но… Конкурс есть конкурс, многие показали лучший результат.
Общий итог дополнительного рейтинга:
Лидер – Юрий Мальков
Второе место – Александр Романов
Третье место - Илья К.
Евгений Калишенко, Павел Зубарев и Вера Кононова – близкие результаты, соответственно 4-е - 6-е места.
И замыкают дополнительный рейтинг Алексей Щербаков, Руслан Увашев, Петр Процик, Юрий Демин – 7-10 места.
Буду рад ответить на вопросы о конкурсе. Вы можете задавать их тут или на форуме.
Категории: Intel Software Network, Конкурсы и мероприятия, Многоядерность, Разработка софта
Комментарии (7) 
По Александр Романов в Ноябрь 29th, 2007 в 01:38
Мне не очень понятно что за неэтичное сравнение "«университетский» и «политеховский»" прозвучало в статье? Сдается мне, что человек, писавший данные слова (и следующую фразу) был выпускником ННГУ и до сих пор недолюбливает студентов ННГТУ (политех, выпускником которого я и являюсь).
Насчет фразы "некоторые решения приняты просто на основе экспериментов («так оказалось быстрее»)". Как-то не в мою пользу это звучит, а ведь задача была поставлена конкретная - добиться меньшего время выполнения, и она была выполнена! Встречный вопрос: как же тогда по мнению экспертов нужно проводить оптимизацию? Вслепую, только после всех сделанных изменений сравнить результаты? Абсурдно звучит... Ведь некоторые оптимизации не приносят ожидаемого результата вследствии некоторых тонкостей и скрытых узких мест, которые сразу не видны. Да и зачастую делая оптимизацию строго по какому-то порядку можно многое пропустить. Нужно проводить оптимизацию творчески и сперва просмотреть весь код и найти возможные места-кандидатов на оптимизацию, т.к. часто можно совместить несколько типов оптимизации, что при последовательном подходе бывает достаточно сложно обнаружить. Вот оно - все-таки нужно стараться оптимизировать параллельно, а не последовательно.
(Конечно это мое мнение и это так не просто)
Кстати, в большинстве случаев было указано по каким причинам возможная 'очевидная оптимизация' не была применена. Так-что дануую фразу считаю необоснованной.
P.S.
От себя хочу добавить, что я не использовал ни одной спец.библиотеки при своей оптимизации, в отличии от всех других участников соревнования. Возможно это и некоторый минус, т.к. при их использовании производительность поднялась бы еще выше. Дело в том, что раньше я с данными библиотеками не сталкивался. Ну что ж, учтем... Теперь есть повод их поизучать :о)
По Dmitry Oganezov (Intel) в Ноябрь 29th, 2007 в 05:38
Александр, эту фразу написал я :).
Я заканчивал политех, тот же самый что и Вы. И я действительно очень рад тому, что именно выпускник политеха занял первое место в нашем конкурсе.
Что же касается разницы в подходах… Она действительно просматривается. И как человек, достаточно долгое время руководивший коллективами программистов, могу с уверенностью сказать, что это как раз очень хорошо. Иногда нужно действительно «глубоко копнуть», а иногда можно просто проверить несколько вариантов и выбрать наилучший (даже если единственное приходящее в голову объяснение этому - «так устроено»
).
По таймингам вы - безусловный и безоговорочный лидер. (Можете смело крикнуть "Политех – лучше всех"! :)). Что же касается дополнительного рейтинга - я постараюсь сегодня опубликовать работы некоторых участников, для наглядности. Вы увидите, что описание Юрия мы просто обязаны были отметить высокой оценкой.
Надеюсь на понимание ;).
По Александр Романов в Ноябрь 29th, 2007 в 23:09
Описание Юрия я видел, когда мы еще в поезде ехали на награждение и про него могу сказать только хорошее.
Уже давно есть некоторая конфронтация между ННГУ и ННГТУ, а данными словами вы подливаете масла в огонь. Вот что я имел в виду
Ведь типы подходов нельзя разделить "по университетам". Я, например, весь материал по программированию и смежных областях уже знал до поступления и имел свои представления и взгляды на эту область.
По поводу второго: фраза "некоторые решения приняты ПРОСТО на основе экспериментов" - это не так! И я уже объяснил почему.
Вот опять вы даете варианты "глубоко копнуть" и "проверить несколько вариантов", которые вы почему-то разделаяете, как диаметрально притивоположные... Ну не так это. Нет в моей работе простых тыков, в ней скомбинирована в единое целое последовательность "оптимизировал - проверил - оценил" и не важна глубина копания, смысл в том, чтобы проверить и оценить проведенную оптимизацию и сделать выводы. Кстати, однажды я таким образом нашел один очень примечательный процессор P4, который при проведении оптимизаций давал отрицательный прирост в производительности. Оказалось у него была какая-то хитрая ошибка при работе с кэшом. При выравнивании на 1024, например, он безбожно тормозил, а при выравнивании на 1023 - показывал огромный прирост в скорости, даже больший чем его "нормальные" братья. ![]()
И дело не в том кто лидер в доп. рейтинге - несомненно Юрий хорошо постарался и показал высокий уровень знаний. При общении с ним понятно, что человек хорошо знает то, о чем говорит (кстати он больше физик и, конечно, глубже понимает и, как следствие, может изменить сам алгоритм расчета физических процессов. респект), дело лишь в этих фразах, которые мягко говоря не совсем соответствуют действительности.
По Dmitry Oganezov (Intel) в Ноябрь 30th, 2007 в 01:26
Перед тем как ответить я хочу рассказать одну историю…
Когда-то, давным-давно, я работал руководителем авиамодельного кружка. Это были еще советские времена, и многие мастерили мебель и прочую утварь «для дома для семьи» своими руками.
Так вот, один из моих знакомых привел своего приятеля, которому позарез нужно было выточить «ма-а-аленькую детальку» на токарном станке. Приятель этот закончил университет, и продолжал учиться там же, в аспирантуре.
Станки у нас были довольно продвинутые, со множеством прибамбасов. И судя по эскизу детали, делов там было минут на 10, не больше (деталь представляла собой цилиндр с двумя проточками на каждом из торцов, до сих пор помню). Взглянув на чертеж, я торжественно вручил товарищу ключи и резец, показал пару нужных кнопок, и пошел заниматься своими делами.
Примерно через час я решил проверить, как продвигается работа… «Аспирант», вооружившись инструкцией, внимательно изучал функцию автоматической нарезки дюймовой резьбы. Короче говоря, он приходил почти неделю, на каждое занятие. Он выучил станок от и до – автоматические подачи, метрические и дюймовые резьбы, рекомендованные скорости вращения шпинделя для различных материалов, и так далее… В результате, вооружившись неимоверным количеством совершенно ненужных знаний и потратив на это неделю, «Аспирант» все-таки выточил нужную ему деталь попытки эдак с третьей. С тех пор я его не видел, но уверен, что если ему впоследствии пришлось-таки нарезать дюймовую резьбу, он с этим тоже справился.
Я совершенно ничего не имею против различных подходов! Любой подход имеет право на жизнь при условии, что он дает положительный результат. Как говорил классик «Мамы разные нужны, мамы всякие важны». По-моему это понимают все, кто понимает :).
По поводу конфронтации между ННГУ и ННГТУ – я лично о таком не слышал, где можно подробно почитать? ![]()
По Александр Романов в Ноябрь 30th, 2007 в 04:37
Не, все-таки мы как-то друг-друга не понимаем. Надо будет об этом поговорить, когда будет экскурсия.
Кстати, как там идет подготовка?
По Dmitry Oganezov (Intel) в Ноябрь 30th, 2007 в 05:04
Подготовка полным ходом идет, только вот я в ней пока не участвую
Если коротко, то в Нижнем 14 декабря планируется "круглый стол", на который мы приглашаем студентов и аспирантов технических специальностей.
Это такое официальное мероприятие, анонс я опубликую и приглашения Вы с Юрием должны получить.
Это не мешает провести и отдельную экскурсию, как я и обещал ![]()
По Александр Романов в Ноябрь 30th, 2007 в 05:07
О, супер. ждемс.. ![]()
А что думаете вы?

