O programa ol�, evocado manualmente, depois de imprimir o seu TID, obtido pela evoca��o da fun��o pvm_mytid(), lan�a uma c�pia de um outro programa ol�_meu recorrendo � fun��o pvm_spawn(). O programa evoca uma nova fun��o pvm_rec() e entra em modo de recep��o bloqueante. A chegada da mensagem liberta-o do estado de espera, seguindo-se a obten��o do conte�do da mensagem e da identifica��o do respectivo remetente, fun��o pvm_upstr(). Finalmente desassocia-se da m�quina virtual pvm_exit() depois de imprimir uma mensagem no �cran.
O programa ol�_meu come�a por obter a identifica��o do programa que o lan�ou, pvm_parent() assim como o nome do computador hospedeiro. A informa��o obtida no passo anterior � seguidamente transmitida, usando uma sequ�ncia de tr�s fun��es:
/* m�dulo Ol� */ #include <stdio.h> #include "pvm3.h" main() { int cc, tid; char buf[100]; printf("i'm t%x\n", pvm_mytid()); cc = pvm_spawn("Ol�_meu", (char**)0, 0, "", 1, &tid); if (cc == 1) { cc = pvm_recv(-1, -1); pvm_bufinfo(cc, (int*)0, (int*)0, &tid); pvm_upkstr(buf); printf("de tarefa%x: %s\n", tid, buf); } else printf("N�o � poss�vel iniciar Ol�\_meu\n"); pvm_exit(); exit(0);}
/* m�dulo Ol�_Meu */ #include "pvm3.h" main() { int ptid; char buf[100]; ptid = pvm_parent(); strcpy(buf, "Ol� , daqui o teu"); gethostname(buf + strlen(buf), 64); pvm_initsend(PvmDataDefault); pvm_pkstr(buf); pvm_send(ptid, 1); pvm_exit(); exit(0); }