Каждый день тысячи спутников, самолетов, камер наблюдения делают миллионы снимков высокого разрешения. Чтобы добыть оттуда полезную информацию, их надо обработать – и эта задача даже на первый взгляд не кажется легкой. Именно благодаря своей сложности (а также большому простору для распараллеливания) она и стала содержанием летнего тура конкурса Intel «Accelerate Your Code», который проходит с 1 мая по 31 августа. В этот раз в условиях конкурса произошли некоторые изменения, а вот главный приз остался прежним – победитель получит ультрабук стоимостью 1000 евро.
Итак, условие задачи звучит так: найти заранее определенные образцы (паттерны) в большом массиве цифровых фото высокого разрешения. Совершенно ясно, что для решения этой задачи понадобятся большие вычислительные мощности, которые далеко не у всех есть под рукой. Предвидя это, Intel подготовила для участников мощные сервера, оснащенные сопроцессорами Xeon PHI (напомню – 60 ядер, 240 потоков!), которые будут доступны всем участникам конкурса – вот первое нововведение. Сразу же отмечу и второе: теперь в конкурсе могут участвовать не только студенты, но и профессиональные разработчики!
Образцы могут быть заданы своей формой, цветом, оттенками, какой-либо другой явной отличительной чертой, однако ситуация осложняется тем, что эта особенность может быть искажена (представьте себе рисунок, нанесенный на одежду), на ее вид влияет освещение, угол зрения, расстояние до объекта и другие нюансы. Ваша программа должна уметь их учитывать. Есть и некоторые послабления, чтобы сложность задачи не зашкаливала: все паттерны специфичны (то есть им не может быть, например, лицо человека), условия их появления всегда примерно одинаковы.
Чтобы облегчить участникам начальный этап решения, Intel, как обычно, предлагает готовый рабочий код, некоторым образом решающий проблему и выдающий результат в правильном формате. Плохая новость состоит в том, что этот код примитивен, не параллелизирован и работает медленно. Однако в качестве «затравки» он подходит хорошо, и организаторы настоятельно рекомендуют им воспользоваться. Ваша задача – внедрить в код необходимый функционал, ускорить и распараллелить его. Обратите пристальное внимание на особенности конкретного паттерна, каждый из них требует индивидуального подхода.
Каким образом будет выбираться победитель? Вот самые основные критерии:
- Отсутствие ошибок в программе, в том числе ошибок параллелизации;
- Точность работы программы – 100% результата не требуется, но чем больше образцов будет найдено, тем больше шансов на победу;
- Скорость работы программы и ее масштабируемость;
- Дополнительным плюсом будет наличие документации к программе, а также активность разработчиков в форумах и блогах Intel Developer Zone.
Теперь о призах для участников из России и Украины. Как уже говорилось, победитель, а, точнее, два победителя получат по ультрабуку. 10 следующих мест получат подарочные карты Amazon на 100 евро, еще 20 следующих – на 50 евро. Отдельные награды ждут коллективы студентов, возглавляемые ментором.
Ну и напоследок важное замечание. Компания Intel проводит 3 этапа конкурса «Accelerate Your Code» в год, каждый из них длится 4 месяца. Получается, что конкурс идет непрерывно, и принять в нем участие никогда не поздно. Не упустите свой шанс получить новые навыки – ну и получить призы, конечно.
Полезные ссылки
Пост на хабре про предыдущий этап конкурса
Главная страничка конкурса
Описание задачи
Форма регистрации
Условия проведения конкурса
Предлагаемый исходный код
Автор: saul