Ilya Mirman of Cilk Arts informed me about their blog, which features multicore programming. They have some excellent posts, such as the following two.
What the $#@! is Parallelism, Anyhow?
Global Variable Reconsidered
The first post tries to make it clear about more general and precise quantification of parallelism provided by theoretical computer science. The first important measure is work, which is what you get when you add up the total amount of time for all the instructions.
In our research, we define work in the same way. My Ph.D. advisor has many publications on scalability in the context of parallel computing. We recently wrote a paper on scalability of applications on multicore processors. In Amdahl’s law, speedup is considered with a fixed size application, where sequential portion of the application will dominate after scaling the number of processors (cores). Gustafson’s law scales application size and speedup is measured as the amount of work that can be finished in a fixed time. As time in the work definition is same, the speedup is equal to the number of processors scaled. However, an application may not be scaled in proportion with the number of processor cores. We consider scaling of work using bandwidth of shared resources of a multicore processor (e.g. shared cache, shared memory, etc.) as a constraint. The paper has been accepted for publication and will be available soon.
The second blog entry revisits a popular article published in 1973, titled, “Global variable considered harmful,” by Bill Wulf and Mary Shaw. A excerpt from the blog:
“Thirty-five years later, however, nonlocal variables are still very much in vogue in production code. Moreover, as software developers look toward multicore-enabling their legacy codebases, nonlocal variables pose a significant obstacle to parallelization, because they can cause race bugs, a topic I discussed in an earlier blog. In this blog, I’ll discuss some of the strategies for coping with global and other nonlocal variables when parallelizing software.”
Both are interesting and useful articles.
Links:
What the $#@! is Parallelism, Anyhow?
Global Variable Reconsidered
Cilk Arts Multicore Programming Blog



1 response so far ↓
1 Web Design Company // May 22, 2009 at 11:21 pm
This is very informative