Parallel Computing Discussion at ACM in Chicago
Friday, June 27th, 2008By Patrick Leonard, VP Engineering & Product Strategy
Recently I had the opportunity to address the Chicago chapter of ACM (Association of Computer Machinery) on the subject of parallel computing. In addition to giving me the opportunity to make a Star Wars reference or two, 
it was a very interesting conversation on the subject. About a quarter of the attendees were from the financial services industry and close to half of the attendees are interested in using GPUs.
The main point of my talk was to give an overview on current trends in the industry and to discuss a model for parallel computing in software development. Most parallel programming has been focused at the task and data level with tools like OpenMP and MPI. Data parallelism continues to be very important, but I suggest that there is a higher level of granularity in parallel computing - Service Parallelism.
Service Parallelism is essentially the intersection of SOA and parallel computing. Rather than taking a loop or function inside of a program and making a parallel you take a whole service and run multiple instances of that service (loops can be parallel too, they are just running inside the service).
There are several advantages to this:
- If you already have services there is little to no recoding required.
- Changing service parallelism means a change in configuration not encode so ongoing maintenance is much easier.
- Service parallelism separates the parallel aspect of the application from the logic so your application developers don’t have to be experts in the parallel model.
If you are interested in a review of industry trends on multi-core CPU, GPU, and ideas for software parallelism, take a look at the slides on the Rogue Wave web site.
