discopop 4.0.0__tar.gz → 4.0.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {discopop-4.0.0 → discopop-4.0.1}/PKG-INFO +1 -1
- {discopop-4.0.0 → discopop-4.0.1}/README.md +11 -11
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/PKG-INFO +1 -1
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/__main__.py +4 -2
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/discopop_explorer.py +4 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detection.py +3 -2
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/do_all_detector.py +9 -4
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/geometric_decomposition_detector.py +3 -4
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/pipeline_detector.py +3 -4
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/reduction_detector.py +11 -5
- discopop-4.0.1/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-4.0.1/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-4.0.1/discopop_library/global_data/version/VERSION +1 -0
- discopop-4.0.1/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/version/__pycache__/utils.cpython-38.pyc +0 -0
- discopop-4.0.0/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-4.0.0/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-4.0.0/discopop_library/global_data/version/VERSION +0 -1
- discopop-4.0.0/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/LICENSE +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/MANIFEST.in +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/SOURCES.txt +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/dependency_links.txt +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/entry_points.txt +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/requires.txt +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/top_level.txt +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/zip-safe +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/LineID.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/MemoryRegion.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/NodeID.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/CUNode.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/Dependency.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/DummyNode.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/FunctionNode.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/LoopNode.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/Node.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/NodeT.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/PEGraphX.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/patterns/PatternBase.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/patterns/PatternInfo.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/patterns/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/variable.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/DepType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/EdgeType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/MWType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/NodeType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/output/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/output/gephi.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/output/json.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/check_reachability.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/depends_ignore_readonly.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_loop_index.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_passed_by_reference.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_predecessor.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_readonly_inside_loop_body.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_reduction_var_by_name.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_scalar_val.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/edges.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/memory_regions.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/nodes.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/paths.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/reductions.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/subtree.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/variables.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/children.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/parent.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/successors.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/unused/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/unused/unused_functions.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/json_serializer.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/parallel_utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/CombinedGPURegions.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Aliases.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Dependency.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/EntryPoint.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Enums.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/ExitPoint.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Update.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/combined_gpu_pattern_detector.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/prepare_metadata.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_1.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_2.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_3.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_4.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_5.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_6.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/utilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/device_updates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPUMemory.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPURegions.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/gpu_pattern_detector.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/alias_detection.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/classes.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/filter.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/postprocessor.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/preprocessor.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/auxiliary.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/barriers.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/data_sharing_clauses.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/dependency_clauses.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/tasks.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/task_parallelism_detector.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/tp_utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/plugins/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/plugins/pipeline.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/test/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/PEGraphConstructionUtilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/ParserUtilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/classes/DependenceItem.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/classes/LoopData.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/parser.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/general/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/general/generate_Data_CUInst.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/collect_statistics.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/boxplot.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/cc_dictionary.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/subtree.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/total.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/maximum_call_path_depth.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/num_function_calls.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/output_statistics.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_call_path_depths.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_cyclomatic_complexity.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_lines_of_code.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/call_path_depth.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/num_function_calls.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ArgumentClasses/GeneralArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/CodeGenerator.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/CodeGeneratorArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/ContentBuffer.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/Enums.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/Line.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/Pragma.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/UnpackedSuggestion.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/ArgumentClasses.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/GEPDependencyRemover.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/Types.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__main__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/ConfigProviderArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/__main__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/assets/.gitignore +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/config_provider.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/DependencyMetadata/compare_metadata.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/ArgumentClasses.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Autotuner.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Classes/CodeConfiguration.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Classes/ExecutionResult.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Statistics/StatisticsGraph.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Types.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/__main__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/FolderStructure/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/FolderStructure/setup.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/FolderStructure/teardown.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/GlobalLogger/setup.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/HotspotLoaderArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/HotspotNodeType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/HotspotType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/hostpot_loader.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/JSONHandler/JSONHandler.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/JSONHandler/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/delete.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/diff_modifications.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/initialize.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/load.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/save.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/MemoryRegions/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/MemoryRegions/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/PatchApplicatorArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/__main__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/apply.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/clear.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/list.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/load.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/patch_applicator.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/rollback.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/PatchGeneratorArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/__main__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/diffs.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/from_json_patterns.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/from_optimizer_output.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/patch_generator.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PathManagement/PathManagement.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PathManagement/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatternIdManagement/unique_pattern_id.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/CostModel.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/DataTransferCosts.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/utilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/DataTransfers.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/NewDataTransfers.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/calculate_configuration_data_movement.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/prepare_force_branch_end_data_movement.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/prepare_forced_data_movement.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/prepare_forced_data_movement_prior_to_call.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/DelaunayInterpolatedMicrobench.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/ExtrapInterpolatedMicrobench.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/Microbench.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/MicrobenchParser.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/MixedMicrobench.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/PureDataMicrobench.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/OptimizationGraph.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/OptimizerArguments.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/CalculateUpdates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/FromCUs.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/PETParser.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/AddRangesToUpdates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/LoopInitializationUpdates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveDuplicatedUpdates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveLoopIndexUpdates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveSameDeviceUpdates.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/main.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Variables/Experiment.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Variables/ExperimentUtils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Variables/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/__main__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/bindings/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/bindings/utilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/ContextObject.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/ContextObjectUtils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/Update.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/CallEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/ChildEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/DataFlowEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/GenericEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/MutuallyExclusiveEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/OptionEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/RequirementEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/SuccessorEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/TemporaryEdge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/enums/Distributions.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/enums/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextMerge.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextNode.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextRestore.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSave.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshot.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshotPop.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/DeviceSwitch.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/FunctionReturn.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/FunctionRoot.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/GenericNode.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/Loop.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/SynchronizationTrigger.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/Workload.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/Network.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/System.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/CPU.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/Device.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/DeviceTypeEnum.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/GPU.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/system_utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/types/Aliases.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/types/DataAccessType.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/types/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/plotting/CostModels.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/plotting/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/presentation/ChoiceDetails.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/presentation/OptionTable.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/presentation/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/queries/ValueTableQuery.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/queries/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/widgets/ScrollableFrame.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/widgets/ScrollableText.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/widgets/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/interactive/interactive_optimizer.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/evaluate.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/evaluate_all_decision_combinations.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/evolutionary_algorithm.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/greedy.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/validation.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimizer.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/scheduling/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/scheduling/workload_delta.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/do_all.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/main.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/reduction.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/optimizers/loop_collapse.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/optimizers/main.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/MOGUtilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/insert_device_switch_nodes.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/RandomSamples.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/TopDown.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/simple_utilities.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/visualization/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/visualization/plotting.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/visualization/update_graph.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/version/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/version/utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/py.typed +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/DetectionResult.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/MergedPattern.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/OptimizerOutputPattern.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/PatternStorage.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/requirements.txt +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/setup.cfg +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/setup.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/backwards_array_access/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/backwards_array_access/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/above_nesting_level_3/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/above_nesting_level_3/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex_no_varname_duplicates/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex_no_varname_duplicates/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/preventing/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/preventing/simple/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/preventing/simple/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/daxpy/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/daxpy/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/negative/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/negative/nested/OMPSCR/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/negative/nested/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_arrays/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_arrays/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_struct/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_struct/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors_and_struct/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/global_vectors_and_struct/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/depth_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/depth_2/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/depth_2/positive/both_loops_doall/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/depth_2/positive/both_loops_doall/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/minimal/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/minimal/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/stack_access/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/stack_access/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/positive/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/nested/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/nested/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/nested/positive/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_0/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_0/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_3/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_3/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_5/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_5/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/access_outside_struct/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/access_outside_struct/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/std_data_types/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/std_data_types/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/template_data_types/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/template_data_types/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/positive/simple_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/positive/simple_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/negative/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/negative/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/negative/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/first_private/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/first_private/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/first_private/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/last_private/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/last_private/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/last_private/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/no_clause/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/no_clause/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/no_clause/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_1/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_1/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_3/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_3/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/existence/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/existence/existence_utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/sharing_clauses/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/sharing_clauses/clauses_utils.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/validator_classes/DoAllInfoForValidation.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/utils/validator_classes/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/inner_loop_doall/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/inner_loop_doall/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/outer_loop_doall/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/outer_loop_doall/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/various/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/various/case_4/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/various/case_4/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/negative/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/negative/case_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/negative/case_2/test.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/do_all/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/do_all/first_private/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/do_all/first_private/case_2/__init__.py +0 -0
- {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/do_all/first_private/case_2/test.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: discopop
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.1
|
|
4
4
|
Summary: DiscoPoP is a tool that helps software developers parallelize their programs with threads. It discovers potential parallelism in a sequential program and makes recommendations on how to exploit it.
|
|
5
5
|
Home-page: https://www.discopop.tu-darmstadt.de/
|
|
6
6
|
Author: TU Darmstadt and Iowa State University
|
|
@@ -34,25 +34,25 @@ For a brief introduction to the command line tools, please refer to the [tools o
|
|
|
34
34
|
For detailed information on the gathered and stored data as well as the tools themselves, please refer to [data](https://discopop-project.github.io/discopop/Data) and the pages of the individual tools in the [tools overview](https://discopop-project.github.io/discopop/Tools).
|
|
35
35
|
|
|
36
36
|
## TL;DR
|
|
37
|
-
|
|
37
|
+
If you are interested in installing DiscoPoP as a `developer`, please refer to the [DiscoPoP setup wiki page](https://discopop-project.github.io/discopop/setup/discopop/).
|
|
38
|
+
|
|
39
|
+
The following example installs DiscoPoP for `users`, instruments and builds the provided example, analyzes the results, and prints the identified parallelization suggestions to the console.
|
|
38
40
|
In case any issues arise during the process, please refer to the detailed [setup instructions](https://discopop-project.github.io/discopop/Setup), contact us via GitHub messages, or get in contact by mail to [discopop-support@lists.parallel.informatik.tu-darmstadt.de](mailto:discopop-support@lists.parallel.informatik.tu-darmstadt.de).
|
|
41
|
+
|
|
42
|
+
### Prerequisites
|
|
43
|
+
- Download `.deb` package from [latest Release](https://github.com/discopop-project/discopop/releases/latest)
|
|
44
|
+
### Example
|
|
39
45
|
```
|
|
40
|
-
#
|
|
41
|
-
|
|
42
|
-
cd discopop
|
|
43
|
-
mkdir build && cd build
|
|
44
|
-
DP_BUILD=$(pwd)
|
|
45
|
-
cmake .. && make
|
|
46
|
+
# install package
|
|
47
|
+
sudo apt install ./<packagename>.deb
|
|
46
48
|
# instrument and build the example code
|
|
47
|
-
cd
|
|
48
|
-
mkdir build && cd build && cmake -DCMAKE_CXX_COMPILER
|
|
49
|
+
cd /opt/DiscoPoP/example
|
|
50
|
+
mkdir build && cd build && cmake -DCMAKE_CXX_COMPILER=discopop_cxx .. && make
|
|
49
51
|
# execute instrumented code
|
|
50
52
|
./cmake_example
|
|
51
53
|
# identify parallel patterns
|
|
52
54
|
cd .discopop
|
|
53
55
|
discopop_explorer
|
|
54
|
-
# create applicable patches from patterns
|
|
55
|
-
discopop_patch_generator
|
|
56
56
|
# print patches to the console
|
|
57
57
|
for f in $(find patch_generator -maxdepth 1 -type d); do
|
|
58
58
|
echo "SUGGESTION: $f"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: discopop
|
|
3
|
-
Version: 4.0.
|
|
3
|
+
Version: 4.0.1
|
|
4
4
|
Summary: DiscoPoP is a tool that helps software developers parallelize their programs with threads. It discovers potential parallelism in a sequential program and makes recommendations on how to exploit it.
|
|
5
5
|
Home-page: https://www.discopop.tu-darmstadt.de/
|
|
6
6
|
Author: TU Darmstadt and Iowa State University
|
|
@@ -69,12 +69,13 @@ def parse_args() -> ExplorerArguments:
|
|
|
69
69
|
help="Dump DetectionResult object to JSON file. If a path is given, the DetectionResult object is written to the given file, otherwise to detection_result_dump.json. Contents are equivalent to the json output. NOTE: This dump contains a dump of the PET Graph!",
|
|
70
70
|
)
|
|
71
71
|
parser.add_argument(
|
|
72
|
-
"--enable-patterns", type=str, nargs="?", default="reduction,doall
|
|
73
|
-
help="Specify comma-separated list of pattern types to be identified. Options: reduction,doall,pipeline,geodec,simplegpu. Default: reduction,doall
|
|
72
|
+
"--enable-patterns", type=str, nargs="?", default="reduction,doall",
|
|
73
|
+
help="Specify comma-separated list of pattern types to be identified. Options: reduction,doall,pipeline,geodec,simplegpu. Default: reduction,doall",
|
|
74
74
|
)
|
|
75
75
|
parser.add_argument("--load-existing-doall-and-reduction-patterns", action="store_true", help="Skip pattern detection and insert existing patterns.json contents into the created detection_result.json")
|
|
76
76
|
parser.add_argument("--log", type=str, default="WARNING", help="Specify log level: DEBUG, INFO, WARNING, ERROR, CRITICAL")
|
|
77
77
|
parser.add_argument("--write-log", action="store_true", help="Create Logfile.")
|
|
78
|
+
parser.add_argument("-j", "--jobs", type=int, help="Allow the use of N threads. Use 0 or 1 to disable threading. Default: Unlimited", default=None)
|
|
78
79
|
|
|
79
80
|
# EXPERIMENTAL FLAGS:
|
|
80
81
|
# temporary flag for microbenchmark file
|
|
@@ -160,6 +161,7 @@ def parse_args() -> ExplorerArguments:
|
|
|
160
161
|
write_log=arguments.write_log,
|
|
161
162
|
load_existing_doall_and_reduction_patterns=arguments.load_existing_doall_and_reduction_patterns,
|
|
162
163
|
collect_statistics=arguments.enable_statistics,
|
|
164
|
+
jobs=arguments.jobs,
|
|
163
165
|
)
|
|
164
166
|
|
|
165
167
|
|
|
@@ -58,6 +58,7 @@ class ExplorerArguments(GeneralArguments):
|
|
|
58
58
|
reduction_file: str
|
|
59
59
|
file_mapping_file: str
|
|
60
60
|
plugins: List[str]
|
|
61
|
+
jobs: Optional[int]
|
|
61
62
|
# output and formatting
|
|
62
63
|
enable_json_file: Optional[str]
|
|
63
64
|
enable_profiling_dump_file: Optional[str] # None means no dump, otherwise the path
|
|
@@ -122,6 +123,7 @@ def __run(
|
|
|
122
123
|
enable_detection_of_scheduling_clauses: bool = False,
|
|
123
124
|
hotspot_functions: Optional[Dict[HotspotType, List[Tuple[int, int, HotspotNodeType, str, float]]]] = None,
|
|
124
125
|
load_existing_doall_and_reduction_patterns: bool = False,
|
|
126
|
+
jobs: Optional[int] = None,
|
|
125
127
|
) -> DetectionResult:
|
|
126
128
|
pet = PEGraphX.from_parsed_input(*parse_inputs(cu_xml, dep_file, reduction_file, file_mapping)) # type: ignore
|
|
127
129
|
print("PET CREATION FINISHED.")
|
|
@@ -170,6 +172,7 @@ def __run(
|
|
|
170
172
|
enable_task_pattern,
|
|
171
173
|
enable_detection_of_scheduling_clauses,
|
|
172
174
|
hotspot_functions,
|
|
175
|
+
jobs,
|
|
173
176
|
)
|
|
174
177
|
|
|
175
178
|
for plugin_name in plugins:
|
|
@@ -240,6 +243,7 @@ def run(arguments: ExplorerArguments) -> None:
|
|
|
240
243
|
enable_detection_of_scheduling_clauses=arguments.detect_scheduling_clauses,
|
|
241
244
|
hotspot_functions=hotspots,
|
|
242
245
|
load_existing_doall_and_reduction_patterns=arguments.load_existing_doall_and_reduction_patterns,
|
|
246
|
+
jobs=arguments.jobs,
|
|
243
247
|
)
|
|
244
248
|
|
|
245
249
|
end = time.time()
|
|
@@ -76,6 +76,7 @@ class PatternDetectorX(object):
|
|
|
76
76
|
enable_task_pattern: bool,
|
|
77
77
|
enable_detection_of_scheduling_clauses: bool,
|
|
78
78
|
hotspots: Optional[Dict[HotspotType, List[Tuple[int, int, HotspotNodeType, str, float]]]],
|
|
79
|
+
jobs: Optional[int],
|
|
79
80
|
) -> DetectionResult:
|
|
80
81
|
"""Runs pattern discovery on the CU graph"""
|
|
81
82
|
self.__merge(False, True)
|
|
@@ -88,11 +89,11 @@ class PatternDetectorX(object):
|
|
|
88
89
|
|
|
89
90
|
if "*" in enable_patterns or "reduction" in enable_patterns:
|
|
90
91
|
print("REDUCTIONS...")
|
|
91
|
-
res.patterns.reduction = detect_reduction(self.pet, hotspots)
|
|
92
|
+
res.patterns.reduction = detect_reduction(self.pet, hotspots, jobs)
|
|
92
93
|
print("\tDONE.")
|
|
93
94
|
if "*" in enable_patterns or "doall" in enable_patterns:
|
|
94
95
|
print("DOALL...")
|
|
95
|
-
res.patterns.do_all = detect_do_all(self.pet, hotspots, res.patterns.reduction)
|
|
96
|
+
res.patterns.do_all = detect_do_all(self.pet, hotspots, res.patterns.reduction, jobs)
|
|
96
97
|
print("\tDONE.")
|
|
97
98
|
if "*" in enable_patterns or "pipeline" in enable_patterns:
|
|
98
99
|
print("PIPELINE...")
|
|
@@ -84,6 +84,7 @@ def run_detection(
|
|
|
84
84
|
pet: PEGraphX,
|
|
85
85
|
hotspots: Optional[Dict[HotspotType, List[Tuple[int, int, HotspotNodeType, str, float]]]],
|
|
86
86
|
reduction_info: List[ReductionInfo],
|
|
87
|
+
jobs: Optional[int] = None,
|
|
87
88
|
) -> List[DoAllInfo]:
|
|
88
89
|
"""Search for do-all loop pattern
|
|
89
90
|
|
|
@@ -107,10 +108,14 @@ def run_detection(
|
|
|
107
108
|
nodes = cast(List[LoopNode], filter_for_hotspots(pet, cast(List[Node], nodes), hotspots))
|
|
108
109
|
|
|
109
110
|
param_list = [(node) for node in nodes]
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
111
|
+
if jobs is None or jobs > 1:
|
|
112
|
+
with Pool(initializer=__initialize_worker, initargs=(pet,)) as pool:
|
|
113
|
+
tmp_result = list(tqdm.tqdm(pool.imap_unordered(__check_node, param_list), total=len(param_list)))
|
|
114
|
+
for local_result in tmp_result:
|
|
115
|
+
result += local_result
|
|
116
|
+
else:
|
|
117
|
+
for param_tpl in param_list:
|
|
118
|
+
result += __check_node(param_tpl)
|
|
114
119
|
print("GLOBAL RES: ", [r.start_line for r in result])
|
|
115
120
|
|
|
116
121
|
for pattern in result:
|
|
@@ -111,10 +111,9 @@ def run_detection(
|
|
|
111
111
|
nodes = cast(List[FunctionNode], filter_for_hotspots(pet, cast(List[Node], nodes), hotspots))
|
|
112
112
|
|
|
113
113
|
param_list = [(node) for node in nodes]
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
result += local_result
|
|
114
|
+
|
|
115
|
+
for param_tpl in param_list:
|
|
116
|
+
result += __check_node(param_tpl)
|
|
118
117
|
print("GLOBAL RES: ", result)
|
|
119
118
|
|
|
120
119
|
for pattern in result:
|
|
@@ -180,10 +180,9 @@ def run_detection(
|
|
|
180
180
|
nodes = cast(List[LoopNode], filter_for_hotspots(pet, cast(List[Node], nodes), hotspots))
|
|
181
181
|
|
|
182
182
|
param_list = [(node) for node in nodes]
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
result += local_result
|
|
183
|
+
|
|
184
|
+
for param_tpl in param_list:
|
|
185
|
+
result += __check_node(param_tpl)
|
|
187
186
|
print("GLOBAL RES: ", result)
|
|
188
187
|
|
|
189
188
|
for pattern in result:
|
|
@@ -75,7 +75,9 @@ global_pet = None
|
|
|
75
75
|
|
|
76
76
|
|
|
77
77
|
def run_detection(
|
|
78
|
-
pet: PEGraphX,
|
|
78
|
+
pet: PEGraphX,
|
|
79
|
+
hotspots: Optional[Dict[HotspotType, List[Tuple[int, int, HotspotNodeType, str, float]]]],
|
|
80
|
+
jobs: Optional[int] = None,
|
|
79
81
|
) -> List[ReductionInfo]:
|
|
80
82
|
"""Search for reduction pattern
|
|
81
83
|
|
|
@@ -92,10 +94,14 @@ def run_detection(
|
|
|
92
94
|
nodes = cast(List[LoopNode], filter_for_hotspots(pet, cast(List[Node], nodes), hotspots))
|
|
93
95
|
|
|
94
96
|
param_list = [(node) for node in nodes]
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
97
|
+
if jobs is None or jobs > 1:
|
|
98
|
+
with Pool(processes=jobs, initializer=__initialize_worker, initargs=(pet,)) as pool:
|
|
99
|
+
tmp_result = list(tqdm.tqdm(pool.imap_unordered(__check_node, param_list), total=len(param_list)))
|
|
100
|
+
for local_result in tmp_result:
|
|
101
|
+
result += local_result
|
|
102
|
+
else:
|
|
103
|
+
for param_tpl in param_list:
|
|
104
|
+
result += __check_node(param_tpl)
|
|
99
105
|
print("GLOBAL RES: ", [r.start_line for r in result])
|
|
100
106
|
|
|
101
107
|
for pattern in result:
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
4.0.1
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
4.0.0
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_loop_index.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_predecessor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_scalar_val.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/memory_regions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/successors.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/unused/unused_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py
RENAMED
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/classes.py
RENAMED
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/tp_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/ParserUtilities.py
RENAMED
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/general/generate_Data_CUInst.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/collect_statistics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/maximum_call_path_depth.py
RENAMED
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/num_function_calls.py
RENAMED
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/output_statistics.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_lines_of_code.py
RENAMED
|
File without changes
|
{discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|