Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

long runtime and insufficient memory resources #664

Open
J1372628520 opened this issue Sep 30, 2024 · 2 comments
Open

long runtime and insufficient memory resources #664

J1372628520 opened this issue Sep 30, 2024 · 2 comments

Comments

@J1372628520
Copy link

After compiling and linking a module with over 300 cpp files, the pattern detection phase takes too long to run, ultimately resulting in insufficient memory resources and the process being forcefully terminated.

@J1372628520
Copy link
Author

The generated Data.xml file is approximately 83.5 MB in size.
In addition, there are multiple deeply nested loops in the PEGraphX.py file. Could this be the reason for the performance bottleneck?

@lukasrothenberger
Copy link
Collaborator

lukasrothenberger commented Sep 30, 2024

Hello @J1372628520,
Yes, unfortunately the deeply nested loops are a known performance bottleneck. Sadly, we could not yet find the time to resolve it due to other priorities. Nevertheless, as it is becoming a problem for as as well, we will tackle it rather sooner than later.

Something you might try in the mean time is restricting the set of considered source files to a smaller sub set.
For this:

  • clear the contents of the .discopopdirectory
  • create the FileMapping.txt manually by execution the script build/scripts/dp-fmap in the projects root folder
  • restrict the entries in the created FileMapping.txt to source files that might contain computationally expensive kernels
  • move the modifed FileMapping.txt to the now empty .discopop folder
  • restart discopop.

Since a FileMapping.txt has been supplied, it will not be created dynamically and thus only the specified set of files will be considered during static and dynamic analysis. However, as the data for the pattern analysis might become incomplete, please treat the generated parallelization suggestions with extra caution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants