顺序程序和代码生成的并行化
我是理学硕士学生,我的论文主题是“在多核处理器上运行的线程级顺序程序的并行化”。我希望在线程级别自动并行化顺序程序,以便在具有软件流水线的多核处理器上运行。 我使用 LLVM 进行代码分析并将代码转换为 IR,我可以从 IR 代码中提取 PDG 图并将其转换为 SCCDAG,并根据我的标准对 DAGSCC 进行分区。在下一步中,我可以识别分区之间通信的位置。 但对于最后一步和代码生成,我没有任何想法和信息来将分区和通信分配给线程。我停在这个位置。不幸的是我没有足够的时间,而且我被迫完成这个项目。 你能帮助我吗?你知道可以在短时间内帮助我的工具或参考资料吗? 感谢您的关注,祝您度过愉快的时光。 最好的问候
I am MSc student and my thesis subject is "parallelization of sequential program in thread level to run on multi-core processors". I want automatically parallelize sequential program in thread level to run on multi-core processors with software pipelining.
I've use LLVM to code analysis and translate code to IR, I could extract PDG graph form IR code and convert it to SCCDAG and partition DAGSCC considering with my criteria. In next step I could recognize position of communications between partitions.
But for final step and code generation, I don't have any idea and information to assign partitions and communications to threads. and I stop in this position. Unfortunately I don’t have enough time and I am under force to complete the project.
Can you help me and do you know tools or references that can help me in short time.
thank you for your attention and I wish you a good times.
Best regards
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果你有压力,你可以稍微改变一下话题吗?有很多与并行化相关的类似主题,它们可能会引起您的主管的兴趣,并且可能会更好地解决您的资源问题(时间、性能等)。
查看:
查看与自动并行化相关的现有工具,例如:
您可能想玩指称语义主题,并制作类似于 cloog 的工具,将识别的模式更改为 openmp 并行化代码。
顺便提一句。 ROSE(编译器框架) 可能是 LLVM 的有趣替代品,因为它支持 OpenMP - http://www.rosecompiler.org/ 。
If you are under pressure, might you be able to change slightly topic ? There are plenty of simillar topics related with parallelization, that might interest your supervisor, and might better address your resources (time, performance etc).
Check out:
Checkout, existing tools related with automatic parallelization, like:
You might like to play with Denotional Semantics topic, and make tool similar to cloog, that changes recognized patterns into openmp parallelized code.
Btw. ROSE (compiler framework) might be interesting alternative to LLVM, because of it's OpenMP support - http://www.rosecompiler.org/ .