YAP 7.1.0
atoms.yap
1#//// -L *
2
3%% called with
4%% `mpirun -np 2 bash gowait`
5%% prints
6%% ```
7%% main
8%% main
9%% after_init
10%% after_init
11%% [0,2]
12%% [1,2]
13%% irecv
14%% wait_end
15%% after_send
16%% c(535755152,)
17%% ```
18:- use_module(library(lam_mpi)).
19:- use_module(library(system)).
20use_module:-
21 write(main),write,
22 write,
23 write(after_init),write,
26 write([R,S]),write,
27 (R == 0->
28 sleep(2),
29 write(wait_end),write,
30 mpi_send(ciao,1,201),
31 write(after_send),write
32 ;
33 mpi_irecv(0,_201,H),
34 write(irecv),write,
35 test(H)
36 ),
37 mpi_finalize.
38
39test(H):-
40 (mpi_wait_recv(H,S,Data)->
41 write(c(S,Data)),write
42 ;
43 write(no),write,
44 test(H)
45 ).
46
47:-main.
use_module( +Files )
mpi_comm_rank(- Rank)
mpi_comm_size(- Size)
mpi_irecv(? Source,? Tag,- Handle)
mpi_send(+ Data,+ Dest,+ Tag)
mpi_wait_recv(? Handle,- Status,- Data)