Parallelization of Game AI - Presentation from the Paris Game AI Conference '09
In June 2009 I gave an overview and motivation for Parallelization of Game AI at the Paris Game AI Conference '09. The conference was a blast - great discussions with many interesting people and inspiring presentations - look out for the next installment, I will do so for sure!
Alex and Petra Champandard from AiGameDev.com, the main organizers and master-minds behind the Paris Game AI Conferences, just published the video and audio recordings of my presentation and put it online for AiGameDev.com premium members. Petra did a great job editing the recordings and put in a lot of hard work to synchronize my talk with the downloadable slides.
Video and slides at AiGameDev.com:
- public presentation website with slides (w/o notes)
- premium members only website with video and audio recordings
Slides with speaker notes can also be found at bjoernknafla.com:
- public slides (with notes)
Slides-movie and brief presentation recap
I find it extremely awful to watch and listen to myself / my presentation. I worked very hard on the talk and created slides that were full of animations to explain the presented parallelization concepts - making the slides a kind of script to follow during speaking. A script that needs accurate transitions and explanations under time pressure to stay inside the presentation time slot. This rigid structure to follow in combination with my nervousnes lead to lots of "ahs" and "errs" and let me struggle with my English speaking skills. To amend for th is, I created a quicktime movie from the slides showing the actual animations and added a coarse talk outline below. This in combination with the speaker note extended slides and the video recording at AiGameDev.com should give you much of the useful information of my talk.
Introduction
- Why we need parallel programming: parallel hardware, performance.
- Parallel programming isn't easy - but no rocket-science either:
- parallel programming errors: race conditions, deadlocks,
- performance problems: contention,
- be aware that order of parallel instruction execution isn't deterministic.
- Parallel hardware dictates how to program for performance:
- maximize throughput - to fight memory latency,
- maximize memory locality - to save bandwidth,
- minimize (false) sharing - to prevent contention,
- combined: balance maximization of locality vs. minimization of sharing.
- Artificial intelligence (AI) model referenced in the talk: agent-based AI.
References:
- David Callahan, Design Considerations For Parallel Programming, MSDN Magazine, 2008
- Vincent Scheib, Multi-Platform Multi-Core Architecture Comparison, Beautiful Pixels blog, 2008
