Advertisement
Dmitrey15

PyPy vs CPython, DerApproximator results

May 8th, 2012
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. from DerApproximator import *
  2. from numpy import sin, cos, arctan, arange
  3. from time import time
  4. N = 1000
  5.  
  6. vectorized_1 = lambda x: (x**2).sum()
  7.  
  8. def nonvectorized_1(x):
  9.     r = 0.0
  10.     for i in range(N):
  11.         r += 0.1 + 0.2 * sin(i) * cos(0.2+i) * arctan(15-i)
  12.     return r
  13.  
  14. print('\n1st derivatives: ')
  15. for name, N, f in [
  16.                 ('vectorized_1', 1500, vectorized_1),
  17.                 ('nonvectorized_1', 100, nonvectorized_1)
  18.                 ]:
  19.     t = time()
  20.     r = get_d1(f, arange(float(N)))
  21.     print('%s: time elapsed for N = %d: % 0.1f' % (name,  N, time()-t))
  22.  
  23. print('2nd derivatives: ')
  24. for name, N, f in [
  25.                 ('vectorized_1', 50, lambda x: (x**2).sum()),
  26.                 ('nonvectorized_1', 20, nonvectorized_1)
  27.                 ]:
  28.     t = time()
  29.     r = get_d2(f, arange(float(N)))
  30.     print('%s: time elapsed for N = %d: % 0.1f' % (name,  N, time()-t))
  31.  
  32.  
  33. '''
  34. CPython results:
  35. 1st derivatives:
  36. vectorized_1: time elapsed for N = 1000:  0.5
  37. nonvectorized_1: time elapsed for N = 100:  2.8
  38. 2nd derivatives:
  39. vectorized_1: time elapsed for N = 50:  4.8
  40. nonvectorized_1: time elapsed for N = 20:  9.7
  41.  
  42. PyPy results - faster for nonvectorized, but almost 5x times slower for 1st derivatives vectorized
  43. 1st derivatives:
  44. vectorized_1: time elapsed for N = 1000:  2.4
  45. nonvectorized_1: time elapsed for N = 100:  1.2
  46. 2nd derivatives:
  47. vectorized_1: time elapsed for N = 50:  4.3
  48. nonvectorized_1: time elapsed for N = 20:  3.7
  49. '''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement