Tag Archives: performance

Parallel Programming: Amdahl’s Anguish

The initialization portion of a kernel or server application may be amortized over an arbitrarily large runtime, limited only by the robustness of the kernel or application. If the runtime portion of that kernel or application is fully parallel, Amdahl’s … Continue reading

Posted in Uncategorized | Tagged , , , | 2 Comments

Parallel Programming: Bogus Benchmarks

Benchmarking has a checkered history in IT. It is not for nothing that some have paraphrased the famous and well-worn quotation “lies, damned lies, and statistics” to “lies, damned lies, and benchmarks.” This is of course unfair to benchmarks, which … Continue reading

Posted in Uncategorized | Tagged , , , | Comments Off on Parallel Programming: Bogus Benchmarks

Parallel Programming: Sequestered Source Code

Earlier, we noted that parallel programming requires additional planning. Failure to properly carry out this additional planning can result in deadlocks, data races, livelocks, and the usual litany of perils of parallelism. It is important to note that many of … Continue reading

Posted in Uncategorized | Tagged , , , | 3 Comments

Parallel Programming: Dismal Designs, Atrocious APIs, and Crufty Code

Imagine a software project that has been written and maintained for many years as a single-threaded program. In such an environment, using a singleton object to hand out consecutive transaction IDs is the most straightforward thing in the world: simple, … Continue reading

Posted in Uncategorized | Tagged , , , | 5 Comments

Parallel Programming: Parallel Paranoia

It is all too easy to feel smug when remembering all the dismissals of parallelism, some as recent as five years ago. These dismissals portrayed parallelism as an aberration that would soon be swept into the dustbin of computing history … Continue reading

Posted in Uncategorized | Tagged , , , | 5 Comments

Parallel Programming: Uniprocessor Programmers and Sequential Staff

If the demand for parallel programmers has outstripped supply, then why not simply train up more parallel programmers? After all, there are a lot of parallel programs out there, and the developers who created them did not spring fully formed … Continue reading

Posted in Uncategorized | Tagged , , , | 6 Comments

Parallel Programming: Embarrassing Examples

Later in this series of postings, we will get back to the question of what lessons from the old Great Software Crisis might be applied to the new Great Parallel Software Crisis. In the meantime, this post will look at … Continue reading

Posted in Uncategorized | Tagged , , , | 8 Comments

Parallel Programming: Heeding History

Given that parallel systems have been in existence for decades, it is worth asking why they have caused so much fuss over the past few years. Many argue that this is due to the end of Moore’s-Law-induced frequency scaling, while … Continue reading

Posted in Uncategorized | Tagged , , , | 5 Comments

Parallel Programming: Inappropriate Intuitions

I had the good fortune to attend a panel on parallel-programming education at the recent SC09 conference. To their credit, many of the panelists noted that parallel programming was not all that hard, and many of them took their more … Continue reading

Posted in Uncategorized | Tagged , , , | 3 Comments

When is it a good idea to use a reader-writer lock?

Reader-writer locks can certainly cause problems if used carelessly, the problems including cache thrashing, write-side contention, and poor scaling. But it is a rare tool that does not have some jobs that it is good for, so it is reasonable … Continue reading

Posted in Uncategorized | Tagged , , | Comments Off on When is it a good idea to use a reader-writer lock?