Processors and concurrency
In a recent blog Richard Taylor talks about the introduction of multicore processors and the difficulty of mulithreaded programming. He also refers to the cover feature of the May 2006 edition of IEEE Computer "The Problem with Threads" authored by Edward A. Lee. I immediately to exception to some of the items in Richard's blog and to much of what is in "The Problem with Threads". On reflection, while still not agreeing completely, I now realise that I have a different perspective on the relationship between processors and concurrency than do Taylor or Lee.
Taylor says "we are moving into a world where applications have to be concurrent to exploit the available hardware" and Lee says "with increasingly parallel computer architectures ... programs must be able to exploit this parallelism". In other words, the challenge is in finding parallelism in an application and then expressing the parallelism in a program.
In my world, the applications seems to be "trivially" parallel. There is a challenge of expressing the application in a program but the challenge is not one of finding parallelism. Many of the applications would appear to fit into the programming structures used by a conventional operating system - processes, files, pipes, drivers etc. And this, together with the availability of conventional operating systems running on multi-core and multi-threaded processors, is one reason why I think that embedded multimedia system will exploit the types of computer architectures we see emerging today.
No comments:
Post a Comment