=================
 ADI
=================

Code:
for (t=0; t<=T-1; t++)
 {
   for (i1=0; i1<=N-1; i1++)
     for (i2=1; i2<=N-1; i2++)
      {
        X[i1][i2] = X[i1][i2] - X[i1][i2-1] * A[i1][i2] / B[i1][i2-1];
        B[i1][i2] = B[i1][i2] - A[i1][i2] * A[i1][i2] / B[i1][i2-1];
      }
   for (i1=1; i1<=N-1; i1++)
     for (i2=0; i2<=N-1; i2++)
      {
        X[i1][i2] = X[i1][i2] - X[i1-1][i2] * A[i1][i2] / B[i1-1][i2];
        B[i1][i2] = B[i1][i2] - A[i1][i2] * A[i1][i2] / B[i1-1][i2];
      }
 }

Total number of operations = 12*T*N*(N-1)

*********************
Sequential version
*********************
T=512
N   icc -fast       pluto       pluto+ancc
----------------------------------------------------------------------------------------
seconds:
  128    0.364157    0.220748   0.109741
  256    1.486614    0.870901   0.397073
  512    5.436901    3.504433   1.540283
 1024   22.354162   13.994765   6.077161
 2048   89.080347   56.148125  24.024640 
 4096  359.712225  225.080215  96.970454
gflops:
  128  0.27  0.45  0.91
  256  0.27  0.46  1.01
  512  0.30  0.46  1.04
 1024  0.29  0.46  1.06
 2048  0.29  0.46  1.07
 4096  0.29  0.46  1.06

*********************
Parallel version
*********************
T=512
N=1024
----------------------------------------------------------------------------------------
 #cores   icc -fast -parallel    pluto   pluto+ancc
----------------------------------------------------------------------------------------
seconds:
  1  22.373961   14.059926    6.076208
  2  13.214722   10.547529    3.169097
  3  10.709920   10.549961    2.287628
  4   9.314060   10.547799    1.748200
gflops:
  1  0.29  0.46   1.06
  2  0.49  0.61   2.03
  3  0.60  0.61   2.81
  4  0.69  0.61   3.68

 IVEC = True
 PAR = True
 PERM = [0, 2, 1]
 SCREP = True
 T1_1 = 32
 T1_2 = 16
 T1_3 = 16
 T2_1 = 1
 T2_2 = 1
 T2_3 = 8
 U1 = 4
 U2 = 4
 U3 = 4


