#!/usr/bin/ruby # デュアルコア有効性テストプログラム # 2007.9.23 野田篤司 # 使いかた: # $ ./testDualCore03.rb -1 :シングルコアで計算 # $ ./testDualCore03.rb   :デュアルコアで計算 id = 0 while args = ARGV.shift do id = args.to_i() end n = 100000000 if id == 0 puts Time.now cal1 = open("|ruby testDualCore03.rb 1","r+") cal1.close_write cal2 = open("|ruby testDualCore03.rb 2","r+") cal2.close_write d1 = cal1.readlines.to_s.to_f puts d1 cal1.close_read d2 = cal2.readlines.to_s.to_f puts d2 cal2.close_read puts d1 + d2 puts Time.now elsif id == 1 a = 4.0 i = 3 while i <= n do a -= 4.0 / i i += 4 end puts a elsif id == 2 b = 0.0 j = 5 while j <= n do b += 4.0 / j j += 4 end puts b else puts Time.now a = 4.0 i = 3 while i <= n do a -= 4.0 / i i += 4 end b = 0.0 j = 5 while j <= n do b += 4.0 / j j += 4 end puts a + b puts Time.now end