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 neda -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110919/d574d1de/attachment.html>
Hi, neda> 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.What you want to do is pretty much like what DSWP does, see http://liberty.princeton.edu/Research/DSWP/ What DSWP does is partitioning a loop into producer/consumer thread. I know they had implemented DSWP in LLVM before, but I don't know what the current status is. Maybe you can mail them to ask some idea. Regards, chenwj -- Wei-Ren Chen (陳韋任) Computer Systems Lab, Institute of Information Science, Academia Sinica, Taiwan (R.O.C.) Tel:886-2-2788-3799 #1667
I've study their work carefully. My problem is the implementation of threads in llvm after partitionning. I want to have information about how to implement producer/consumer thread in llvm. I do not know where I should start in llvm for code generation and create thread and insert produce and consume statement . -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110920/9e6355aa/attachment.html>