- Mechanical Solutions: Parallel Computing at the Operating System Level
- Automated Network Routing: Parallel Computing by Predetermined Logic
- Grid Computing: Parallel Computing by Distribution
- Parallel Computing for Business Applications
- The Solution: Software Pipelines
- Fluid Dynamics
- Software Pipelines Example
- Summary
Parallel Computing for Business Applications
Business applications are very different from engineering or scientific applications. They have the following traits:
- They process transactions.
- They process tasks with mixed workloads. Quite often you can’t predict the size of each task, or what the processing requirements might be.
- The workload varies widely throughout a given time period. It might even change from day to day, or from one hour to the next.
- They often have requirements that defy the very concept of performing multiple tasks in parallel. For example, first in/first out (FIFO) transactions (which are very commonly used) must be done in an exact, ordered sequence.
- They almost always use a database or other centralized resource that bottlenecks and caps off transaction throughput.
Up to now, research on parallel computing concentrated mostly on mechanical solutions with limited scalability, or on grid-based scientific and engineering applications that lie outside the business domain. What we need is a new, simpler way to implement parallel computing for businesses. This new approach must support the following requirements:
- It must handle a wide variety of business application needs.
- It must provide ultimate scalability.
- It must maintain critical business requirements.
- It must be easy to implement by corporate IT developers.
In reality, there’s no automagic answer for scaling business applications, because each organization has very different needs and requirements. The ultimate solution requires the right tools, architecture, and approach, and it must focus on business applications. But more importantly, the solution requires the expertise of the professional developer—the invaluable corporate resource who possesses both a full understanding of the technology and an intimate knowledge of the business domain.
The challenge of finding a business-oriented approach to parallel processing is answered by Software Pipelines. The architecture is highly scalable and flexible. It executes business services independent of location, and in such a way as to maximize throughput on available computing resources, while easily meeting a vast array of complex business application requirements.