[LLVMdev] Coarse-grained parallelism

Andreas Simbuerger simbuerg at googlemail.com
Wed Apr 27 03:59:39 PDT 2011

> Hello Tobi,
> my task is the automatic exploration of coarse-grained parallel-potential. In a first attempt I will disregard loop level parallelism and concentrate on function calls. Therefore I will collect some analysis information (dynamic as well as static), build a program-dependence-graph and evaluate it. The results shouldn't lead to automatic parallelization but to a recommendation for the user (which functions and how profitable). The main target for the approach are irregular applications with no specific sort of parallel characteristics.

If 2 function calls are known to be independent statically you can just
execute them in parallel. No need to give a hint to the user(?).

Interesting would be the following scenario (static only):
If you find 2 function calls that may not be independent, but have a
small set of conflicting accesses, you can point the conflict out to the
user and give him a hint (and an estimation of the achievable
performance gain perhaps).

> Do you have a clue how to find dependencies between different function calls smartly? DSA provides such functionality but I don't know how practicable it is.

I'm not an expert on alias analysis, but you should always keep in mind
that the achievable precision of all AliasAnalysis is limited at compile
time (A 100% precise AA could solve the halting problem, I think). As
you mentioned a dynamic part: You could enhance your
alias information at run time.

> Greetings (from Passau)
> Andreas
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

More information about the llvm-dev mailing list