Friday, April 15, 2011

Exascale programming: Won't be and will be

There is a very interesting article in hpcwire written by Michael Wolfe (PGI) on the "emerging" of exascale programming: http://www.hpcwire.com/features/Compilers-and-More-Programming-at-Exascale-117593783.html?viewAll=y There are some interesting points we can learn: Exascale Programming: What It Won't Be
  • It's not a library: it hides the algorithm, data structures, and performance aspects
  • It's not a C++ class hierarchy or template library: Too much abstraction
  • It's not a domain-specific language: DSL don't have a large enough user community, not enough support.
  • It's not OpenCL: very low level, too complicated.
  • It's not a whole new language: most programmers avoid adopting a new language for fear that it will die
  • It's not easy. The idea of making parallel programming easy is silly (?)
  • It's not just parallelism: the key isn't parallelism, it's performance
Exascale Programming: What It Is
  • It supports all levels of parallelism, from node parallelism down to vector and pipeline parallelism, effectively.
  • It can map an expression of program parallelism (a parallel loop, say) to different levels of hardware parallelism (across nodes, or to a vector unit) depending on the target.
  • It supports the programmer with lots of feedback.
  • It supports dynamic parallelism, creating parallel tasks and threads when needed.
  • It efficiently composes abstract operations
  • It is self-balancing and self-tuning.
  • It must be resilient.
I agree most of the above points, except for the exascale programming won't be easy. Yes, effective parallel programming is not easy, and easy parallel programming is not effective. But this does not mean there is no way to be both easy and effective. I think the main key is about productivity. It is okay to be not efficient as long as we can tolerate the performance.

1 comments:

Johann Q said...

Hello Laksono,

I don't want to spam your blog with a link to the site, as that probably might make the wrong impression, but let me know, if you are interested in checking out a "HPC in the cloud" startup's beta!

Regards,

Johann