/[escript]/trunk/esys2/escript/test/python/benchmark.py
ViewVC logotype

Diff of /trunk/esys2/escript/test/python/benchmark.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 122 by jgs, Thu Jun 9 05:38:05 2005 UTC revision 123 by jgs, Fri Jul 8 04:08:13 2005 UTC
# Line 5  from time import time Line 5  from time import time
5  from esys.escript import *  from esys.escript import *
6  from esys.finley import Brick  from esys.finley import Brick
7  from numarray import ones  from numarray import ones
8    
9  cache_size=3 # Mbytes  cache_size=3 # Mbytes
10  nterm_max=256  nterm_max=256
   
11  ne=20000  ne=20000
12  np=int(getenv("OMP_NUM_THREADS"))  np=int(getenv("OMP_NUM_THREADS"))
13  print "np =",np  print "np =",np
14    
15    print "nthreads, num. terms, num. comp, volume[Mbytes], cache usage, Gflops/thread"
16    
17  for var in [True,False]:  for var in [True,False]:
18       print "nthreads, num. terms, num. comp, volume[Mbytes], cache usage, Gflops/thread"  
19       n=int(ne**(1./3.))       n=int(ne**(1./3.))
20       dom=Brick(n,n,n)       dom=Brick(n,n,n)
21       l=(n+1)**3       l=(n+1)**3
22       sx=dom.getX()[0]+dom.getX()[1]+dom.getX()[2]       sx=dom.getX()[0]+dom.getX()[1]+dom.getX()[2]
23    
24       for ncomp in [1, 2, 4, 8, 16, 32, 128, 256]:       for ncomp in [1, 2, 4, 8, 16, 32, 128, 256]:
25    
26          fac=ones([ncomp])          fac=ones([ncomp])
27          dataset=[]          dataset=[]
28          for i in range(nterm_max+1):          for i in range(nterm_max+1):
29               dataset.append(sx*fac*(i+1))               dataset.append(sx*fac*(i+1))
30          # for nterm in [256, 128, 64, 32, 16, 8, 4, 2]:  
31          for nterm in [2, 4, 8, 16, 32, 64, 128, 256]:          for nterm in [2, 4, 8, 16, 32, 64, 128, 256]:
32    
33             total_length=(ncomp*float(l)*(nterm+1)*8.)*1.e-6             total_length=(ncomp*float(l)*(nterm+1)*8.)*1.e-6
34    
35             if var:             if var:
36    
37                opcount=(nterm-1)*float(l)*ncomp*1.e-9                opcount=(nterm-1)*float(l)*ncomp*1.e-9
38                a=sx*0.*fac                a=sx*0.*fac
39                rv=DataVariable(a)                rv=DataVariable(a)
40                dv=[]                dv=[]
41                for d in dataset[:nterm]: dv.append(DataVariable(d))                for d in dataset[:nterm]:
42                    dv.append(DataVariable(d))
43                t=time()                t=time()
44                for i in range(1,nterm): dv[i].sum(dv[i-1])                for i in range(1,nterm):
45                    dv[i].sum(dv[i-1])
46                r=dv[nterm-1].evaluate()                r=dv[nterm-1].evaluate()
47                t=time()-t                t=time()-t
48    
49             else:             else:
50    
51                opcount=nterm*float(l)*ncomp*1.e-9                opcount=nterm*float(l)*ncomp*1.e-9
52                r=sx*0.*fac                r=sx*0.*fac
53                t=time()                t=time()
54                for d in dataset[:nterm]:r+=d                for d in dataset[:nterm]:
55                    r+=d
56                t=time()-t                t=time()-t
57    
58             err=Lsup(sx*fac*(nterm+1.)*nterm/2.-r)             err=Lsup(sx*fac*(nterm+1.)*nterm/2.-r)
59             if err>1.e-8:             if err>1.e-8:
60                 raise SystemError,"result wrong (error %e)!"%err                 raise SystemError,"result wrong (error %e)!"%err

Legend:
Removed from v.122  
changed lines
  Added in v.123

  ViewVC Help
Powered by ViewVC 1.1.26