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.
Files changed (502) hide show
  1. {discopop-4.0.0 → discopop-4.0.1}/PKG-INFO +1 -1
  2. {discopop-4.0.0 → discopop-4.0.1}/README.md +11 -11
  3. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/PKG-INFO +1 -1
  4. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/__main__.py +4 -2
  5. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/discopop_explorer.py +4 -0
  6. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detection.py +3 -2
  7. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/do_all_detector.py +9 -4
  8. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/geometric_decomposition_detector.py +3 -4
  9. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/pipeline_detector.py +3 -4
  10. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/reduction_detector.py +11 -5
  11. discopop-4.0.1/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
  12. discopop-4.0.1/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
  13. discopop-4.0.1/discopop_library/global_data/version/VERSION +1 -0
  14. discopop-4.0.1/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
  15. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/version/__pycache__/utils.cpython-38.pyc +0 -0
  16. discopop-4.0.0/discopop_library/__pycache__/__init__.cpython-38.pyc +0 -0
  17. discopop-4.0.0/discopop_library/global_data/__pycache__/__init__.cpython-38.pyc +0 -0
  18. discopop-4.0.0/discopop_library/global_data/version/VERSION +0 -1
  19. discopop-4.0.0/discopop_library/global_data/version/__pycache__/__init__.cpython-38.pyc +0 -0
  20. {discopop-4.0.0 → discopop-4.0.1}/LICENSE +0 -0
  21. {discopop-4.0.0 → discopop-4.0.1}/MANIFEST.in +0 -0
  22. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/SOURCES.txt +0 -0
  23. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/dependency_links.txt +0 -0
  24. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/entry_points.txt +0 -0
  25. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/requires.txt +0 -0
  26. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/top_level.txt +0 -0
  27. {discopop-4.0.0 → discopop-4.0.1}/discopop.egg-info/zip-safe +0 -0
  28. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/__init__.py +0 -0
  29. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/LineID.py +0 -0
  30. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/MemoryRegion.py +0 -0
  31. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/NodeID.py +0 -0
  32. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/aliases/__init__.py +0 -0
  33. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/CUNode.py +0 -0
  34. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/Dependency.py +0 -0
  35. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/DummyNode.py +0 -0
  36. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/FunctionNode.py +0 -0
  37. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/LoopNode.py +0 -0
  38. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/Node.py +0 -0
  39. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/NodeT.py +0 -0
  40. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/PEGraphX.py +0 -0
  41. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/PEGraph/__init__.py +0 -0
  42. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/__init__.py +0 -0
  43. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/patterns/PatternBase.py +0 -0
  44. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/patterns/PatternInfo.py +0 -0
  45. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/patterns/__init__.py +0 -0
  46. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/classes/variable.py +0 -0
  47. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/DepType.py +0 -0
  48. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/EdgeType.py +0 -0
  49. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/MWType.py +0 -0
  50. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/NodeType.py +0 -0
  51. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/enums/__init__.py +0 -0
  52. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/__init__.py +0 -0
  53. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/output/__init__.py +0 -0
  54. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/output/gephi.py +0 -0
  55. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/output/json.py +0 -0
  56. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/__init__.py +0 -0
  57. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/check_reachability.py +0 -0
  58. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/depends_ignore_readonly.py +0 -0
  59. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_loop_index.py +0 -0
  60. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_passed_by_reference.py +0 -0
  61. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_predecessor.py +0 -0
  62. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_readonly_inside_loop_body.py +0 -0
  63. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_reduction_var_by_name.py +0 -0
  64. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/properties/is_scalar_val.py +0 -0
  65. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/__init__.py +0 -0
  66. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/edges.py +0 -0
  67. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/memory_regions.py +0 -0
  68. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/nodes.py +0 -0
  69. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/paths.py +0 -0
  70. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/reductions.py +0 -0
  71. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/subtree.py +0 -0
  72. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/queries/variables.py +0 -0
  73. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/__init__.py +0 -0
  74. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/children.py +0 -0
  75. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/parent.py +0 -0
  76. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/traversal/successors.py +0 -0
  77. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/unused/__init__.py +0 -0
  78. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/PEGraph/unused/unused_functions.py +0 -0
  79. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/functions/__init__.py +0 -0
  80. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/json_serializer.py +0 -0
  81. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/parallel_utils.py +0 -0
  82. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/__init__.py +0 -0
  83. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/CombinedGPURegions.py +0 -0
  84. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/__init__.py +0 -0
  85. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Aliases.py +0 -0
  86. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Dependency.py +0 -0
  87. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/EntryPoint.py +0 -0
  88. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Enums.py +0 -0
  89. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/ExitPoint.py +0 -0
  90. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/Update.py +0 -0
  91. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/classes/__init__.py +0 -0
  92. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/combined_gpu_pattern_detector.py +0 -0
  93. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/prepare_metadata.py +0 -0
  94. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_1.py +0 -0
  95. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_2.py +0 -0
  96. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_3.py +0 -0
  97. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_4.py +0 -0
  98. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_5.py +0 -0
  99. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/step_6.py +0 -0
  100. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/combined_gpu_patterns/utilities.py +0 -0
  101. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/device_updates.py +0 -0
  102. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPULoop.py +0 -0
  103. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPUMemory.py +0 -0
  104. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/GPURegions.py +0 -0
  105. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/__init__.py +0 -0
  106. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/gpu_pattern_detector.py +0 -0
  107. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/simple_gpu_patterns/utils.py +0 -0
  108. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/__init__.py +0 -0
  109. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/alias_detection.py +0 -0
  110. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/classes.py +0 -0
  111. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/filter.py +0 -0
  112. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/postprocessor.py +0 -0
  113. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/preprocessor.py +0 -0
  114. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/__init__.py +0 -0
  115. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/auxiliary.py +0 -0
  116. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/barriers.py +0 -0
  117. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/data_sharing_clauses.py +0 -0
  118. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/dependency_clauses.py +0 -0
  119. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/suggesters/tasks.py +0 -0
  120. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/task_parallelism_detector.py +0 -0
  121. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/pattern_detectors/task_parallelism/tp_utils.py +0 -0
  122. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/plugins/__init__.py +0 -0
  123. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/plugins/pipeline.py +0 -0
  124. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/test/__init__.py +0 -0
  125. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/PEGraphConstructionUtilities.py +0 -0
  126. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/ParserUtilities.py +0 -0
  127. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/__init__.py +0 -0
  128. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/classes/DependenceItem.py +0 -0
  129. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/classes/LoopData.py +0 -0
  130. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/classes/__init__.py +0 -0
  131. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/PEGraphConstruction/parser.py +0 -0
  132. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/__init__.py +0 -0
  133. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/general/__init__.py +0 -0
  134. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/general/generate_Data_CUInst.py +0 -0
  135. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/__init__.py +0 -0
  136. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/collect_statistics.py +0 -0
  137. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/__init__.py +0 -0
  138. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/boxplot.py +0 -0
  139. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/cc_dictionary.py +0 -0
  140. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/subtree.py +0 -0
  141. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/cyclomatic_complexity/total.py +0 -0
  142. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/maximum_call_path_depth.py +0 -0
  143. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/num_function_calls.py +0 -0
  144. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/output_statistics.py +0 -0
  145. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_call_path_depths.py +0 -0
  146. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_cyclomatic_complexity.py +0 -0
  147. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/suggestion_lines_of_code.py +0 -0
  148. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/__init__.py +0 -0
  149. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/call_path_depth.py +0 -0
  150. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utilities/statistics/utilities/num_function_calls.py +0 -0
  151. {discopop-4.0.0 → discopop-4.0.1}/discopop_explorer/utils.py +0 -0
  152. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ArgumentClasses/GeneralArguments.py +0 -0
  153. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/CodeGenerator.py +0 -0
  154. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/CodeGeneratorArguments.py +0 -0
  155. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/__init__.py +0 -0
  156. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/ContentBuffer.py +0 -0
  157. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/Enums.py +0 -0
  158. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/Line.py +0 -0
  159. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/Pragma.py +0 -0
  160. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/UnpackedSuggestion.py +0 -0
  161. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/CodeGenerator/classes/__init__.py +0 -0
  162. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/ArgumentClasses.py +0 -0
  163. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/GEPDependencyRemover.py +0 -0
  164. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/Types.py +0 -0
  165. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__init__.py +0 -0
  166. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/__main__.py +0 -0
  167. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/GEPDependencyRemover/utils.py +0 -0
  168. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/Compatibility/LegacyDiscoPoP/__init__.py +0 -0
  169. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/ConfigProviderArguments.py +0 -0
  170. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/__main__.py +0 -0
  171. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/assets/.gitignore +0 -0
  172. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/ConfigProvider/config_provider.py +0 -0
  173. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/DependencyMetadata/compare_metadata.py +0 -0
  174. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/ArgumentClasses.py +0 -0
  175. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Autotuner.py +0 -0
  176. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Classes/CodeConfiguration.py +0 -0
  177. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Classes/ExecutionResult.py +0 -0
  178. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Statistics/StatisticsGraph.py +0 -0
  179. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/Types.py +0 -0
  180. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/__init__.py +0 -0
  181. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/__main__.py +0 -0
  182. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/EmpiricalAutotuning/utils.py +0 -0
  183. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/FolderStructure/__init__.py +0 -0
  184. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/FolderStructure/setup.py +0 -0
  185. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/FolderStructure/teardown.py +0 -0
  186. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/GlobalLogger/setup.py +0 -0
  187. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/HotspotLoaderArguments.py +0 -0
  188. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/HotspotNodeType.py +0 -0
  189. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/HotspotType.py +0 -0
  190. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/HostpotLoader/hostpot_loader.py +0 -0
  191. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/JSONHandler/JSONHandler.py +0 -0
  192. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/JSONHandler/__init__.py +0 -0
  193. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/__init__.py +0 -0
  194. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/delete.py +0 -0
  195. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/diff_modifications.py +0 -0
  196. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/initialize.py +0 -0
  197. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/load.py +0 -0
  198. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/LineMapping/save.py +0 -0
  199. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/MemoryRegions/__init__.py +0 -0
  200. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/MemoryRegions/utils.py +0 -0
  201. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/PatchApplicatorArguments.py +0 -0
  202. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/__init__.py +0 -0
  203. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/__main__.py +0 -0
  204. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/apply.py +0 -0
  205. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/clear.py +0 -0
  206. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/list.py +0 -0
  207. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/load.py +0 -0
  208. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/patch_applicator.py +0 -0
  209. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchApplicator/rollback.py +0 -0
  210. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/PatchGeneratorArguments.py +0 -0
  211. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/__init__.py +0 -0
  212. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/__main__.py +0 -0
  213. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/diffs.py +0 -0
  214. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/from_json_patterns.py +0 -0
  215. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/from_optimizer_output.py +0 -0
  216. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatchGenerator/patch_generator.py +0 -0
  217. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PathManagement/PathManagement.py +0 -0
  218. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PathManagement/__init__.py +0 -0
  219. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/PatternIdManagement/unique_pattern_id.py +0 -0
  220. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/__init__.py +0 -0
  221. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/CostModel.py +0 -0
  222. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/DataTransferCosts.py +0 -0
  223. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/DataTransfer/__init__.py +0 -0
  224. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/__init__.py +0 -0
  225. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/CostModels/utilities.py +0 -0
  226. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/DataTransfers.py +0 -0
  227. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/NewDataTransfers.py +0 -0
  228. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/__init__.py +0 -0
  229. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/calculate_configuration_data_movement.py +0 -0
  230. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/prepare_force_branch_end_data_movement.py +0 -0
  231. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/prepare_forced_data_movement.py +0 -0
  232. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/DataTransfers/prepare_forced_data_movement_prior_to_call.py +0 -0
  233. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/DelaunayInterpolatedMicrobench.py +0 -0
  234. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/ExtrapInterpolatedMicrobench.py +0 -0
  235. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/Microbench.py +0 -0
  236. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/MicrobenchParser.py +0 -0
  237. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/MixedMicrobench.py +0 -0
  238. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/PureDataMicrobench.py +0 -0
  239. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/__init__.py +0 -0
  240. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Microbench/utils.py +0 -0
  241. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/OptimizationGraph.py +0 -0
  242. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/OptimizerArguments.py +0 -0
  243. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/CalculateUpdates.py +0 -0
  244. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/FromCUs.py +0 -0
  245. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/DataAccesses/__init__.py +0 -0
  246. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/PETParser.py +0 -0
  247. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/PETParser/__init__.py +0 -0
  248. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/AddRangesToUpdates.py +0 -0
  249. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/LoopInitializationUpdates.py +0 -0
  250. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveDuplicatedUpdates.py +0 -0
  251. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveLoopIndexUpdates.py +0 -0
  252. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/RemoveSameDeviceUpdates.py +0 -0
  253. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/UpdateOptimization/main.py +0 -0
  254. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Variables/Experiment.py +0 -0
  255. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Variables/ExperimentUtils.py +0 -0
  256. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/Variables/__init__.py +0 -0
  257. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/__init__.py +0 -0
  258. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/__main__.py +0 -0
  259. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/bindings/__init__.py +0 -0
  260. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/bindings/utilities.py +0 -0
  261. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/__init__.py +0 -0
  262. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/ContextObject.py +0 -0
  263. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/ContextObjectUtils.py +0 -0
  264. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/Update.py +0 -0
  265. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/context/__init__.py +0 -0
  266. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/CallEdge.py +0 -0
  267. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/ChildEdge.py +0 -0
  268. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/DataFlowEdge.py +0 -0
  269. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/GenericEdge.py +0 -0
  270. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/MutuallyExclusiveEdge.py +0 -0
  271. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/OptionEdge.py +0 -0
  272. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/RequirementEdge.py +0 -0
  273. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/SuccessorEdge.py +0 -0
  274. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/TemporaryEdge.py +0 -0
  275. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/edges/__init__.py +0 -0
  276. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/enums/Distributions.py +0 -0
  277. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/enums/__init__.py +0 -0
  278. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextMerge.py +0 -0
  279. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextNode.py +0 -0
  280. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextRestore.py +0 -0
  281. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSave.py +0 -0
  282. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshot.py +0 -0
  283. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/ContextSnapshotPop.py +0 -0
  284. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/DeviceSwitch.py +0 -0
  285. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/FunctionReturn.py +0 -0
  286. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/FunctionRoot.py +0 -0
  287. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/GenericNode.py +0 -0
  288. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/Loop.py +0 -0
  289. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/SynchronizationTrigger.py +0 -0
  290. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/Workload.py +0 -0
  291. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/nodes/__init__.py +0 -0
  292. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/Network.py +0 -0
  293. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/System.py +0 -0
  294. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/__init__.py +0 -0
  295. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/CPU.py +0 -0
  296. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/Device.py +0 -0
  297. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/DeviceTypeEnum.py +0 -0
  298. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/GPU.py +0 -0
  299. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/devices/__init__.py +0 -0
  300. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/system/system_utils.py +0 -0
  301. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/types/Aliases.py +0 -0
  302. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/types/DataAccessType.py +0 -0
  303. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/classes/types/__init__.py +0 -0
  304. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/__init__.py +0 -0
  305. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/plotting/CostModels.py +0 -0
  306. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/plotting/__init__.py +0 -0
  307. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/presentation/ChoiceDetails.py +0 -0
  308. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/presentation/OptionTable.py +0 -0
  309. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/presentation/__init__.py +0 -0
  310. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/queries/ValueTableQuery.py +0 -0
  311. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/queries/__init__.py +0 -0
  312. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/widgets/ScrollableFrame.py +0 -0
  313. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/widgets/ScrollableText.py +0 -0
  314. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/gui/widgets/__init__.py +0 -0
  315. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/interactive/interactive_optimizer.py +0 -0
  316. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/evaluate.py +0 -0
  317. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/evaluate_all_decision_combinations.py +0 -0
  318. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/evolutionary_algorithm.py +0 -0
  319. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/greedy.py +0 -0
  320. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimization/validation.py +0 -0
  321. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/optimizer.py +0 -0
  322. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/scheduling/__init__.py +0 -0
  323. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/scheduling/workload_delta.py +0 -0
  324. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/__init__.py +0 -0
  325. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/__init__.py +0 -0
  326. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/do_all.py +0 -0
  327. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/main.py +0 -0
  328. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/importers/reduction.py +0 -0
  329. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/optimizers/loop_collapse.py +0 -0
  330. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/suggestions/optimizers/main.py +0 -0
  331. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/MOGUtilities.py +0 -0
  332. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/__init__.py +0 -0
  333. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/insert_device_switch_nodes.py +0 -0
  334. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/RandomSamples.py +0 -0
  335. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/GlobalOptimization/__init__.py +0 -0
  336. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/TopDown.py +0 -0
  337. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/LocalOptimization/__init__.py +0 -0
  338. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/optimization/__init__.py +0 -0
  339. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/simple_utilities.py +0 -0
  340. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/visualization/__init__.py +0 -0
  341. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/visualization/plotting.py +0 -0
  342. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/discopop_optimizer/utilities/visualization/update_graph.py +0 -0
  343. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/__init__.py +0 -0
  344. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/version/__init__.py +0 -0
  345. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/global_data/version/utils.py +0 -0
  346. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/py.typed +0 -0
  347. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/DetectionResult.py +0 -0
  348. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/MergedPattern.py +0 -0
  349. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/OptimizerOutputPattern.py +0 -0
  350. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/PatternStorage.py +0 -0
  351. {discopop-4.0.0 → discopop-4.0.1}/discopop_library/result_classes/__init__.py +0 -0
  352. {discopop-4.0.0 → discopop-4.0.1}/requirements.txt +0 -0
  353. {discopop-4.0.0 → discopop-4.0.1}/setup.cfg +0 -0
  354. {discopop-4.0.0 → discopop-4.0.1}/setup.py +0 -0
  355. {discopop-4.0.0 → discopop-4.0.1}/test/__init__.py +0 -0
  356. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/__init__.py +0 -0
  357. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/__init__.py +0 -0
  358. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/backwards_array_access/__init__.py +0 -0
  359. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/backwards_array_access/test.py +0 -0
  360. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/__init__.py +0 -0
  361. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/above_nesting_level_3/__init__.py +0 -0
  362. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/above_nesting_level_3/test.py +0 -0
  363. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing/__init__.py +0 -0
  364. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing/test.py +0 -0
  365. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing_2/__init__.py +0 -0
  366. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/allowing_2/test.py +0 -0
  367. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex/__init__.py +0 -0
  368. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex/test.py +0 -0
  369. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex_no_varname_duplicates/__init__.py +0 -0
  370. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/complex_no_varname_duplicates/test.py +0 -0
  371. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/preventing/__init__.py +0 -0
  372. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/preventing/simple/__init__.py +0 -0
  373. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/preventing/simple/test.py +0 -0
  374. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/__init__.py +0 -0
  375. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing/__init__.py +0 -0
  376. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing/test.py +0 -0
  377. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing_2/__init__.py +0 -0
  378. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/allowing_2/test.py +0 -0
  379. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing/__init__.py +0 -0
  380. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing/test.py +0 -0
  381. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing_2/__init__.py +0 -0
  382. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/calls/second_order/preventing_2/test.py +0 -0
  383. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/daxpy/__init__.py +0 -0
  384. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/daxpy/test.py +0 -0
  385. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/negative/__init__.py +0 -0
  386. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/negative/nested/OMPSCR/__init__.py +0 -0
  387. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/negative/nested/__init__.py +0 -0
  388. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/__init__.py +0 -0
  389. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/__init__.py +0 -0
  390. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/global_vars/miniFE_CSRMatrix_proxy/__init__.py +0 -0
  391. {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
  392. {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
  393. {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
  394. {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
  395. {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
  396. {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
  397. {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
  398. {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
  399. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/__init__.py +0 -0
  400. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/depth_2/__init__.py +0 -0
  401. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/nested/depth_2/positive/__init__.py +0 -0
  402. {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
  403. {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
  404. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/__init__.py +0 -0
  405. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/__init__.py +0 -0
  406. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/minimal/__init__.py +0 -0
  407. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/minimal/test.py +0 -0
  408. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/stack_access/__init__.py +0 -0
  409. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/negative/stack_access/test.py +0 -0
  410. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/positive/__init__.py +0 -0
  411. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/simple/not_nested/positive/test.py +0 -0
  412. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/__init__.py +0 -0
  413. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/nested/__init__.py +0 -0
  414. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/nested/positive/__init__.py +0 -0
  415. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/nested/positive/test.py +0 -0
  416. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/__init__.py +0 -0
  417. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_0/__init__.py +0 -0
  418. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_0/test.py +0 -0
  419. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_1/__init__.py +0 -0
  420. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_1/test.py +0 -0
  421. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_2/__init__.py +0 -0
  422. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_2/test.py +0 -0
  423. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_3/__init__.py +0 -0
  424. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_3/test.py +0 -0
  425. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_5/__init__.py +0 -0
  426. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/stack_access/various/case_5/test.py +0 -0
  427. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/__init__.py +0 -0
  428. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/__init__.py +0 -0
  429. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/do_all/struct/positive/miniFE_CSRMatrix_proxy/__init__.py +0 -0
  430. {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
  431. {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
  432. {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
  433. {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
  434. {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
  435. {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
  436. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/__init__.py +0 -0
  437. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/__init__.py +0 -0
  438. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/positive/__init__.py +0 -0
  439. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/positive/simple_1/__init__.py +0 -0
  440. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/optimizer/loop_collapse/positive/simple_1/test.py +0 -0
  441. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/__init__.py +0 -0
  442. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/negative/__init__.py +0 -0
  443. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/negative/case_1/__init__.py +0 -0
  444. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/negative/case_1/test.py +0 -0
  445. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/__init__.py +0 -0
  446. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/__init__.py +0 -0
  447. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/__init__.py +0 -0
  448. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/OMPSCR/c_Mandelbrot/test.py +0 -0
  449. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/reduction_pattern/positive/nested/__init__.py +0 -0
  450. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/__init__.py +0 -0
  451. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/__init__.py +0 -0
  452. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/first_private/__init__.py +0 -0
  453. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/first_private/case_1/__init__.py +0 -0
  454. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/first_private/case_1/test.py +0 -0
  455. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/last_private/__init__.py +0 -0
  456. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/last_private/case_1/__init__.py +0 -0
  457. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/last_private/case_1/test.py +0 -0
  458. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/no_clause/__init__.py +0 -0
  459. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/no_clause/case_1/__init__.py +0 -0
  460. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/no_clause/case_1/test.py +0 -0
  461. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/__init__.py +0 -0
  462. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_1/__init__.py +0 -0
  463. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_1/test.py +0 -0
  464. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_2/__init__.py +0 -0
  465. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/private/case_2/test.py +0 -0
  466. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/__init__.py +0 -0
  467. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_1/__init__.py +0 -0
  468. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_1/test.py +0 -0
  469. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_2/__init__.py +0 -0
  470. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_2/test.py +0 -0
  471. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_3/__init__.py +0 -0
  472. {discopop-4.0.0 → discopop-4.0.1}/test/end_to_end/sharing_clauses/do_all/shared/case_3/test.py +0 -0
  473. {discopop-4.0.0 → discopop-4.0.1}/test/utils/__init__.py +0 -0
  474. {discopop-4.0.0 → discopop-4.0.1}/test/utils/existence/__init__.py +0 -0
  475. {discopop-4.0.0 → discopop-4.0.1}/test/utils/existence/existence_utils.py +0 -0
  476. {discopop-4.0.0 → discopop-4.0.1}/test/utils/sharing_clauses/__init__.py +0 -0
  477. {discopop-4.0.0 → discopop-4.0.1}/test/utils/sharing_clauses/clauses_utils.py +0 -0
  478. {discopop-4.0.0 → discopop-4.0.1}/test/utils/validator_classes/DoAllInfoForValidation.py +0 -0
  479. {discopop-4.0.0 → discopop-4.0.1}/test/utils/validator_classes/__init__.py +0 -0
  480. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/__init__.py +0 -0
  481. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/__init__.py +0 -0
  482. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/__init__.py +0 -0
  483. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/__init__.py +0 -0
  484. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/__init__.py +0 -0
  485. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/simple/nested/depth_2/positive/__init__.py +0 -0
  486. {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
  487. {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
  488. {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
  489. {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
  490. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/__init__.py +0 -0
  491. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/various/__init__.py +0 -0
  492. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/various/case_4/__init__.py +0 -0
  493. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/do_all/stack_access/various/case_4/test.py +0 -0
  494. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/__init__.py +0 -0
  495. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/negative/__init__.py +0 -0
  496. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/negative/case_2/__init__.py +0 -0
  497. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/reduction_pattern/negative/case_2/test.py +0 -0
  498. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/__init__.py +0 -0
  499. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/do_all/__init__.py +0 -0
  500. {discopop-4.0.0 → discopop-4.0.1}/test/wip_end_to_end/sharing_clauses/do_all/first_private/__init__.py +0 -0
  501. {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
  502. {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.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
- This example installs DiscoPoP, instruments and builds the provided example, analyzes the results, and prints the identified parallelization suggestions to the console.
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
- # setup DiscoPoP
41
- git clone git@github.com:discopop-project/discopop.git
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 ../example
48
- mkdir build && cd build && cmake -DCMAKE_CXX_COMPILER=${DP_BUILD}/scripts/CXX_wrapper.sh .. && make
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.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,pipeline,geodec",
73
- help="Specify comma-separated list of pattern types to be identified. Options: reduction,doall,pipeline,geodec,simplegpu. Default: reduction,doall,pipeline,geodec",
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
- with Pool(initializer=__initialize_worker, initargs=(pet,)) as pool:
111
- tmp_result = list(tqdm.tqdm(pool.imap_unordered(__check_node, param_list), total=len(param_list)))
112
- for local_result in tmp_result:
113
- result += local_result
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
- with Pool(initializer=__initialize_worker, initargs=(pet,)) as pool:
115
- tmp_result = list(tqdm.tqdm(pool.imap_unordered(__check_node, param_list), total=len(param_list)))
116
- for local_result in tmp_result:
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
- with Pool(initializer=__initialize_worker, initargs=(pet,)) as pool:
184
- tmp_result = list(tqdm.tqdm(pool.imap_unordered(__check_node, param_list), total=len(param_list)))
185
- for local_result in tmp_result:
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, hotspots: Optional[Dict[HotspotType, List[Tuple[int, int, HotspotNodeType, str, float]]]]
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
- with Pool(initializer=__initialize_worker, initargs=(pet,)) as pool:
96
- tmp_result = list(tqdm.tqdm(pool.imap_unordered(__check_node, param_list), total=len(param_list)))
97
- for local_result in tmp_result:
98
- result += local_result
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:
File without changes
File without changes