discopop 3.1.0__tar.gz → 3.1.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-3.1.0/discopop.egg-info → discopop-3.1.1}/PKG-INFO +1 -1
- {discopop-3.1.0 → discopop-3.1.1/discopop.egg-info}/PKG-INFO +1 -1
- {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/SOURCES.txt +1 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/json_serializer.py +3 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detection.py +6 -6
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py +1 -1
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/gpu_pattern_detector.py +4 -4
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/JSONHandler/JSONHandler.py +2 -2
- discopop-3.1.1/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimizer.py +1 -1
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/main.py +2 -2
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/optimizers/loop_collapse.py +1 -1
- discopop-3.1.1/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-3.1.1/discopop_library/global_data/version/VERSION +1 -0
- discopop-3.1.1/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/version/__pycache__/utils.cpython-38.pyc +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/result_classes/DetectionResult.py +4 -9
- discopop-3.1.1/discopop_library/result_classes/PatternStorage.py +30 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/do_all/daxpy/test.py +1 -1
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/negative/simple_1/test.py +1 -1
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/positive/simple_1/test.py +1 -1
- discopop-3.1.0/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-3.1.0/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
- discopop-3.1.0/discopop_library/global_data/version/VERSION +0 -1
- discopop-3.1.0/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_profiler/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_profiler/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_profiler/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/assets/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/assets/icons/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Arguments.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/CodePreview.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Console.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/ExecutionConfiguration.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Pragma.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/ProfilingContainer.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Settings.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Suggestion.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/TKVarStorage.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/headless/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/headless/headless_execution.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/execution.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/main.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/optimizer/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/optimizer/binding.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/settings.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/suggestions/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/suggestions/overview.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/widgets/ScrollableText.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/widgets/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/wizard.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/LICENSE +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/MANIFEST.in +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/README.md +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/dependency_links.txt +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/entry_points.txt +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/requires.txt +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/top_level.txt +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/zip-safe +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/PEGraphX.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/discopop_explorer.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/generate_Data_CUInst.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/parallel_utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/parser.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/PatternBase.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/PatternInfo.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/CombinedGPURegions.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Aliases.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Dependency.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/EntryPoint.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Enums.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/ExitPoint.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Update.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/combined_gpu_pattern_detector.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/prepare_metadata.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_1.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_2.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_3.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_4.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_5.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_6.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/utilities.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/device_updates.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/do_all_detector.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/geometric_decomposition_detector.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/pipeline_detector.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/reduction_detector.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPUMemory.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPURegions.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/alias_detection.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/classes.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/filter.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/postprocessor.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/preprocessor.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/auxiliary.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/barriers.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/data_sharing_clauses.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/dependency_clauses.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/tasks.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/task_parallelism_detector.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/tp_utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/plugins/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/plugins/pipeline.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/test/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/variable.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/CodeGenerator.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/CodeGeneratorArguments.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/ContentBuffer.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/Enums.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/Line.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/Pragma.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/UnpackedSuggestion.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/ConfigProviderArguments.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/assets/.gitignore +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/config_provider.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/JSONHandler/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/diff_modifications.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/initialize.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/load.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/save.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/MemoryRegions/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/MemoryRegions/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/PatchApplicatorArguments.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/apply.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/clear.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/list.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/load.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/patch_applicator.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/rollback.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/PatchGeneratorArguments.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/diffs.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/from_json_patterns.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/from_optimizer_output.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/patch_generator.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PathManagement/PathManagement.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PathManagement/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatternIdManagement/unique_pattern_id.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/CostModel.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/DataTransferCosts.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/utilities.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/DataTransfers/DataTransfers.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/DataTransfers/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/DelaunayInterpolatedMicrobench.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/ExtrapInterpolatedMicrobench.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/Microbench.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/MicrobenchParser.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/MixedMicrobench.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/PureDataMicrobench.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/OptimizationGraph.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/OptimizerArguments.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/CalculateUpdates.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/FromCUs.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/PETParser.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/LoopInitializationUpdates.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveDuplicatedUpdates.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveLoopIndexUpdates.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/main.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Variables/Experiment.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Variables/ExperimentUtils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Variables/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/__main__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/bindings/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/bindings/utilities.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/ContextObject.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/ContextObjectUtils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/Update.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/ChildEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/DataFlowEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/GenericEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/MutuallyExclusiveEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/OptionEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/RequirementEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/SuccessorEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/TemporaryEdge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/enums/Distributions.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/enums/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextMerge.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextNode.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextRestore.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSave.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshot.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshotPop.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/FunctionRoot.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/GenericNode.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/Loop.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/Workload.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/Network.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/System.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/CPU.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/Device.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/DeviceTypeEnum.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/GPU.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/system_utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/types/Aliases.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/types/DataAccessType.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/types/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/plotting/CostModels.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/plotting/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/presentation/ChoiceDetails.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/presentation/OptionTable.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/presentation/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/queries/ValueTableQuery.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/queries/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/widgets/ScrollableFrame.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/widgets/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/evaluate.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/evaluate_all_decision_combinations.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/evolutionary_algorithm.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/validation.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/scheduling/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/scheduling/workload_delta.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/do_all.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/reduction.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/optimizers/main.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/MOGUtilities.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/RandomSamples.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/TopDown.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/simple_utilities.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/visualization/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/visualization/plotting.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/visualization/update_graph.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/version/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/version/utils.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/py.typed +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/result_classes/OptimizerOutputPattern.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/discopop_library/result_classes/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/requirements.txt +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/setup.cfg +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/setup.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/do_all/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/do_all/daxpy/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/negative/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/negative/simple_1/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/positive/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/positive/simple_1/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/utils/__init__.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/utils/validator_classes/DoAllInfoForValidation.py +0 -0
- {discopop-3.1.0 → discopop-3.1.1}/test/utils/validator_classes/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: discopop
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: discopop
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.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
|
|
@@ -262,6 +262,7 @@ discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc
|
|
|
262
262
|
discopop_library/global_data/version/__pycache__/utils.cpython-38.pyc
|
|
263
263
|
discopop_library/result_classes/DetectionResult.py
|
|
264
264
|
discopop_library/result_classes/OptimizerOutputPattern.py
|
|
265
|
+
discopop_library/result_classes/PatternStorage.py
|
|
265
266
|
discopop_library/result_classes/__init__.py
|
|
266
267
|
test/__init__.py
|
|
267
268
|
test/do_all/__init__.py
|
|
@@ -13,6 +13,7 @@ from discopop_library.discopop_optimizer.classes.context.Update import Update
|
|
|
13
13
|
from discopop_library.discopop_optimizer.classes.types.DataAccessType import WriteDataAccess
|
|
14
14
|
|
|
15
15
|
from discopop_library.result_classes.DetectionResult import DetectionResult
|
|
16
|
+
from discopop_library.result_classes.PatternStorage import PatternStorage
|
|
16
17
|
from .PEGraphX import Node
|
|
17
18
|
from .pattern_detectors.PatternInfo import PatternInfo
|
|
18
19
|
from .pattern_detectors.pipeline_detector import PipelineStage
|
|
@@ -52,6 +53,8 @@ class PatternBaseSerializer(JSONEncoder):
|
|
|
52
53
|
return filter_members(o.__dict__)
|
|
53
54
|
if isinstance(o, DetectionResult):
|
|
54
55
|
return filter_members(o.__dict__)
|
|
56
|
+
if isinstance(o, PatternStorage):
|
|
57
|
+
return filter_members(o.__dict__)
|
|
55
58
|
if isinstance(o, PipelineStage):
|
|
56
59
|
return filter_members(o.__dict__)
|
|
57
60
|
if isinstance(o, Update):
|
|
@@ -82,24 +82,24 @@ class PatternDetectorX(object):
|
|
|
82
82
|
|
|
83
83
|
if "*" in enable_patterns or "reduction" in enable_patterns:
|
|
84
84
|
print("REDUCTIONS...")
|
|
85
|
-
res.reduction = detect_reduction(self.pet)
|
|
85
|
+
res.patterns.reduction = detect_reduction(self.pet)
|
|
86
86
|
print("\tDONE.")
|
|
87
87
|
if "*" in enable_patterns or "doall" in enable_patterns:
|
|
88
88
|
print("DOALL...")
|
|
89
|
-
res.do_all = detect_do_all(self.pet)
|
|
89
|
+
res.patterns.do_all = detect_do_all(self.pet)
|
|
90
90
|
print("\tDONE.")
|
|
91
91
|
if "*" in enable_patterns or "pipeline" in enable_patterns:
|
|
92
92
|
print("PIPELINE...")
|
|
93
|
-
res.pipeline = detect_pipeline(self.pet)
|
|
93
|
+
res.patterns.pipeline = detect_pipeline(self.pet)
|
|
94
94
|
print("\tDONE.")
|
|
95
95
|
if "*" in enable_patterns or "geodec" in enable_patterns:
|
|
96
96
|
print("GEO. DEC...")
|
|
97
|
-
res.geometric_decomposition = detect_gd(self.pet)
|
|
97
|
+
res.patterns.geometric_decomposition = detect_gd(self.pet)
|
|
98
98
|
print("\tDONE.")
|
|
99
99
|
|
|
100
100
|
# check if task pattern should be enabled
|
|
101
101
|
if enable_task_pattern:
|
|
102
|
-
res.task = detect_tp(
|
|
102
|
+
res.patterns.task = detect_tp(
|
|
103
103
|
cu_dict,
|
|
104
104
|
dependencies,
|
|
105
105
|
reduction_vars,
|
|
@@ -112,7 +112,7 @@ class PatternDetectorX(object):
|
|
|
112
112
|
# detect GPU patterns based on previously identified patterns
|
|
113
113
|
if "*" in enable_patterns or "simplegpu" in enable_patterns:
|
|
114
114
|
print("SIMPLE GPU...")
|
|
115
|
-
res.simple_gpu = detect_gpu(self.pet, res, project_path)
|
|
115
|
+
res.patterns.simple_gpu = detect_gpu(self.pet, res, project_path)
|
|
116
116
|
print("\tDONE.")
|
|
117
117
|
|
|
118
118
|
# detect combined GPU patterns
|
{discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py
RENAMED
|
@@ -642,7 +642,7 @@ class GPULoopPattern(PatternInfo):
|
|
|
642
642
|
# calculate the number of iterations of this loop relative to the top loop
|
|
643
643
|
n: LoopNode = cast(LoopNode, map_node(pet, node_id))
|
|
644
644
|
|
|
645
|
-
do_all_loops = [node.node_id for node in res.do_all]
|
|
645
|
+
do_all_loops = [node.node_id for node in res.patterns.do_all]
|
|
646
646
|
|
|
647
647
|
loop_entry_node = cast(LoopNode, pet.node_at(node_id)).get_entry_node(pet)
|
|
648
648
|
if loop_entry_node is None:
|
|
@@ -36,12 +36,12 @@ def run_detection(pet: PEGraphX, res, project_folder_path: str) -> List[PatternI
|
|
|
36
36
|
# check for lastprivates, since they are not supported by the suggested pragma:
|
|
37
37
|
# pragma omp target teams distribute
|
|
38
38
|
# todo: instead of omitting, suggest #pragma omp target parallel for instead
|
|
39
|
-
if any(node.id == d.node_id for d in res.do_all if len(d.last_private) == 0) or any(
|
|
40
|
-
node.id == r.node_id for r in res.reduction if len(r.last_private) == 0
|
|
39
|
+
if any(node.id == d.node_id for d in res.patterns.do_all if len(d.last_private) == 0) or any(
|
|
40
|
+
node.id == r.node_id for r in res.patterns.reduction if len(r.last_private) == 0
|
|
41
41
|
):
|
|
42
42
|
reduction_vars: List[Variable] = []
|
|
43
|
-
if node.id in [r.node_id for r in res.reduction]:
|
|
44
|
-
parent_reduction = [r for r in res.reduction if r.node_id == node.id][0]
|
|
43
|
+
if node.id in [r.node_id for r in res.patterns.reduction]:
|
|
44
|
+
parent_reduction = [r for r in res.patterns.reduction if r.node_id == node.id][0]
|
|
45
45
|
reduction_vars = parent_reduction.reduction
|
|
46
46
|
gpulp = GPULoopPattern(
|
|
47
47
|
pet,
|
|
@@ -21,12 +21,12 @@ def read_patterns_from_json_to_json(json_path: str, relevant_patterns: List[str]
|
|
|
21
21
|
|
|
22
22
|
with open(json_path, "r") as f:
|
|
23
23
|
data = json.load(f)
|
|
24
|
-
for key in data:
|
|
24
|
+
for key in data["patterns"]:
|
|
25
25
|
if len(relevant_patterns) > 0 and key not in relevant_patterns:
|
|
26
26
|
continue
|
|
27
27
|
if key not in pattern_json_strings_by_type:
|
|
28
28
|
pattern_json_strings_by_type[key] = []
|
|
29
|
-
for entry in data[key]:
|
|
29
|
+
for entry in data["patterns"][key]:
|
|
30
30
|
pattern_json_strings_by_type[key].append(json.dumps(entry))
|
|
31
31
|
|
|
32
32
|
return pattern_json_strings_by_type
|
|
Binary file
|
|
@@ -209,7 +209,7 @@ def run(arguments: OptimizerArguments):
|
|
|
209
209
|
if best_configuration is not None:
|
|
210
210
|
best_configuration = optimize_updates(experiment, best_configuration, arguments)
|
|
211
211
|
# append the configuration to the list of patterns
|
|
212
|
-
experiment.detection_result.optimizer_output.append(best_configuration)
|
|
212
|
+
experiment.detection_result.patterns.optimizer_output.append(best_configuration)
|
|
213
213
|
|
|
214
214
|
# save full experiment to disk
|
|
215
215
|
export_to_json(experiment, optimizer_dir)
|
{discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/main.py
RENAMED
|
@@ -20,13 +20,13 @@ def import_suggestions(experiment: Experiment) -> nx.DiGraph:
|
|
|
20
20
|
"""Imports the suggestions specified in res into the graph stored in the given experiment and returns the modified graph"""
|
|
21
21
|
|
|
22
22
|
# import do-all
|
|
23
|
-
for do_all_suggestion in experiment.detection_result.do_all:
|
|
23
|
+
for do_all_suggestion in experiment.detection_result.patterns.do_all:
|
|
24
24
|
experiment.optimization_graph = import_doall(
|
|
25
25
|
experiment.optimization_graph, do_all_suggestion, experiment.get_next_free_node_id, experiment
|
|
26
26
|
)
|
|
27
27
|
|
|
28
28
|
# import reduction
|
|
29
|
-
for reduction_suggestion in experiment.detection_result.reduction:
|
|
29
|
+
for reduction_suggestion in experiment.detection_result.patterns.reduction:
|
|
30
30
|
experiment.optimization_graph = import_reduction(
|
|
31
31
|
experiment.optimization_graph, reduction_suggestion, experiment.get_next_free_node_id, experiment
|
|
32
32
|
)
|
|
@@ -239,7 +239,7 @@ def __collapse_loops_in_function(function_node_id):
|
|
|
239
239
|
|
|
240
240
|
# register pattern for output
|
|
241
241
|
# todo: find a nicer solution to duplicating the patterns for each device mapping
|
|
242
|
-
global_experiment.detection_result.do_all.append(pattern_info)
|
|
242
|
+
global_experiment.detection_result.patterns.do_all.append(pattern_info)
|
|
243
243
|
print("REGISTERED PATTERN INFO: ", pattern_id, " for Device: ", data_at(global_graph, csrc).device_id)
|
|
244
244
|
print(pattern_info)
|
|
245
245
|
print()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.1.1
|
|
Binary file
|
|
Binary file
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
# This software may be modified and distributed under the terms of
|
|
6
6
|
# the 3-Clause BSD License. See the LICENSE file in the package base
|
|
7
7
|
# directory for details.
|
|
8
|
+
from ast import Dict
|
|
8
9
|
from typing import List
|
|
9
10
|
|
|
10
11
|
import jsonpickle # type: ignore
|
|
@@ -17,24 +18,18 @@ from discopop_explorer.pattern_detectors.geometric_decomposition_detector import
|
|
|
17
18
|
from discopop_explorer.pattern_detectors.pipeline_detector import PipelineInfo
|
|
18
19
|
from discopop_explorer.pattern_detectors.reduction_detector import ReductionInfo
|
|
19
20
|
from discopop_library.global_data.version.utils import get_version
|
|
21
|
+
from discopop_library.result_classes.PatternStorage import PatternStorage
|
|
20
22
|
|
|
21
23
|
|
|
22
24
|
class DetectionResult(object):
|
|
23
25
|
version: str
|
|
24
26
|
pet: PEGraphX
|
|
25
|
-
|
|
26
|
-
do_all: List[DoAllInfo]
|
|
27
|
-
pipeline: List[PipelineInfo]
|
|
28
|
-
geometric_decomposition: List[GDInfo]
|
|
29
|
-
task: List[PatternInfo]
|
|
30
|
-
simple_gpu: List[PatternInfo]
|
|
31
|
-
combined_gpu: List[PatternInfo]
|
|
32
|
-
optimizer_output: List[PatternBase]
|
|
27
|
+
patterns: PatternStorage
|
|
33
28
|
|
|
34
29
|
def __init__(self, pet: PEGraphX):
|
|
35
30
|
self.version = get_version() # discopop version
|
|
36
31
|
self.pet = pet
|
|
37
|
-
self.
|
|
32
|
+
self.patterns = PatternStorage()
|
|
38
33
|
pass
|
|
39
34
|
|
|
40
35
|
def __str__(self):
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# This file is part of the DiscoPoP software (http://www.discopop.tu-darmstadt.de)
|
|
2
|
+
#
|
|
3
|
+
# Copyright (c) 2020, Technische Universitaet Darmstadt, Germany
|
|
4
|
+
#
|
|
5
|
+
# This software may be modified and distributed under the terms of
|
|
6
|
+
# the 3-Clause BSD License. See the LICENSE file in the package base
|
|
7
|
+
# directory for details.
|
|
8
|
+
|
|
9
|
+
from typing import List
|
|
10
|
+
|
|
11
|
+
from discopop_explorer.pattern_detectors.PatternBase import PatternBase
|
|
12
|
+
from discopop_explorer.pattern_detectors.PatternInfo import PatternInfo
|
|
13
|
+
from discopop_explorer.pattern_detectors.do_all_detector import DoAllInfo
|
|
14
|
+
from discopop_explorer.pattern_detectors.geometric_decomposition_detector import GDInfo
|
|
15
|
+
from discopop_explorer.pattern_detectors.pipeline_detector import PipelineInfo
|
|
16
|
+
from discopop_explorer.pattern_detectors.reduction_detector import ReductionInfo
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class PatternStorage(object):
|
|
20
|
+
reduction: List[ReductionInfo]
|
|
21
|
+
do_all: List[DoAllInfo]
|
|
22
|
+
pipeline: List[PipelineInfo]
|
|
23
|
+
geometric_decomposition: List[GDInfo]
|
|
24
|
+
task: List[PatternInfo]
|
|
25
|
+
simple_gpu: List[PatternInfo]
|
|
26
|
+
combined_gpu: List[PatternInfo]
|
|
27
|
+
optimizer_output: List[PatternBase]
|
|
28
|
+
|
|
29
|
+
def __init__(self):
|
|
30
|
+
self.optimizer_output = []
|
|
@@ -54,7 +54,7 @@ class TestMethods(unittest.TestCase):
|
|
|
54
54
|
|
|
55
55
|
# convert DoAllInfo objects to DoAllInfoForValidation objects to make use of custom __eq__
|
|
56
56
|
converted_gold_standard = [DoAllInfoForValidation(elem) for elem in gold_standard.do_all]
|
|
57
|
-
converted_test_output = [DoAllInfoForValidation(elem) for elem in test_output.do_all]
|
|
57
|
+
converted_test_output = [DoAllInfoForValidation(elem) for elem in test_output.patterns.do_all]
|
|
58
58
|
|
|
59
59
|
# sort the lists
|
|
60
60
|
converted_gold_standard = sorted(
|
|
@@ -50,7 +50,7 @@ class TestMethods(unittest.TestCase):
|
|
|
50
50
|
test_output: DetectionResult = jsonpickle.decode(tmp_str)
|
|
51
51
|
|
|
52
52
|
# check identified DoAllInfo objects for collapse clauses > 1
|
|
53
|
-
for do_all_info in test_output.do_all:
|
|
53
|
+
for do_all_info in test_output.patterns.do_all:
|
|
54
54
|
self.assertTrue(do_all_info.collapse_level <= 1)
|
|
55
55
|
|
|
56
56
|
|
|
@@ -51,7 +51,7 @@ class TestMethods(unittest.TestCase):
|
|
|
51
51
|
|
|
52
52
|
# check identified DoAllInfo objects for collapse clauses > 1
|
|
53
53
|
two_level_collapse_found = False
|
|
54
|
-
for do_all_info in test_output.do_all:
|
|
54
|
+
for do_all_info in test_output.patterns.do_all:
|
|
55
55
|
if do_all_info.collapse_level == 2:
|
|
56
56
|
two_level_collapse_found = True
|
|
57
57
|
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
3.1.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
|
{discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/ExecutionConfiguration.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
|
{discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/suggestions/__init__.py
RENAMED
|
File without changes
|
{discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/suggestions/overview.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/widgets/ScrollableText.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
|
|
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-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py
RENAMED
|
File without changes
|
{discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/classes.py
RENAMED
|
File without changes
|
{discopop-3.1.0 → discopop-3.1.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-3.1.0 → discopop-3.1.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
|
|
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-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/UnpackedSuggestion.py
RENAMED
|
File without changes
|
|
File without changes
|
{discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/ConfigProviderArguments.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
|
{discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/PatchApplicatorArguments.py
RENAMED
|
File without changes
|
|
File without changes
|