Friday, February 15, 2008

General-purpose parallelism

Via Joe Duffy's weblog I just watched an interesting interview with Burton Smith, which is definitely worth sharing. It's about an hour long but here are some key points (many of which we have discussed here in the past):
  • He discusses the "Von Neumann mistake" which has led to problems with scheduling due to shared state in computer programs, and ways to solve these problems
  • Software transactional memory is a potential solution but currently has issues with scalability
  • He is most enthusiastic about functional programming languages. Interestingly he points out that the most commonly used functional languages are Excel and SQL.
  • Existing programming languages cannot be "tweaked" - an entirely new way of writing programs is needed to obtain the necessary levels of productivity
  • He also says that if Microsoft doesn't solve this problem, nobody will. Maybe he's paid to say that, but they are doing some interesting things with .NET, in particular Smith notes that F# is being "productized" and they are working on parallel LINQ

1 comment:

Nati Shalom said...

"an entirely new way of writing programs is needed to obtain the necessary levels of productivity"

I agree with the observation that there need to be a different way to handle what i refer to as stateful computation.

I used the following aspects to address this type of issues:

1. Use In-Memory-Data-Grid to store the sate in a high performance shared environment (as alternative to file system or data base).

2. Use parallel query patterns to run query and logic collocated with the data.

3. Use dynamic languages (with or without combination of SQL) as the "new" langague to handle this type of requirements.

There is an interesting example written by a colleague of mine (Uri Cohen) that illustrates the use of dynamic languages for parallel query:

parallel Dynamic languages execution

Another interesting reference shows how you can embed this pattern with Microsoft excel - Excel that scales..

Nati S.

Write Once Scale Anywhere