Добро пожаловать в сеть Intel® Software Network вход | зарегистрироваться | помощь |
Поиск в форумах и блогах Intel® Software Network
в Вперед

Как насчет графики для Жизни?

Последнее сообщение 01-24-2008, 19:43 размещено Dmitry O.. Ответов - 9.
Сортировать сообщения: Назад Вперед
 01-05-2008, 11:54 30221031  

Как насчет графики для Жизни?

Очевидно, что решение должно быть сделано в виде консольной программы, однако GUI может быть очень полезным при тестировании и отладке в процессе программирования. Версия с GUI может быть оформлена как инструмент и приложена к основному решению. Этот инструмент может использовать те же модули Жизни, что и основное решение (с директивами условной компиляции). Как насчет дополнительных баллов за такой инструмент? (Для его хорошей работы может потребоваться дополнительная синхронизация потоков.)

 

Кстати, и для TBB это будет хороший PR – а то может сложиться впечатление, что TBB только для консоли ;)

 

-- Михаил (mt2).

 
 01-09-2008, 13:55 30221033 в ответ на30221031  

На: Как насчет графики для Жизни?

день добрый, Михаил. подозреваю, что нет смысла повторять ответ Клэя. Идея отличная, но страшно представить как это может все усложнить :) Спасибо за Новогодние поздравления! -Марианна
Марианна Светлосанова
Intel® Software Network
 
 01-10-2008, 22:08 30221037 в ответ на30221033  

На: Как насчет графики для Жизни?

Добрый вечер, Марианна!

Спасибо за ответ! между тем в ожидании Вашего ответа я сделал GUI-инструмент, вопреки опасениям Клэя это оказалось не столь сложно. В особенности на Delphi ;) Теперь вот не знаю что делать, прикладывать ли этот инструмент к решению, или отсылать решение без него. По логике, в отличие от всех предыдущих задач, данная задача очень незаметно может быть испорчена оптимизацией - в итоге мы получим некий работающий клеточный автомат, но в точности не соответствующий правилам "Жизни". Тут уже жалели судей по поводу сложностей проверки предыдущей задачи, их участь в данной задаче будет еще хуже - в условиях практически не предусмотрено средств проверки соответствия правилам "Жизни". В своем инструменте я реализовал средства вплоть до сравнения для каждого поколения с результатами работы процедуры, реализующей примитивный алгоритм "Жизни" с последовательным перебором всех клеток. Для упрощения судейства нужно, чтобы подобное сделали и другие участники. Для этого нужно пообещать им (т.е. нам :) бонус, собственно об этом и был мой вопрос.

Еще раз спасибо,

-- Михаил (mt2).

 
 01-11-2008, 15:01 30221042 в ответ на30221037  

На: Как насчет графики для Жизни?

Привет,

Как сказал Клэй, судейство будет проходить по принципу "кто быстрее подсчитает N поколений". Таким образом, насколько я понимаю, проверка правильности результата будет заключаться в простом сравнении выходных файлов. В идеале, результат должен полностью совпасть с результатом исходного нераспараллеленного алгоритма. Разницу легко посмотреть любым дифом, либо в Excel, либо написать что-то свое. Поэтому особых проблем с судейством наверное все-таки не будет.

А GUI посмотреть любопытно, так что шлите - лично мне интересно.

Удачи,

Дмитрий Оганезов
Intel® Software Network
 
 01-12-2008, 23:17 30221044 в ответ на30221042  

На: Как насчет графики для Жизни?

MAD\doganezo:
Привет,

Как сказал Клэй, судейство будет проходить по принципу "кто быстрее подсчитает N поколений". Таким образом, насколько я понимаю, проверка правильности результата будет заключаться в простом сравнении выходных файлов. В идеале, результат должен полностью совпасть с результатом исходного нераспараллеленного алгоритма. Разницу легко посмотреть любым дифом, либо в Excel, либо написать что-то свое. Поэтому особых проблем с судейством наверное все-таки не будет.

А GUI посмотреть любопытно, так что шлите - лично мне интересно.

Удачи,

Привет! Спасибо за пожелания!!!

С теоретической точки зрения, совпадение небольшого, пусть и основного участка, всего поля с эталоном не гарантирует правильность. Возможны всякие пограничные явления и т.д. (Можно подумать, как слегка уменьшить поле ;) Кроме того, у нас ведь будут многопоточные решения, и тут много чего можно исследовать с помощью GUI. Например, в одной процедуре массив соседей увеличивается, в другой уменьшается, если мы запустим эти процедуры параллельно, нужно ли синхронизировать изменения в этом массиве? Если процедуры всегда обращаются к разным элементам, то можно и не синхронизировать и выиграть изрядное время в скорости, а если иногда элементы и совпадают, то насколько часто? Может, вероятность того, что потоки обратятся в одно и то же время к одному и тому же элементу, ничтожно мала? Так что и в этом случае решению без синхронизации скорее всего повезет, хотя оно и будет потенциально неверным. Отследить подобные проблемы анализом только кода будет непросто.

Я пришлю GUI-инструмент, а не снизят ли мне за это очки? Раз не одобрено. Хотелось бы надеятся на обратное;) Может, выложить отдельно, напимер, в эту тему? Мне тоже будет интересно улышать мнения, кому и насколько этот инструмент представляется полезным для решения поставленной задачи.

И Вам удач,

Михаил (mt2).

 
 01-13-2008, 20:10 30221045 в ответ на30221044  

На: Как насчет графики для Жизни?

Чесно говоря, я глубоко в распараллеливании "жизни" не копался, но знаю что эта задача входит в примеры TBB. Поэтому анализ результатов, насколько я понимаю, интересен скорее команде TBB чем жюри конкурса - для жюри, предполагаю, достаточно будет проанализировать некоторое эталонное поле.

Очевидно, что из всех заданий данное ("жизнь") наиболее интересно с т.з. графики. А может есть уже готовые симуляторы в интернете, не встречали?



Дмитрий Оганезов
Intel® Software Network
 
 01-14-2008, 1:23 30221046 в ответ на30221045  

На: Как насчет графики для Жизни?

MAD\doganezo:
Чесно говоря, я глубоко в распараллеливании "жизни" не копался, но знаю что эта задача входит в примеры TBB.

Цитирую задание:

 

"Типовой алгоритм моделирования проверяет все ячейки решетки, подсчитывает соседей для каждой ячейки, и определяет остается ли клетка живой, умрет или родится в данном поколении.

 

Альтернативный алгоритм хранит список клеток, которые могут потребовать внимания в следующем поколении. Таким образом, вычисления происходят только для ячеек, которые могут изменить статус или повлиять на его изменение. Данный алгоритм приведен в приложенном коде. Текстовый файл с более детальным описанием ключен в архив кода."

 

Алгоритм Жизни, описанный, в частности, в рекомендуемой на сайте TBB книге (TBB's O'Reilly Book: Intel® Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, by James Reinders) - это "типовой", а в задании предложен "Альтернативный".

Поэтому анализ результатов, насколько я понимаю, интересен скорее команде TBB чем жюри конкурса - для жюри, предполагаю, достаточно будет проанализировать некоторое эталонное поле.

Да, только распечатывается это поле далеко не полностью. А если полностью: 5 тысяч строк по 5 тысяч символов (и на выводе ничто "не скусит"), то может быть верны уже высказанные опасения на американском форуме, что мы вернулись к ситуации 1ой задачи, где значительную часть времени занимал I/O ;)

Очевидно, что из всех заданий данное ("жизнь") наиболее интересно с т.з. графики. А может есть уже готовые симуляторы в интернете, не встречали?

Одну из свежих ссылок подсказал Клэй на американском форуме, кстати, там рашено на TBB.

-- Михаил (mt2).

 
 01-24-2008, 18:08 30221056 в ответ на30221042  

На: Как насчет графики для Жизни?

MAD\doganezo:

А GUI посмотреть любопытно, так что шлите - лично мне интересно.

См.:

http://softwarecommunity.intel.com/isn/Community/en-US/forums/30247676/PostAttachment.aspx

:-)

 
 01-24-2008, 18:14 30221057 в ответ на30221056  

На: Как насчет графики для Жизни?

mt2:

MAD\doganezo:

А GUI посмотреть любопытно, так что шлите - лично мне интересно.

См.:

http://softwarecommunity.intel.com/isn/Community/en-US/forums/30247676/PostAttachment.aspx

:-)

А выложить сюда не получилось, сервер обругал :-(

-- Михаил.

 
 01-24-2008, 19:43 30221058 в ответ на30221057  

На: Как насчет графики для Жизни?

Прикольно! Надо подобрать красивые исходные данные.

Разбираюсь с форумом, завтра отвечу поподробнее (и на Ваш e-mail тоже)

Дмитрий Оганезов
Intel® Software Network
 
Просмотреть как поток новостей RSS в XML

Ярлыки


Тег для данного сообщения

...

Теги сообщества

...