Skip to content
Snippets Groups Projects

P2P

Open
Jammer, Timrequested to merge
p2p into main
1 file
+ 24
0
Compare changes
  • Side-by-side
  • Inline
+ 24
0
@@ -62,6 +62,27 @@ class InvalidRankErrorP2P(ErrorGenerator):
@@ -62,6 +62,27 @@ class InvalidRankErrorP2P(ErrorGenerator):
yield tm
yield tm
 
def generate_probe(self, probe_to_use):
 
for rank_to_use in self.invalid_ranks:
 
 
tm = get_send_recv_template("mpi_send", "mpi_recv")
 
 
tm.set_description("InvalidParam-Rank-" + probe_to_use, "Invalid Rank: %s" % rank_to_use)
 
 
probe_call = CorrectMPICallFactory().get(probe_to_use)
 
probe_call.set_arg("source", rank_to_use)
 
probe_call.set_has_error()
 
 
if probe_to_use == "mpi_iprobe":
 
tm.get_block("MPICALL").insert_instruction("int flag=0;", kind=0, before_index=0)
 
tm.get_block("MPICALL").insert_instruction("while (!flag){", kind=0, before_index=1)
 
tm.get_block("MPICALL").insert_instruction(probe_call, kind=0, before_index=2)
 
tm.get_block("MPICALL").insert_instruction("}", kind=0, before_index=3) # end while
 
else:
 
tm.get_block("MPICALL").insert_instruction(probe_call, kind=0, before_index=0)
 
 
yield tm
 
def generate(self, generate_full_set):
def generate(self, generate_full_set):
for send_func in self.send_funcs:
for send_func in self.send_funcs:
yield from self.generate_impl(send_func, "mpi_irecv", False)
yield from self.generate_impl(send_func, "mpi_irecv", False)
@@ -76,3 +97,6 @@ class InvalidRankErrorP2P(ErrorGenerator):
@@ -76,3 +97,6 @@ class InvalidRankErrorP2P(ErrorGenerator):
for func in self.probe_recv_funcs:
for func in self.probe_recv_funcs:
yield from self.generate_mprobe("mpi_send", func)
yield from self.generate_mprobe("mpi_send", func)
 
 
for func in ["mpi_probe", "mpi_iprobe"]:
 
yield from self.generate_probe(func)
Loading