Skip to content
Snippets Groups Projects
Select Git revision
  • f666ff9ec4cd2339c98e30a045a36242ad9e52cc
  • main default protected
  • Vincent
  • home
4 results

publish.sh

Blame
  • LocalConcurrency.py 1.34 KiB
    #! /usr/bin/python3
    
    from Infrastructure.ErrorGenerator import ErrorGenerator
    from Infrastructure.Instruction import Instruction
    from Infrastructure.MPICallFactory import MPICallFactory, CorrectMPICallFactory
    from Infrastructure.CorrectParameter import CorrectParameterFactory, get_matching_recv
    from Infrastructure.Template import TemplateManager
    from Infrastructure.TemplateFactory import get_collective_template
    from Infrastructure.Variables import *
    
    
    class LocalConcurrencyErrorColl(ErrorGenerator):
        nbfunc_to_use = ["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_level, real_world_score_table):
    
            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 generate_level <= BASIC_TEST_LEVEL:
                    return