SDPA-GMP 7.1.2 と 7.1.1 では問題によって差が大きくなったり、減ったりする現象が見られる(以下のように)。反対に 7.1.2 で遅くなる場合もある。
○ソフトウェア: SDPA-GMP 7.1.1 と SDPA-GMP 7.1.2 + GMP 4.2.4
○実行マシン1:Intel Core i7 965(3.2GHz) : メモリ 12GB : Fedora 10 for x86_64
○実行マシン2:AMD Opteron 2384 (2.7GHz) : メモリ 32GB : CentOS 5.2 for x86_64
問題1 : mcp124-1.dat-s
実行マシン1
SDPA-GMP 7.1.1 : 68.580s
SDPA-GMP 7.1.2 : 46.370s
実行マシン2
SDPA-GMP 7.1.1 : 70.370s
SDPA-GMP 7.1.2 : 53.270s
問題2 : theta2.dat-s
実行マシン1
SDPA-GMP 7.1.1 : 216.750s
SDPA-GMP 7.1.2 : 206.450s
実行マシン2
SDPA-GMP 7.1.1 : 221.770s
SDPA-GMP 7.1.2 : 230.100s
問題3 : mater-2.dat-s
実行マシン1
SDPA-GMP 7.1.1 : 39.170s
SDPA-GMP 7.1.2 : 33.100s
実行マシン2
SDPA-GMP 7.1.1 : 40.600s
SDPA-GMP 7.1.2 : 39.830s
そこで問題1(実行マシン1)について gprof でプロファイルを行ってみた。__gmpn_addmul_1 や __gmpf_sub は変わらないが、__gmpf_mul と __gmpf_add は 7.1.2 の方が速くなっている。
○SDPA-GMP 7.1.1
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
15.44 9.05 9.05 __gmpn_addmul_1
13.62 17.04 7.99 __gmpf_mul
9.76 22.76 5.73 __gmpf_add
6.07 26.32 3.56 _int_malloc
5.10 29.31 2.99 __gmpf_sub
○ SDPA-GMP 7.1.2
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
21.44 9.04 9.04 __gmpn_addmul_1
12.13 14.16 5.12 __gmpf_mul
8.93 17.92 3.77 __gmpf_add
7.07 20.90 2.98 __gmpf_sub
6.36 23.58 2.68 __gmpn_mul_basecase
○ソフトウェア: SDPA-GMP 7.1.1 と SDPA-GMP 7.1.2 + GMP 4.2.4
○実行マシン1:Intel Core i7 965(3.2GHz) : メモリ 12GB : Fedora 10 for x86_64
○実行マシン2:AMD Opteron 2384 (2.7GHz) : メモリ 32GB : CentOS 5.2 for x86_64
問題1 : mcp124-1.dat-s
実行マシン1
SDPA-GMP 7.1.1 : 68.580s
SDPA-GMP 7.1.2 : 46.370s
実行マシン2
SDPA-GMP 7.1.1 : 70.370s
SDPA-GMP 7.1.2 : 53.270s
問題2 : theta2.dat-s
実行マシン1
SDPA-GMP 7.1.1 : 216.750s
SDPA-GMP 7.1.2 : 206.450s
実行マシン2
SDPA-GMP 7.1.1 : 221.770s
SDPA-GMP 7.1.2 : 230.100s
問題3 : mater-2.dat-s
実行マシン1
SDPA-GMP 7.1.1 : 39.170s
SDPA-GMP 7.1.2 : 33.100s
実行マシン2
SDPA-GMP 7.1.1 : 40.600s
SDPA-GMP 7.1.2 : 39.830s
そこで問題1(実行マシン1)について gprof でプロファイルを行ってみた。__gmpn_addmul_1 や __gmpf_sub は変わらないが、__gmpf_mul と __gmpf_add は 7.1.2 の方が速くなっている。
○SDPA-GMP 7.1.1
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
15.44 9.05 9.05 __gmpn_addmul_1
13.62 17.04 7.99 __gmpf_mul
9.76 22.76 5.73 __gmpf_add
6.07 26.32 3.56 _int_malloc
5.10 29.31 2.99 __gmpf_sub
○ SDPA-GMP 7.1.2
Each sample counts as 0.01 seconds.
% cumulative self self total
time seconds seconds calls s/call s/call name
21.44 9.04 9.04 __gmpn_addmul_1
12.13 14.16 5.12 __gmpf_mul
8.93 17.92 3.77 __gmpf_add
7.07 20.90 2.98 __gmpf_sub
6.36 23.58 2.68 __gmpn_mul_basecase