Java + Multi-core
Thursday, November 13th, 2008Avik Sengupta from Lab49 wrote an interesting Guest View in the latest SDTimes about recent additions to Java to improve support for programming to multi-core hardware.
When I started talking about the Multi-core Dilemma a few years ago the conventional wisdom in the Java community still held that we wouldn’t have to do anything different - that Java would take care of it for us. I even touched off a nice little flame war with a posting on The Server Side…
As Avik points out, Java does provide a powerful threading model that helps with multi-core, “but in practice it may not be so easy.“ With the addition of the concurrency package and the new fork/join, the tools for parallelism in Java are greatly improved.
These capabilities in Java, as well as new primitives and tools being added to C++ and other languages are geared at improving the realm of traditional multi-threaded programming for data and task parallelism. But parallelism at a higher level of granularity - the business process level - is becoming more commonly used. Business Process Parallelism is a technique that runs multiple instances of a business process, typically implemented inside of a service. This has multiple advantages, which I will cover in a subsequent post.
If performance and throughput are important for your application, consider where business process parallelism may be used in addition to data parallelism alone.
