Author's Blogs

JuliaCon 2015 coming up
By Arch D. Robison (Intel) Posted on 05/31/15 0
The conference for the Julia programming language happens June 24-27 in Boston.
Profiling Julia code with Intel® VTune™ Amplifier
By Arch D. Robison (Intel) Posted on 10/11/13 0
[2013 Oct 17: Blog updated to split patch into two patches, one for Intel® VTune™ Amplifier changes and one for MKL/ifort changes.] [2013 Oct 22: Support for Intel® VTune™ Amplifier became part of Julia master sources.  Look for USE_INTEL_JITEVENTS in Julia/Make.inc for how to enable Amplifier s...
Voromoeba - video game based on Voronoi diagrams
By Arch D. Robison (Intel) Posted on 01/15/13 0
I recently released Voromoeba 1.1, a freeware PC game.  In it you are a amoeba-like creature who eats plants, defends against predators, and advances to increasingly tricky levels. What sets Voromoeba apart is that almost every image is rendered as a Voronoi diagram, even the text The technical c...
FFT puzzle - convolution without an inverse FFT
By Arch D. Robison (Intel) Posted on 10/20/12 2
This is a puzzle for those who know Fourier transform math.  Suppose you want to do a circular convolution of two complex-valued sequences A and B, each of length n.   It's well known that you can do it by: Use a forward FFT to transform A and B into sequences a and b respectively. Do elementwise...
Specification for Low Overhead Tool Annotations Released
By Arch D. Robison (Intel) Posted on 11/11/11 2
Program analysis tools can be valuable for debugging program correctness and performance issues, even more so for multi-threaded programs.   Some of these tools need to know about certain events in the program. For example, race detection for Intel® Cilk™ Plus programs requires knowing precisely ...
New Rules for Array Sections in Intel® Cilk™ Plus
By Arch D. Robison (Intel) Posted on 07/26/11 0
This blog covers two important changes in the new specification to improve the language extension. One permits compilers to generate more efficient code. The other resolves a fundamental conflict that array sections brought up.
Lambda + std::move + Array Notation
By Arch D. Robison (Intel) Posted on 05/05/11 1
Here is an interesting example of combining new language features. I needed to write a routine similar to std::copy, except that the routine needed to destroy its source sequence; i.e., revert it to raw memory.  I was amused that I could exploit both C++ 2011 and the Intel Array Notation extensio...
Detecting Theft by Hyperobject Abuse
By Arch D. Robison (Intel) Posted on 11/22/10 1
Intel® Cilk™ Plus employs work stealing, where threads steal work from other threads.  Though a good Intel Cilk Plus program should not depend on whether work is stolen or not, you might be curious about when it occurs in a program.  This blog shows how to satisfy that curiousity with a holder hy...
Thread Parallelism Using Cilk Notation for C/C++
By Arch D. Robison (Intel) Posted on 09/13/10 6
Getting top performance out of  modern processors requires both SIMD and thread  parallelism.   Intel® Cilk Plus is an easy way to express both.   My first blog covered the SIMD part.   This blog explains the thread part. Background As outlined in the first blog, fork-join and SIMD parallelism c...
SIMD Parallelism using Array Notation
By Arch D. Robison (Intel) Posted on 09/03/10 1
Are you a C or C++ programmer who has ever envied APL or Fortran 90's array expressions?   Read on.  If you don't know what array expressions are, then you really should read on, to find out what you should have envied.  In any case, the envy is over, because  Intel Parallel Composer 2011 brings ...