O grande objetivo do processamento paralelo/distribuído é aumentar o desempenho de aplicações que necessitam de grande poder computacional e que são pouco eficientes quando executadas seqüencialmente. Para tanto, o aumento de desempenho é obtido particionando-se uma tarefa em tarefas menores e executando-as em diferentes processadores, paralelamente. Um conjunto de processadores interconectados é a definição mais simples de um ambiente paralelo/distribuído. Os multicomputadores são ambientes paralelo/distribuídos, onde cada processador possui sua própria memória privativa e canais de comunicação ligados através de redes compostas por múltiplos canais bipontuais. Nestes ambientes a interação entre os processos que compõe um programa paralelo é feita essencialmente por troca de mensagens.
A forma mais elementar de interação entre processos baseada em troca de mensagens é a comunicação ponto a ponto, onde um processo origem envia uma mensagem para um processo destino.
Entretanto, por questões de desempenho e até facilidade de programação, muitas aplicações paralelas/distribuídas tem como requisito um sistema de passagem de mensagens que suporte comunicação em grupo. Por exemplo, considere um grupo de servidores de arquivos que tem como tarefa comum oferecer um serviço de arquivos tolerante a falhas. Neste caso, espera-se que as requisições de serviço emitidas por clientes sejam recebidas por todos os servidores de arquivos. Assim, mesmo que um servidor de arquivos não possa atender outros poderão atender o pedido. Para que isso seja possível é necessário que exista um mecanismo de comunicação alternativo, diferente da comunicação envolvendo apenas dois processos, onde é possível a recepção de uma mesma mensagem por vários recebedores. Este mecanismo, as suas primitivas de controle, podem ser fornecidos pelo Sistema Operacional, através de chamadas de sistema ou biblioteca de funções. Este trabalho apresenta o projeto e desenvolvimento de um conjunto de primitivas de suporte para comunicação em grupo em um ambiente paralelo/distribuído com arquitetura baseada em multicomputador.