Back to photostream

Conclusion- How to think about parallel programming NOT - YOW 2010 Melbourne

How to Think about Parallel Programming---Not!

Anyone remember the old days, when for good performance you had to worry carefully about which register should hold which variable, and when? Sometimes we still do this to get extremely high performance from critical inner loops, especially when using specialized processing hardware such as GPUs.

 

On the other hand, we have been able to write ever more complex and ever more capable software systems only by sacrificing such micromanagement and using general-purpose tools and abstractions for coding the bulk of our software. Along the way, we have discovered that code generated by automated tools often does a better job than hand-crafted code.

 

And we learn to code in such a way that the behavior of our code does not depend critically on the detailed optimization decisions that we have delegated to the tools. If we want to let a compiler's register allocator have the freedom to put variables in registers, we stop writing code takes the address of a variable, as in the C expression & myvar. If we want to allow an automatic storage allocator to do its job, we must write code that works properly independently of where an object or array happens to have been allocated, and perhaps independently of whether the object or array happens to be automatically relocated in the middle of a computation. Once we do this, we don't have to think about memory placement. Good programming language design can get us from the place where we must remember "don't use this difficult feature" to the place where it's not even on the radar screen because the language provides other, better ways to think and get things done. (Example: Java doesn't even have a way to take the address of a variable.)

 

Likewise, the best way to write code for multiple processors is not to have to think about multiple processors. We need to get to the point where we worry about the assignment of tasks to processors just about as much as we worry about the assignment of data to memory---which is to say, only for truly critical portions of the code---and for the most part leave such decisions to automated tools.

 

This will require further adjustments in our programming habits---adjustments that, we argue, in the end will make programs easier to understand and maintain as well as easier to run on parallel processors. The key is not to focus on a particular technology but on useful invariants. Here, as in the past, good programming language design can help to encourage good programming habits.

 

Target audience: Developers with an interest in parallelism and/or computer history

 

Speaker Information

Guy L. Steele, Jr.

Keynote Speaker

Language Designer and Author

Fellow Sun Labs, Oracle

Links:

Websites: labs.oracle.com/projects/plrg projectfortress.sun.com

Twitter: I am not a member of Twitter. I generally deal in ideas that require paragraphs, or perhaps full-blown essays, rather than single sentences.

Books: Coders at Work The Java Language Specification Common LISP, The Language C: A Reference Manual

---

About YOW! Australia 2010

The YOW! 2010 Australia Software Developer Conference is a unique opportunity for you to listen to and talk with international software experts in a relaxed setting.

 

Here's why you should want to attend:

 

* concise, technically-rich talks and workshops delivered

without the usual vendor-hype and marketing spin

* broad exposure to the latests tools and technologies,

processes and practices in the software industry

* "invitation only" speakers selected by an independent

international program committee from a network

of over 400 authors and experts

* a relaxed conference setting where you get the rare opportunity

to meet and talk with world-reknowned speakers face-to-face

* an intimate workshop setting where you are able

to benefit from an in-depth learning experience

* a truly unique opportunity to make contacts and network

with other talented Australian software professionals

* you'll be supporting a great charity. Ten dollars from every registration will be donated to the Endeavour Foundation.

 

website: YOW! 2010 Melbourne

venue: Jasper Hotel, Melbourne

1,572 views
0 faves
4 comments
Uploaded on December 3, 2010
Taken on December 2, 2010