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.
Files changed (287) hide show
  1. {discopop-3.1.0/discopop.egg-info → discopop-3.1.1}/PKG-INFO +1 -1
  2. {discopop-3.1.0 → discopop-3.1.1/discopop.egg-info}/PKG-INFO +1 -1
  3. {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/SOURCES.txt +1 -0
  4. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/json_serializer.py +3 -0
  5. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detection.py +6 -6
  6. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py +1 -1
  7. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/gpu_pattern_detector.py +4 -4
  8. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/JSONHandler/JSONHandler.py +2 -2
  9. discopop-3.1.1/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
  10. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimizer.py +1 -1
  11. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/main.py +2 -2
  12. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/optimizers/loop_collapse.py +1 -1
  13. discopop-3.1.1/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
  14. discopop-3.1.1/discopop_library/global_data/version/VERSION +1 -0
  15. discopop-3.1.1/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
  16. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/version/__pycache__/utils.cpython-38.pyc +0 -0
  17. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/result_classes/DetectionResult.py +4 -9
  18. discopop-3.1.1/discopop_library/result_classes/PatternStorage.py +30 -0
  19. {discopop-3.1.0 → discopop-3.1.1}/test/do_all/daxpy/test.py +1 -1
  20. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/negative/simple_1/test.py +1 -1
  21. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/positive/simple_1/test.py +1 -1
  22. discopop-3.1.0/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
  23. discopop-3.1.0/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
  24. discopop-3.1.0/discopop_library/global_data/version/VERSION +0 -1
  25. discopop-3.1.0/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
  26. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_profiler/__init__.py +0 -0
  27. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_profiler/__main__.py +0 -0
  28. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_profiler/utils.py +0 -0
  29. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/__init__.py +0 -0
  30. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/__main__.py +0 -0
  31. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/assets/__init__.py +0 -0
  32. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/assets/icons/__init__.py +0 -0
  33. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Arguments.py +0 -0
  34. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/CodePreview.py +0 -0
  35. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Console.py +0 -0
  36. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/ExecutionConfiguration.py +0 -0
  37. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Pragma.py +0 -0
  38. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/ProfilingContainer.py +0 -0
  39. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Settings.py +0 -0
  40. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/Suggestion.py +0 -0
  41. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/TKVarStorage.py +0 -0
  42. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/classes/__init__.py +0 -0
  43. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/headless/__init__.py +0 -0
  44. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/headless/headless_execution.py +0 -0
  45. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/__init__.py +0 -0
  46. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/execution.py +0 -0
  47. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/main.py +0 -0
  48. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/optimizer/__init__.py +0 -0
  49. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/optimizer/binding.py +0 -0
  50. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/settings.py +0 -0
  51. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/suggestions/__init__.py +0 -0
  52. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/suggestions/overview.py +0 -0
  53. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/utils.py +0 -0
  54. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/widgets/ScrollableText.py +0 -0
  55. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/screens/widgets/__init__.py +0 -0
  56. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/utils.py +0 -0
  57. {discopop-3.1.0 → discopop-3.1.1}/DEPRECATED_discopop_wizard/wizard.py +0 -0
  58. {discopop-3.1.0 → discopop-3.1.1}/LICENSE +0 -0
  59. {discopop-3.1.0 → discopop-3.1.1}/MANIFEST.in +0 -0
  60. {discopop-3.1.0 → discopop-3.1.1}/README.md +0 -0
  61. {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/dependency_links.txt +0 -0
  62. {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/entry_points.txt +0 -0
  63. {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/requires.txt +0 -0
  64. {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/top_level.txt +0 -0
  65. {discopop-3.1.0 → discopop-3.1.1}/discopop.egg-info/zip-safe +0 -0
  66. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/PEGraphX.py +0 -0
  67. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/__init__.py +0 -0
  68. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/__main__.py +0 -0
  69. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/discopop_explorer.py +0 -0
  70. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/generate_Data_CUInst.py +0 -0
  71. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/parallel_utils.py +0 -0
  72. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/parser.py +0 -0
  73. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/PatternBase.py +0 -0
  74. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/PatternInfo.py +0 -0
  75. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/__init__.py +0 -0
  76. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/CombinedGPURegions.py +0 -0
  77. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/__init__.py +0 -0
  78. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Aliases.py +0 -0
  79. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Dependency.py +0 -0
  80. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/EntryPoint.py +0 -0
  81. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Enums.py +0 -0
  82. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/ExitPoint.py +0 -0
  83. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Update.py +0 -0
  84. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/__init__.py +0 -0
  85. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/combined_gpu_pattern_detector.py +0 -0
  86. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/prepare_metadata.py +0 -0
  87. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_1.py +0 -0
  88. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_2.py +0 -0
  89. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_3.py +0 -0
  90. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_4.py +0 -0
  91. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_5.py +0 -0
  92. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_6.py +0 -0
  93. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/utilities.py +0 -0
  94. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/device_updates.py +0 -0
  95. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/do_all_detector.py +0 -0
  96. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/geometric_decomposition_detector.py +0 -0
  97. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/pipeline_detector.py +0 -0
  98. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/reduction_detector.py +0 -0
  99. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPUMemory.py +0 -0
  100. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPURegions.py +0 -0
  101. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/__init__.py +0 -0
  102. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py +0 -0
  103. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py +0 -0
  104. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/alias_detection.py +0 -0
  105. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/classes.py +0 -0
  106. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/filter.py +0 -0
  107. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/postprocessor.py +0 -0
  108. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/preprocessor.py +0 -0
  109. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/__init__.py +0 -0
  110. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/auxiliary.py +0 -0
  111. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/barriers.py +0 -0
  112. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/data_sharing_clauses.py +0 -0
  113. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/dependency_clauses.py +0 -0
  114. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/tasks.py +0 -0
  115. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/task_parallelism_detector.py +0 -0
  116. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/pattern_detectors/task_parallelism/tp_utils.py +0 -0
  117. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/plugins/__init__.py +0 -0
  118. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/plugins/pipeline.py +0 -0
  119. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/test/__init__.py +0 -0
  120. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/utils.py +0 -0
  121. {discopop-3.1.0 → discopop-3.1.1}/discopop_explorer/variable.py +0 -0
  122. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/CodeGenerator.py +0 -0
  123. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/CodeGeneratorArguments.py +0 -0
  124. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/__init__.py +0 -0
  125. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/ContentBuffer.py +0 -0
  126. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/Enums.py +0 -0
  127. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/Line.py +0 -0
  128. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/Pragma.py +0 -0
  129. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/UnpackedSuggestion.py +0 -0
  130. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/CodeGenerator/classes/__init__.py +0 -0
  131. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/ConfigProviderArguments.py +0 -0
  132. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/__main__.py +0 -0
  133. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/assets/.gitignore +0 -0
  134. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/ConfigProvider/config_provider.py +0 -0
  135. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/JSONHandler/__init__.py +0 -0
  136. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/__init__.py +0 -0
  137. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/diff_modifications.py +0 -0
  138. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/initialize.py +0 -0
  139. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/load.py +0 -0
  140. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/LineMapping/save.py +0 -0
  141. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/MemoryRegions/__init__.py +0 -0
  142. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/MemoryRegions/utils.py +0 -0
  143. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/PatchApplicatorArguments.py +0 -0
  144. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/__init__.py +0 -0
  145. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/__main__.py +0 -0
  146. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/apply.py +0 -0
  147. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/clear.py +0 -0
  148. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/list.py +0 -0
  149. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/load.py +0 -0
  150. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/patch_applicator.py +0 -0
  151. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchApplicator/rollback.py +0 -0
  152. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/PatchGeneratorArguments.py +0 -0
  153. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/__init__.py +0 -0
  154. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/__main__.py +0 -0
  155. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/diffs.py +0 -0
  156. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/from_json_patterns.py +0 -0
  157. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/from_optimizer_output.py +0 -0
  158. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatchGenerator/patch_generator.py +0 -0
  159. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PathManagement/PathManagement.py +0 -0
  160. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PathManagement/__init__.py +0 -0
  161. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/PatternIdManagement/unique_pattern_id.py +0 -0
  162. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/__init__.py +0 -0
  163. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/CostModel.py +0 -0
  164. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/DataTransferCosts.py +0 -0
  165. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/__init__.py +0 -0
  166. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/__init__.py +0 -0
  167. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/CostModels/utilities.py +0 -0
  168. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/DataTransfers/DataTransfers.py +0 -0
  169. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/DataTransfers/__init__.py +0 -0
  170. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/DelaunayInterpolatedMicrobench.py +0 -0
  171. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/ExtrapInterpolatedMicrobench.py +0 -0
  172. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/Microbench.py +0 -0
  173. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/MicrobenchParser.py +0 -0
  174. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/MixedMicrobench.py +0 -0
  175. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/PureDataMicrobench.py +0 -0
  176. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/__init__.py +0 -0
  177. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Microbench/utils.py +0 -0
  178. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/OptimizationGraph.py +0 -0
  179. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/OptimizerArguments.py +0 -0
  180. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/CalculateUpdates.py +0 -0
  181. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/FromCUs.py +0 -0
  182. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/__init__.py +0 -0
  183. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/PETParser.py +0 -0
  184. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/PETParser/__init__.py +0 -0
  185. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/LoopInitializationUpdates.py +0 -0
  186. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveDuplicatedUpdates.py +0 -0
  187. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveLoopIndexUpdates.py +0 -0
  188. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/UpdateOptimization/main.py +0 -0
  189. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Variables/Experiment.py +0 -0
  190. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Variables/ExperimentUtils.py +0 -0
  191. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/Variables/__init__.py +0 -0
  192. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/__init__.py +0 -0
  193. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/__main__.py +0 -0
  194. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/bindings/__init__.py +0 -0
  195. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/bindings/utilities.py +0 -0
  196. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/__init__.py +0 -0
  197. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/ContextObject.py +0 -0
  198. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/ContextObjectUtils.py +0 -0
  199. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/Update.py +0 -0
  200. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/context/__init__.py +0 -0
  201. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/ChildEdge.py +0 -0
  202. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/DataFlowEdge.py +0 -0
  203. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/GenericEdge.py +0 -0
  204. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/MutuallyExclusiveEdge.py +0 -0
  205. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/OptionEdge.py +0 -0
  206. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/RequirementEdge.py +0 -0
  207. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/SuccessorEdge.py +0 -0
  208. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/TemporaryEdge.py +0 -0
  209. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/edges/__init__.py +0 -0
  210. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/enums/Distributions.py +0 -0
  211. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/enums/__init__.py +0 -0
  212. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextMerge.py +0 -0
  213. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextNode.py +0 -0
  214. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextRestore.py +0 -0
  215. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSave.py +0 -0
  216. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshot.py +0 -0
  217. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshotPop.py +0 -0
  218. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/FunctionRoot.py +0 -0
  219. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/GenericNode.py +0 -0
  220. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/Loop.py +0 -0
  221. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/Workload.py +0 -0
  222. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/nodes/__init__.py +0 -0
  223. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/Network.py +0 -0
  224. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/System.py +0 -0
  225. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/__init__.py +0 -0
  226. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/CPU.py +0 -0
  227. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/Device.py +0 -0
  228. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/DeviceTypeEnum.py +0 -0
  229. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/GPU.py +0 -0
  230. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/devices/__init__.py +0 -0
  231. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/system/system_utils.py +0 -0
  232. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/types/Aliases.py +0 -0
  233. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/types/DataAccessType.py +0 -0
  234. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/classes/types/__init__.py +0 -0
  235. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/__init__.py +0 -0
  236. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/plotting/CostModels.py +0 -0
  237. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/plotting/__init__.py +0 -0
  238. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/presentation/ChoiceDetails.py +0 -0
  239. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/presentation/OptionTable.py +0 -0
  240. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/presentation/__init__.py +0 -0
  241. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/queries/ValueTableQuery.py +0 -0
  242. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/queries/__init__.py +0 -0
  243. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/widgets/ScrollableFrame.py +0 -0
  244. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/gui/widgets/__init__.py +0 -0
  245. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/evaluate.py +0 -0
  246. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/evaluate_all_decision_combinations.py +0 -0
  247. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/evolutionary_algorithm.py +0 -0
  248. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/optimization/validation.py +0 -0
  249. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/scheduling/__init__.py +0 -0
  250. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/scheduling/workload_delta.py +0 -0
  251. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/__init__.py +0 -0
  252. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/__init__.py +0 -0
  253. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/do_all.py +0 -0
  254. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/importers/reduction.py +0 -0
  255. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/suggestions/optimizers/main.py +0 -0
  256. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/MOGUtilities.py +0 -0
  257. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/__init__.py +0 -0
  258. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/RandomSamples.py +0 -0
  259. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/__init__.py +0 -0
  260. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/TopDown.py +0 -0
  261. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/__init__.py +0 -0
  262. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/optimization/__init__.py +0 -0
  263. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/simple_utilities.py +0 -0
  264. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/visualization/__init__.py +0 -0
  265. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/visualization/plotting.py +0 -0
  266. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/discopop_optimizer/utilities/visualization/update_graph.py +0 -0
  267. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/__init__.py +0 -0
  268. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/version/__init__.py +0 -0
  269. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/global_data/version/utils.py +0 -0
  270. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/py.typed +0 -0
  271. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/result_classes/OptimizerOutputPattern.py +0 -0
  272. {discopop-3.1.0 → discopop-3.1.1}/discopop_library/result_classes/__init__.py +0 -0
  273. {discopop-3.1.0 → discopop-3.1.1}/requirements.txt +0 -0
  274. {discopop-3.1.0 → discopop-3.1.1}/setup.cfg +0 -0
  275. {discopop-3.1.0 → discopop-3.1.1}/setup.py +0 -0
  276. {discopop-3.1.0 → discopop-3.1.1}/test/__init__.py +0 -0
  277. {discopop-3.1.0 → discopop-3.1.1}/test/do_all/__init__.py +0 -0
  278. {discopop-3.1.0 → discopop-3.1.1}/test/do_all/daxpy/__init__.py +0 -0
  279. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/__init__.py +0 -0
  280. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/__init__.py +0 -0
  281. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/negative/__init__.py +0 -0
  282. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/negative/simple_1/__init__.py +0 -0
  283. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/positive/__init__.py +0 -0
  284. {discopop-3.1.0 → discopop-3.1.1}/test/optimizer/loop_collapse/positive/simple_1/__init__.py +0 -0
  285. {discopop-3.1.0 → discopop-3.1.1}/test/utils/__init__.py +0 -0
  286. {discopop-3.1.0 → discopop-3.1.1}/test/utils/validator_classes/DoAllInfoForValidation.py +0 -0
  287. {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.0
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.0
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
@@ -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
@@ -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)
@@ -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()
@@ -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
- reduction: List[ReductionInfo]
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.optimizer_output = []
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
 
File without changes
File without changes
File without changes