Parallel processing software manages the execution of a program on parallel processing hardware with the objectives of obtaining unlimited scalability (being able to handle an increasing number of interactions at the same time) and reducing execution time. Applications that benefit from parallel processing divide roughly into business data processing and technical/scientific processing.
Business data processing applications are characterized by record processing, and the size of the data typically creates significant I/O performance issues as well as the need for fast computation. Parallel processing software assists business applications in two significant ways:
Frameworks - Dataflow frameworks provide the highest performance and simplest method for expressing record-processing applications so that they are able to achieve high scalability and total throughput. Dataflow frameworks underlie the internals of most relational database management systems ( RDBMS s) as well as being available for direct use in construction of data warehouse , business intelligence , and analytic CRM (customer relationship management) applications. Frameworks hide most or all the details of inter-process and inter-processor communications from application developers, making it simpler to create these applications than it would be using low-level message passing.
RDBMS - As the most common repositories for commercial record-oriented data, RDBMS systems have evolved so that the Structured Query Language ( SQL ) that is used to access them is executed in parallel. The nature of the SQL language lends itself to faster processing using parallel techniques.
Technical and scientific applications tend to be "compute-bound" (they require much processor computation) and have tended to be associated with the supercomputer . There are two primary techniques used in the creation of most of these applications - message passing and parallelizing compiler s.
Message Passing - Application programs can be built using mechanisms for communication between one processor operating concurrently with others. This is the lowest-level mechanism available and can lead to the highest possible performance at the greatest implementation cost and complexity. (Note that message passing for parallel computation should not be confused with the term messaging which is also used to describe transactional communication systems for distributed client-to-server and inter-server business applications.)
Parallelizing Compilers - For technical and mathematical applications dominated by matrix algebra , there are compiler s that can create parallel execution from seemingly sequential program source code. These compilers can decompose a program and insert the necessary message passing structures and other parallel constructs automatically.