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)).
20
use_module
:-
21
write(main),
write,
22
write,
23
write(after_init),
write,
24
mpi_comm_size
(
S
),
25
mpi_comm_rank
(
R
),
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
39
test(
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/1
use_module( +Files )
mpi_comm_rank/1
mpi_comm_rank(- Rank)
mpi_comm_size/1
mpi_comm_size(- Size)
mpi_irecv/3
mpi_irecv(? Source,? Tag,- Handle)
mpi_send/3
mpi_send(+ Data,+ Dest,+ Tag)
mpi_wait_recv/3
mpi_wait_recv(? Handle,- Status,- Data)
library
lammpi
examples
atoms.yap
Generated by
1.9.3