?

Log in

No account? Create an account
И вновь данайцы - Valse oubliée — LiveJournal [entries|archive|friends|userinfo]
aruslan

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]
[ delicious | aruslan's delicious ]

Links
[Links:| Tags Profile Friends FG1 PP gamedev XNA FF Entries Comments Memories ]

И вновь данайцы [Jan. 24th, 2009|04:06 pm]
aruslan
[Tags|, , ]

Забавно рассказывать о map и fold/reduce - и говорить о MapReduce.
Примерно так же забавно, как говорить о map и fold/reduce, объясняя fold/refold/unfold.
Википедия однозначно приносит плоды.

Зато ликбез был успешно проведён аж на трёх фронтах. И это радует.
LinkReply

Comments:
[User Picture]From: aruslan
2009-01-26 10:03 am (UTC)
Хот-колд преобразование делается как часть PGO и разделяет структуру на горячие совместно-используемые и холодную части.

АоС - массив структур.
СоА - структура массивов.

В мире эльфов это неважно, а у нас - PGO потому что разные view.
(Reply) (Parent) (Thread)
[User Picture]From: loyso_b
2009-01-26 10:53 am (UTC)
AoS - антропологично, а SoA - для PPU?
(Reply) (Parent) (Thread)
[User Picture]From: loyso_b
2009-01-26 10:56 am (UTC)
* тьфу, SPU!
(Reply) (Parent) (Thread)
[User Picture]From: aruslan
2009-01-26 08:45 pm (UTC)
Для полиморфизма через мозг а не через как обычно.
Ну и для железа, очевидно.
(Reply) (Parent) (Thread)
[User Picture]From: north_log
2009-01-27 09:11 pm (UTC)
>Для полиморфизма через мозг а не через как обычно.

То есть объекты одинаковых типов группируются в SoA и если необходимо вызывать виртуальную функцию, то она вызывается однажды для всей группы?
А внутри у неё много-много циклов по этим самым A ?
При AoS, цикл по А с вызовом виртуальной функции для каждой S, так ?

вместо O(n) витуальных вызовов, делаем O(1*С) С- количество групп однотипных обьектов ?
тут же профит в кэшмиссах, ага.
(Reply) (Parent) (Thread)
From: (Anonymous)
2009-01-27 09:15 pm (UTC)
и sizeof(vptr) памяти можно эконимить для каждого обьекта в группе ...


>>Примерно так же забавно, как говорить о map и fold/reduce, объясняя fold/refold/unfold.

реквестирую конспект лекции! (куда-нибудь на blog.gamedeff) :)
(Reply) (Parent) (Thread)
[User Picture]From: aruslan
2009-01-28 02:58 am (UTC)
Грубо - да.
Про мозг - в authoring данных есть тенденция объединять мягкое и тёплое.
Например - звуки, графику, игровые свойства и т.п.
Получаются такие развесистые "графы всего".

На выходе обычно имеет смысл хранить звуки отдельно, рендерные отдельно, игровые данные рефолднутыми и т.п.

Ну и перешить объекты между собой где надо (где важно иметь отличный lifetime или принципиально надо дрочить на identity).
Получается "набор" "массивов", формирующих собою "гиперграф".

Про железо - префетчи и DMA-трансферы получаются влёт.
Плюс сильно проще управлять графами зависимостей тасков/джобов.
(Reply) (Parent) (Thread)