Конкурс з програмування в середовищі CUDA в Україні
Корпорація NVIDIA спільно з українським партнером, компанією Юстар, оголошують про проведення конкурсу по паралельному програмуванню в середовищі CUDA.
Головна мета конкурсу — популяризація CUDA серед українських розробників програмного забезпечення, фахівців і вчених, що використовують паралельне програмування, а також студентів технічних ВУЗів.
Технологія NVIDIA CUDA ™ — це єдина середовище розробки на C, що дозволяє програмістам і розробникам писати програмне забезпечення для вирішення складних обчислювальних задач за менший час завдяки багатоядерної обчислювальної потужності графічних процесорів. У світі вже встановлені мільйони GPU з підтримкою CUDA, і тисячі програмістів вже безкоштовно користуються інструментами CUDA для прискорення додатків – від кодування відео та аудіо до пошуків нафти і газу, моделювання продуктів, медичних зображень та наукових досліджень.
Конкурс відбудеться в період з 15 лютого по 14 травня 2010.
Деталі конкурсу та умови участі на сторінці Конкурс CUDA
P.S. Можно поучаствовать, если придумать какую-нибудь нетривиальную тему:)
понедельник, 8 февраля 2010 г.
Подписаться на:
Комментарии к сообщению (Atom)
Поиск больших простых чисел? ;) Ломать RSA? ;)
ОтветитьУдалитьТривиально :(
А! Во! Собрать
http://uk.eternityii.com/
Eternity II is the puzzle with the $2million prize up for grabs which launched world-wide on 28th July 2007.
Правда там все грустно, даже для суперкомпьютера...
Я бы не решился тратить время на решение конкретной задачи.
ОтветитьУдалить1) Меня в последнее время интересуют вопросы расслабленных моделей памяти (JMM, records in RDBMS) как элементов некоторого "пространства" моделей памяти. И в этом контексте анализ - возможно ли применить методы Теории Категорий к элементам этого пространства.
Т.е. я бы исследовал - меру качественных различий между, моделью памяти CUDA и, скажем, JMM (Реальный контекст - построение транслятора многопоточной программы Java<->CUDA).
Или еще шире - охарактеризовать в максимально общих терминах класс систем "родственных"/"эквивалентных" по модели памяти к CUDA.
2) Есть ощущение, что чем "расслабленнее" и "изолирование" модель памяти, тем более она способствует распараллеливанию программы на многоядерной (или распределенной) системе. Вопрос в попытке охарактеризовать степень расслабленности (рассогласованности) памяти в некоторых математических терминах. Наличие такого критерия могло бы подсказать, скажем, способствует ли наличие некоторой особенности языка к распараллеливанию.
---
Ну это все пока на уровне ощущений.
Пока собираю весь материал, который соответствует расслабленным, несогласованным, с распределенными состояниями систем.
ОтветитьУдалитьНу возможно это тоже пригодится
ОтветитьУдалитьhttp://www.rsdn.ru/forum/cpp/3068646.flat.1.aspx
и дальше по тексту.
> Я бы не решился тратить время на решение конкретной задачи.
Ну я так понимаю, что участие в конкурсе подразумевает именно решение конкретной задачи :) Т.е. если цель именно участие в конкурсе, а не что-нибудь другое.
> Т.е. я бы исследовал - меру качественных различий между, моделью памяти CUDA и, скажем, JMM (Реальный контекст - построение транслятора многопоточной программы Java<->CUDA).
За три месяца? Исследовать за три месяца (part-time) реально, наверное, а вот написать полноценный транслятор Java<->C, как-то не очень. И не совсем понятно, насколько это осмысленно, насколько я понимаю, графические процессоры расчитаны на ограниченный класс задач, и решать на них остальные примерно как колоть орехи микроскопом.
Т.е. предложенные мной задачки - они, конечно, бестолковые, но и исследования в рамках конкурса... на выходе должен получиться некий код, который делает что-то осмысленное на этом процессоре.
> Есть ощущение, что чем "расслабленнее" и "изолирование" модель памяти, тем более она способствует распараллеливанию программы на многоядерной (или распределенной) системе.
Расслабленная модель - это та, которая не дает гарантий, в каком порядке будет записана информация на самом деле? И где повторная запись в одну и ту-же ячейку может опередить предшествующую, даже на одном процессоре, что приведет к тому, что вместо второго значения там окажется первое?
Вот, кстати, еще интересная ссылочка...
ОтветитьУдалитьhttp://hpc-russia.ru/book_ready.html
"Расслабленная модель" - меня интересует скорее аспект допустимости несериализуемости действий(и "степени" этой несериализируемости - БД-шники ищут способы ее сравнивать(скажем Figure 2 тут - http://www.cs.umb.edu/~poneil/iso.pdf)) из различных потоков/транзакций. Так как за сериализируемость приходится платить плохой масштабируемостью (из-за необходимости синхронно согласовывать действия на нодах/потоках). Но БД-шники(на том уровне которго я достиг) 1)либо разделяют уровни сериализируемости исследуя реакции на "феномены"(dirty write, dirty read, phantoms, etc) 2)либо исследуют и сравнивают конкретные модели (блокировочники, версионники, оптимистичный ресолв в момент коммита, etc). Но я не нашел пока достаточно общей теории описывающей явление несериализируемости.
ОтветитьУдалитьТакже интересно было бы исследовать свойство "изолированности" конкретных систем. Скажем система состоящая из двух пар актеров делающих пинг-понг сообщениями в паре с отсутствием всяческих глобальных переменных и шаред мемори очевидно идеально масштабируется с одного ядра на два или одного нода на два.
Но интересно было бы иметь алгоритм, который бы 1)либо по двум реализациям какой-то системы говорил какая "изолированние"/"автономнее" и лучше масштабируется. 2) либо для данной системы позволяла найти "моменты" которые сдерживают масштабируемость. Моментом может быть не только "место"(скажем global sync counter) а "аспект" архитектуры (сам пока точно не понимаю что это может значить).
Собственно просто сейчас столкнулся на новой работе(GridDynamics.com/Mirantis.ru) как раз с таким классом задач, скажем разнесение одного датасентра VoIP-сервера на несколько датацентров с поддержанием некоторой степени "согласованности" отдельных центров. Хитрость в том, что такие бла-бла-бла как CAP-теорема действительно помогают мыслить о том, чего можно достичь, но хотелось бы так же иметь инструмент сравнения различных архитектур для такой задачи.
>"Ну я так понимаю, что участие в конкурсе подразумевает именно решение конкретной задачи :) Т.е. если цель именно участие в конкурсе, а не что-нибудь другое."
ОтветитьУдалить--
Скорее 1)"засветится" 2)представить на анализ исследование "ответственным мужам" свое исследование.
Писать конкретный код для CUDA - не слишком большое счастье. Тут я реализую свою потребность в теоретических исследованиях, реализацию конкретных проектов я сейчас делаю на j2ee. Переходить с j2ee на cuda - поменять шило на мыло:).
>"За три месяца? Исследовать за три месяца (part-time) реально, наверное, а вот написать полноценный транслятор Java<->C, как-то не очень."
---
Я бы рассматривал это скорее как теоретическую работу. Поиск истин:). Конкретный транслятор - хм... как по мне лучше быть автором статьи цитируемой сотнями(тысячами, миллионами!) создателей трансляторов с одного многопоточного языка на другой.
> Скорее 1)"засветится" 2)представить на анализ исследование "ответственным мужам" свое исследование.
ОтветитьУдалитьИМХО, это можно сделать замечательно в любое время, независимо от конкурса.
> Писать конкретный код для CUDA - не слишком большое счастье.
Это точно. Берем С. Берем доку. Пишем :) Все равно все упирается в паралелизацию алгоритма.
> Конкретный транслятор - хм... как по мне лучше быть автором статьи цитируемой сотнями(тысячами, миллионами!) создателей трансляторов с одного многопоточного языка на другой.
Ну миллионов создателей трансляторов - я думаю не наберется :)