The Raving, A Poem for Parallel Programmers

Print Friendly, PDF & Email

In this special Independence Day guest post, a noted member of the HPC community shares this clever poem modeled after The Raven by Edgar Allan Poe.

The Raving (with a nod to EAP)

Late at night will find me waiting for my stupid program, hating
Every moment that it keeps me from just walking out the door.
Simulations take forever; scientists, we must be clever,
Digitally we endeavor universes to explore.
Experiments are costly, so we solve equations calling for
Multi-teraflops galore.

Programs run, but run too slowly; now it’s time for some unholy
Search to find a better system for our programs to explore.
Systems that we have are dated, purchased when their speed was rated
Fastest, though perhaps inflated, at the job we bought them for.
Now we think it’s time to look into a faster processor.
This becomes my single chore.

For new systems I go shopping, testing, testing without stopping,
Looking for the fastest system with the fastest processor.
After all there’s no denying system vendors are supplying
Benchmark numbers awe-inspiring, just what we are looking for.
On the standard benchmarks these new systems really seem to roar,
Numbers unknown heretofore.

Through the web sites I paraded, ’till our systems are upgraded,
Looking for a faster product with performance I adore.
Frequently I am delighted, faster chips come uninvited,
I could almost get excited, water cooling now called for.
Bigger, faster, better CPUs are what we have in store,
Reads the law by Gordon Moore.

Every month the clocks get faster as the vendors seem to master
Energetic physics just to pack more gates on than before.
Higher densities intending higher clock rates never-ending;
Progress seems to be defending promises of Gordon Moore.
Smaller features, faster clocks, more transistors underscore
A high performance processor.

But to a halt the race comes screeching, as the speeds were barely reaching
Just beyond three gigahertz, and looking like they’d get to four.
Physics laws, when disrespected, cause our yields, when inspected,
to be lower than expected, shrinking profits more and more.
Suddenly a shudder comes that we can feel down to our core:
No more faster processor.

Densities will keep increasing, progress will progress unceasing,
Though we can’t expect to always get a faster processor.
Vendors now are quite emphatic, difficulties symptomatic
Of technology’s dramatic limits are what we’re in for.
Faster clock rates were the goal, but not the answer anymore.
Now we go to Multicore.

Ah, says I, that’s not so tragic, you’ll apply your former magic
I’ll still get performance gains just like I used to get before.
No, the vendor’s head was shaking, progress now will be forsaking
Single thread performance, making multitasking now called for.
Applications need rewriting, if performance needs to soar,
As we move to Multicore.

Parallel is now the answer, new solutions grow like cancer,
Listen to the necromancer preaching from the conference floor.
Give me funding, I’ll deliver, using arrows from my quiver,
Petaflops to make you shiver from your head down to the floor.
My new language / system / tool is just what you are looking for
As you move to multicore.

No, I cried, and you can’t make me; such rewriting just might take me
Months or years, when you consider all the validation chore.
Surely secrets you are hiding for releases coinciding
With your ad campaigns providing clock rates higher than before.
Listen to my urgent plea, and give me what I’m begging for.
Hide from me your Multicore.

Gigahertz has me addicted, speed increasing, unrestricted;
Applications want, they need, must have a faster processor.
All my efforts are devoted, all my talents must be noted,
Program speed must be promoted far past what I had before.
Tell me secrets that will help me solve my flops per second score.
Quoth the vendor, Multicore.

Nay! I cursed him, then reflected, maybe this too soon rejected
Opportunities neglected on a uniprocessor.
Happily I recollected automatically inspected
Programs which were redirected for a vector processor.
Software tuning automatic for a modern multicore?
Can compilers do the chore?

But the numbers are depressing, there’s no method of finnessing,
Memory bandwidth needs addressing for performance times to soar.
Programmers are now found swearing, memory paths the cores are sharing,
Applications need preparing specially for a multicore.
Insufficient just to treat it like a multiprocessor.
Now we’re on a Multicore.

Long ago it was predicted clock rates soon would be restricted.
For years this was contradicted, one thread is all we’d explore.
Now we study multithreading, our new gospel we are spreading,
While we fear the vendor, dreading what will next come out the door.
Can life ever be as simple as it was pre-Multicore?
Quoth the vendor, Nevermore.


  1. Eric Dittmar says

    Just awesome!

    Any decent poetry journal should be proud to publish it.

    Thank you for writing such an enjoyable poem.