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