Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. from __future__ import print_function
  4. from mpi4py import MPI
  5. import time
  6. import numpy as np
  7.  
  8. rand = np.random.rand
  9.  
  10. IMG_H, IMG_W = 400, 400
  11. WIN_H, WIN_W = 5, 5
  12. LAY_H, LAY_W = IMG_H - WIN_H + 1, IMG_W - WIN_W + 1
  13. FILT_NUM = 6
  14.  
  15. image = rand(IMG_H, IMG_W)
  16. all_weights = rand(FILT_NUM, WIN_H, WIN_W)
  17. biases = rand(FILT_NUM)
  18. layer = rand(FILT_NUM, LAY_H, LAY_W)
  19.  
  20. comm = MPI.COMM_WORLD
  21. rank = comm.Get_rank()
  22. if rank == 0:
  23. # print('layer', layer.shape)
  24. start = time.time()
  25.  
  26. left = int((FILT_NUM / comm.size) * (comm.rank))
  27. right = int((FILT_NUM / comm.size) * (comm.rank + 1))
  28. print('left', left, 'right', right)
  29. total = 0
  30. for x in range(left, right):
  31. part = layer[x]
  32. weights = all_weights[x].reshape(all_weights[x].size)
  33. bias = biases[x]
  34. for i in range(LAY_H):
  35. for j in range(LAY_W):
  36. sum = 0
  37. counter = 0
  38. for k in range(i, i + WIN_H):
  39. for l in range(j, j + WIN_W):
  40. # print('weights', weights)
  41. sum += image[k, l] * weights[counter]
  42. counter += 1
  43. total = total + 1
  44. part[i, j] = sum
  45. print('total', total)
  46.  
  47. # print("Hello! I'm rank %d from %d running in total..." % (comm.rank, comm.size))
  48.  
  49. comm.Barrier() # wait for everybody to synchronize _here_
  50.  
  51. if rank == 0:
  52. end = time.time()
  53. # print('layer', layer.shape)
  54. print('time', end - start)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement