Software de processamento paralelo gere a execução de um programa em hardware de processamento paralelo com os objectivos de obter uma escalabilidade ilimitada (ser capaz de lidar com um número crescente de interacções ao mesmo tempo) e reduzir o tempo de execução. Aplicações que se beneficiam do processamento paralelo dividem-se aproximadamente em processamento de dados comerciais e processamento técnico/científico.
Aplicações de processamento de dados comerciais são caracterizadas pelo processamento de registros, e o tamanho dos dados normalmente cria problemas significativos de desempenho de E/S, bem como a necessidade de computação rápida. O software de processamento paralelo auxilia aplicações de negócios de duas formas significativas:
>b>Frameworks - As frameworks de processamento de dados fornecem o mais alto desempenho e o método mais simples para expressar aplicações de processamento de registros, de modo que eles sejam capazes de atingir alta escalabilidade e rendimento total. Os frameworks Dataflow estão subjacentes aos internos da maioria dos sistemas de gestão de bases de dados relacionais ( RDBMS s), bem como estão disponíveis para uso directo na construção de aplicações de data warehouse , business intelligence , e CRM analítico (customer relationship management). As frameworks escondem a maioria ou todos os detalhes das comunicações entre processos e inter-processadores dos desenvolvedores de aplicações, tornando mais simples a criação destas aplicações do que a utilização de mensagens de baixo nível passando.
>b>RDBMS - Como os repositórios mais comuns para dados comerciais orientados a registros, os sistemas RDBMS evoluíram de modo que a Linguagem de Consulta Estruturada ( SQL ) que é utilizada para acessá-los é executada em paralelo. A natureza da linguagem SQL se presta ao processamento mais rápido usando técnicas paralelas.
As aplicações técnicas e científicas tendem a ser "computacionais" (requerem muito processamento) e tendem a ser associadas ao supercomputador . Existem duas técnicas primárias usadas na criação da maioria destas aplicações - passagem de mensagens e compilador de paralelização s.
>b>Message Passing - Os programas de aplicação podem ser construídos usando mecanismos de comunicação entre um processador operando concomitantemente com outros. Este é o mecanismo de nível mais baixo disponível e pode levar ao maior desempenho possível com o maior custo e complexidade de implementação. (Note que a passagem de mensagens para computação paralela não deve ser confundida com o termo mensagem que também é usado para descrever sistemas de comunicação transacional para aplicações comerciais distribuídas cliente-servidor e inter-servidor.)
p>b>Compiladores paralelos - Para aplicações técnicas e matemáticas dominadas por álgebra matricial , existem compiladores que podem criar execução paralela a partir de código fonte de programas aparentemente seqüencial. Estes compiladores podem decompor um programa e inserir as estruturas de passagem de mensagens necessárias e outras construções paralelas automaticamente.