30 lines
		
	
	
		
			509 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			30 lines
		
	
	
		
			509 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:- use_module(library(lam_mpi)).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								:- initialization(main).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								main :-
							 | 
						||
| 
								 | 
							
								       mpi_init,
							 | 
						||
| 
								 | 
							
								       writeln(ok1),
							 | 
						||
| 
								 | 
							
								       mpi_comm_size(N),
							 | 
						||
| 
								 | 
							
								       writeln(ok2:N),
							 | 
						||
| 
								 | 
							
								       mpi_comm_rank(Rank),
							 | 
						||
| 
								 | 
							
								       do_comm(Rank),
							 | 
						||
| 
								 | 
							
								       mpi_finalize.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								do_comm(Rank) :-
							 | 
						||
| 
								 | 
							
									   between(1,10,I),
							 | 
						||
| 
								 | 
							
									   NI is I*10,
							 | 
						||
| 
								 | 
							
									   gen_list(NI,List),
							 | 
						||
| 
								 | 
							
									   mpi_bcast2(0, List),
							 | 
						||
| 
								 | 
							
									   mpi_barrier,
							 | 
						||
| 
								 | 
							
									   format('Rank=~d Msg=~w~n',[Rank,List]),
							 | 
						||
| 
								 | 
							
									   fail.
							 | 
						||
| 
								 | 
							
								do_comm(_).
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								gen_list(0,[]) :- !.
							 | 
						||
| 
								 | 
							
								gen_list(I,[I|List]) :-
							 | 
						||
| 
								 | 
							
								          I1 is I-1,
							 | 
						||
| 
								 | 
							
								          gen_list(I1,List).
							 | 
						||
| 
								 | 
							
								
							 |