Past Meeting - June
23, 2005
Going Wide: The transition to multi-core architectures
Thursday, June 23, 2005
Summary
Adam Lake gave a riveting talk on the rationale and art of multithreaded
programming. He showed numerous examples of processor systems which
already have a degree of multithreading, including Intel's network processor,
media processor, Pentium 4 (with hyperthreading), and the Pentium 4
Extreme Edition (with hyperthreading and multiple cores). He explained
that the processor industry will rely on parallel execution for future
performance gains because for single threaded processing, the ratio
of performance to electrical power (and heat dissipation) is turning
unfavorable as chips grow larger. He demonstrated OpenMP, a technology
which allows loops and other code to be scheduled on available processors
on the fly, thus farming out portions of a function without forcing
the programmer to rebuild code under a threading model. He also discussed
debugging environments and profiling tools for multi-threaded environments.
While much of Adam's talk had to do with graphics processing, it seems
clear that other types of programming could benefit from this approach.
Furthermore, it seems very clear that as existing processor architectures
max out, we will all do well to adopt multi-threading as a dominant
facet of program architecture.
Abstract
Intel has
dramatically increased processor performance in each generation by increasing
clock rates, increasing the number of pipeline stages, and world class
manufacturing capabilities. 2005 marks a turning point in CPU architecture
as we begin a new trajectory towards multi-core
architectures -- a transition from increasing pipeline depth and
frequency to increasing the number of pipelines. This transition has
been necessitated by ever increasing distance between resources on die
as well as power envelope requirements. This talk will focus on the
software engineer's problems with this inflection point, as well as
the tools and technologies Intel is bringing to bear on these problems,
along with my experience leveraging these tools on 3D game engines.
I will also speculate on the future programming models these machines
necessitate and current work and inspiration in this area.
Presenter Bio
Adam Lake is a Sr. Software
Engineer in the Software Solutions Group leading The Modern Game Technologies
Project at Intel. Adam has held a number of positions during his 7 years
at Intel, including research in non-photorealistic rendering and delivering
the shockwave3D engine. He has designed a stream programming architecture,
including the design and implementation of simulators, assemblers, compilers,
and programming models. Previous to working at Intel, he obtained a
MS in computer graphics at UNC-Chapel Hill and worked in the Computational
Science methods group at Los Alamos National Laboratory. More information
is available at Adam's Website.
He has 30 patents filed or pending in the areas of computer graphics
and computer architecture, has several publications in computer graphics,
and has reviewed papers for SIGGRAPH, IEEE, and several book chapters
on computer graphics. In his spare time he is a mountain biker, road
cyclist, hiker, camper, avid reader, snowboarder, and Sunday driver.