Tim Sweeney at JHU
Tim Sweeney, founder of Epic Games, gave a lecture on “Programming the Next Decade of CPUs and GPUs” at Johns Hopkins University yesterday. JHU is a quick drive from my house, so I thought I’d swing by. I met Promit and some of his co-workers from Day One, and we filed in to the basement lecture hall for the main event.
The lecture, I must admit, started off a bit slow. The first few slides had a very “student oriented” feel to them — the audience, after all, was a collection of computer science (or similar) students who may not actually have had any practical experience with game development technologies, graphics in particular. Fortunately, since time was apparently an issue, Sweeney was able to move on to more advanced material rather quickly.
The material focused on concurrency issues, such as the fact that multicore, vectorized processing is the axis along which computing power will scale in the future (rather than increased clock speeds and denser transistor packaging per-core) and that developers are going to need to adapt, lest their competitors do so in their stead and gain advantage. This idea isn’t new, of course. Herb Sutter wrote about this coming shift back in 2005 in an article titled “The Free Lunch is Over: A Fundamental Turn Toward Concurrency in Software.” Sweeney himself has spoken about the selfsame issue as well in prior talks, and he echoed some of that yesterday.
He made a lot of interesting points regarding the difficulty of writing properly scalable routines in languages like C++ or C#, which have rather rudamentary native support for concurrency and no mechanisms to really enable the respective compilers to aggressively parallelize the generated code. Much of his speculation on ways this could be improved borrowed heavily from functional languages (he seems very fond of Haskell, in particular) and research languages. Functional languages are primarily found in academic domains, and it would be really neat to see more of the concepts employed by those languages integrated into mainstream game development.
I went looking for the slides, but could only come up with the official announcement of the lecture. However, the bulk of the interesting material in the slides is quite similar to that of a lecture he gave back in 2006, which I touched on above. You can find slides to the 2006 lecture here. If I can find the slides to yesterday’s lecture, I’ll put a link up.
In the meantime, watch Promit’s GDNet journal. He had a chance to sit down with Sweeney at dinner, so he’s probably got some interesting things to talk about.
