
:- use_module(library(lam_mpi)).
:- use_module(library(system)).

main:-
	writeln(user_error,main),
	mpi_init,
	write(after_init),nl,
	mpi_comm_size(S),
	mpi_comm_rank(R),
	writeln(user_error,[R,S]),
	(R == 0->
	 sleep(2),
	 write(wait_end),nl,
	 mpi_send(ciao,1,201),
	 write(after_send),nl
	;
	 mpi_recv(0,_201,H),
	 write(recv),nl,
	 test(H)
	),
	mpi_finalize.

test(H):-
	(mpi_wait_irecv(H,S,Data)->
	 write(c(S,Data)),nl
	;
	 write(no),nl,
	 test(H)
	).

:-main.
