Matt Pharr, Intel, ispc: A SPMD Compiler for High-Performance CPU Programming, here. One of Pat Hanrahan’s students at Stanford did http://ispc.github.com. Nice 2012 presentations, covers much of what we were discussing here at Pink I regarding Dr. Johnson’s Black Scholes code, but in a larger context.
Matt Pharr, home page, here.
I joined Google [x] in March 2013. As a side project, I had a great time teaching the 2013 installment of cs348b, the graduate-level rendering course at Stanford this spring.
I was previously a Principal Engineer at Intel, where I was responsible for the design and implementation of ispc, the Intel SPMD Program Compiler, now available in open-source form from github. Before attacking the problem of building compilers for better high-performance programming models for modern CPU architectures, I was the architecture lead of the Advanced Rendering Technology group, which is the group that grew out of Neoptica.
Intel SPMD Program Compiler, here.
ispc is a compiler for a variant of the C programming language, with extensions for “single program, multiple data” (SPMD) programming. Under the SPMD model, the programmer writes a program that generally appears to be a regular serial program, though the execution model is actually that a number of program instancesexecute in parallel on the hardware. (See the ispc documentation for more details and examples that illustrate this concept.)
ispc compiles a C-based SPMD programming language to run on the SIMD units of CPUs and the Intel Xeon Phi™ architecture; it frequently provides a 3x or more speedup on CPUs with 4-wide vector SSE units and 5x-6x on CPUs with 8-wide AVX vector units, without any of the difficulty of writing intrinsics code. Parallelization across multiple cores is also supported by ispc, making it possible to write programs that achieve performance improvement that scales by both number of cores and vector unit size.