Jump to content

Archive for the 'Business Process Parallelism' Category

Java + Multi-core

Thursday, November 13th, 2008

Avik 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.