[LLVMdev] AESOP autoparallelizing compiler

Rahul rahul3527 at gmail.com
Mon Mar 11 05:59:07 PDT 2013


Hi Timothy,

Today I happened to download the code and do some experiments.
I actually wanted to see how you handle inter-procedure alias analysis.
So, I set inline threshold to zero and tried out following example
===============================================
#define N 1024
void func(double *A, double *B)
{
  int i;
  for (i=1; i<N-2; i++) {
    B[i] = A[i] + i*3;
  }
}

void func1(double *A, double *B)
{
  func(A,B);
}

int main(void)
{
  double data[N];
  double data1[N];
  double result=0;
  int i;

  for (i=0; i<N; i++) {
    result += i*3;
    data[i] = result;
  }
  func1(data, data1);

  printf(" Data[10] = %lf\n", data[10]);
  printf("Data1[10] = %lf\n", data1[10]);

  return 0;
}
===============================================
I got following parallalization info after compiling:

    Loop main:for.body has a loop carried scalar dependence, hence will not
be parallelized
    Loop func:for.body carries no dependence, hence is being parallelized

Since A and B to function "func" are aliases it shouldn't have parallelized.

Can you please let me know how you compute dependence ??


Thanks,
Rahul



On Sun, Mar 10, 2013 at 7:28 AM, Timothy Mattausch Creech
<tcreech at umd.edu>wrote:

> On Mon, Mar 04, 2013 at 03:01:15PM +0800, 陳韋任 (Wei-Ren Chen) wrote:
> > Hi Timothy,
> >
> > >  We would like to inform the community that we're releasing a version
> of our research compiler, "AESOP", developed at UMD using LLVM. AESOP is a
> distance-vector-based autoparallelizing compiler for shared-memory
> machines. The source code and some further information is available at
> > >
> > >  http://aesop.ece.umd.edu
> > >
> > > The main components of the released implementation are loop memory
> dependence analysis and parallel code generation using calls to POSIX
> threads. Since we currently have only a 2-person development team, we are
> still on LLVM 3.0, and some of the code could use some cleanup. Still, we
> hope that the work will be of interest to some.
> >
> >   Do you have data show us that how much parallelization the AESOP can
> > extract from those benchmarks? :)
> >
> > Regards,
> > chenwj
> >
> > --
> > Wei-Ren Chen (陳韋任)
> > Computer Systems Lab, Institute of Information Science,
> > Academia Sinica, Taiwan (R.O.C.)
> > Tel:886-2-2788-3799 #1667
> > Homepage: http://people.cs.nctu.edu.tw/~chenwj
>
> Hi Wei-Ren,
>   Sorry for the slow response. We're working on a short tech report which
> will be up on the website in April. This will contain a "results" section,
> including results from the SPEC benchmarks which we can't include in the
> source distribution.
>
> Briefly, I can say that we get good speedups on some of the NAS and SPEC
> benchmarks, such as a 3.6x+ speedup on 4 cores on the serial version of NAS
> "CG" (Fortran), and "lbm" (C) from CPU2006. (These are of course among our
> best results.)
>
> -Tim
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>



-- 
Regards,
Rahul Patil.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130311/90e8df8c/attachment.html>


More information about the llvm-dev mailing list