Guest User

Untitled

a guest
Jun 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.91 KB | None | 0 0
  1. require 'rubygems'
  2. require 'parallel'
  3. require 'forque/forque'
  4.  
  5. set = (1..500).collect
  6.  
  7. puts "== Many Small Jobs Benchmark =="
  8.  
  9. start = Time.now
  10. f_result = Forque.new(*set).collect{|x| x**2}
  11. finish = Time.now
  12.  
  13. puts "Forque Benchmark: #{finish-start}"
  14.  
  15.  
  16. start = Time.now
  17. p_result = Parallel.map(set, :in_processes => 4){|x| x**2}
  18. finish = Time.now
  19.  
  20. puts "Parallel Benchmark: #{finish-start}"
  21.  
  22. start = Time.now
  23. s_result = set.map{|x| x**2}
  24. finish = Time.now
  25.  
  26. puts "Serial Benchmark: #{finish-start}"
  27.  
  28. f_result.sort!
  29. p_result.sort!
  30. s_result.sort!
  31. unless f_result == p_result and f_result == s_result
  32. puts "Results not equal!"
  33. end
  34.  
  35. puts "== Few Large Jobs Benchmark =="
  36.  
  37. set = [1]*100
  38.  
  39. start = Time.now
  40. Forque.new(*set).collect{|x| sleep(x) }
  41. finish = Time.now
  42.  
  43. puts "Forque Benchmark: #{finish-start}"
  44.  
  45.  
  46. start = Time.now
  47. Parallel.map(set, :in_processes => 4){|x| sleep(x) }
  48. finish = Time.now
  49.  
  50. puts "Parallel Benchmark: #{finish-start}"
Add Comment
Please, Sign In to add comment