From e6838f6bb9e6fad4b2964af69adac5d33a54c478 Mon Sep 17 00:00:00 2001
From: Emmanuelle Saillard <emmanuelle.saillard@inria.fr>
Date: Tue, 30 Apr 2024 09:39:26 +0200
Subject: [PATCH] add local concurrency cases
---
scripts/errors/coll/LocalConcurrency.py | 37 +++++++++++++++++++++++++
scripts/errors/coll/ParamMatching.py | 1 -
2 files changed, 37 insertions(+), 1 deletion(-)
create mode 100644 scripts/errors/coll/LocalConcurrency.py
diff --git a/scripts/errors/coll/LocalConcurrency.py b/scripts/errors/coll/LocalConcurrency.py
new file mode 100644
index 000000000..c3209915a
--- /dev/null
+++ b/scripts/errors/coll/LocalConcurrency.py
@@ -0,0 +1,37 @@
+#! /usr/bin/python3
+
+from scripts.Infrastructure.ErrorGenerator import ErrorGenerator
+from scripts.Infrastructure.Instruction import Instruction
+from scripts.Infrastructure.MPICallFactory import MPICallFactory, CorrectMPICallFactory
+from scripts.Infrastructure.CorrectParameter import CorrectParameterFactory, get_matching_recv
+from scripts.Infrastructure.Template import TemplateManager
+from scripts.Infrastructure.TemplateFactory import get_collective_template
+
+class InvalidRankErrorColl(ErrorGenerator):
+ nbfunc_to_use = ["mpi_ibarrier", "mpi_iallreduce", "mpi_ialltoall", "mpi_ibcast", "mpi_ireduce", "mpi_iscatter", "mpi_igather", "mpi_iscan" ]
+
+ def __init__(self):
+ pass
+
+
+ def get_feature(self):
+ return ["COLL"]
+
+
+ def generate(self, generate_full_set):
+
+ for func_to_use in self.nbfunc_to_use:
+ tm = get_collective_template(func_to_use)
+
+ tm.set_description("LocalConcurrency-"+func_to_use, "Usage of buffer before operation is completed")
+
+ conflicting_inst = Instruction("buf[2]=1;")
+ conflicting_inst.set_has_error()
+ wait = tm.get_instruction("WAIT", return_list=True)
+ tm.insert_instruction(conflicting_inst,before_instruction=wait)
+
+
+ yield tm
+
+ if not generate_full_set:
+ return
\ No newline at end of file
diff --git a/scripts/errors/coll/ParamMatching.py b/scripts/errors/coll/ParamMatching.py
index 27c448807..6bfb81352 100644
--- a/scripts/errors/coll/ParamMatching.py
+++ b/scripts/errors/coll/ParamMatching.py
@@ -86,7 +86,6 @@ class InvalidComErrorColl(ErrorGenerator):
yield tm
- # only check for one comm
if not generate_full_set:
return
--
GitLab