A Tour of NTL: Some Performance Data
Here are some timing figures from using NTL. They were obtained using NTL 11.0.0 compiled with g++ 4.8.5 and with GMP 6.1 on a 2.3GHz Intel Haswell processor (E5-2698 v3) running Linux.
All times are ins seconds. The times were obtained using the program Timing included in the distribution. The data was generated using NTL's random number generator, but running this on a different machine should (in theory) generate the same data.
multiply 1000-bit ints: 1.7641e-07 square 1000-bit ints: 1.20344e-07 remainder 2000/1000-bit ints: 3.59872e-07 gcd 1000-bit ints: 2.83256e-06 xgcd 1000-bit ints: 4.32945e-06 power mod 1000-bit ints: 0.000441862 multiply degree-1000 poly mod 1000-bit prime: 0.00433029 remainder degree-2000/1000 poly mod 1000-bit prime: 0.0125181 preconditioned remainder degree-2000/1000 poly mod 1000-bit prime: 0.00441719 gcd degree-1000 poly mod 1000-bit prime: 0.123718 multiply degree-1000 int poly with 1000-bit coeffs: 0.00612337 factoring degree-1000 poly mod 1000-bit prime... square-free decomposition...0.123419 factoring multiplicity 1, deg = 1000 computing X^p...7.28103 computing DDF...generating baby steps...+++++++++++++++++++++2.78938 generating giant steps...++++++++++++++++++++++2.89548 giant refine...++++split 1 18 *++++*++++*++++*++++split 17 355 *split 0 627 giant refine time: 4.31472 baby refine...split 1 1 split 8 8 split 9 9 split 355 355 split 627 627 baby refine time: 0.03662 DDF time: 10.0396 ...total time = 17.4524 multiply 500-bit GF2Xs: 5.50411e-08 remainder 1000/500-bit GF2Xs: 8.22747e-07 gcd 500-bit GF2Xs: 3.52091e-06 factoring degree-500 GF2X: 0.000148627 gcd 500-bit GF2X: 3.54025e-06 multiply degree-500 poly mod 500-bit GF2X: 0.00247895 remainder degree-1000/500 poly mod 500-bit GF2X: 0.00889676 preconditioned remainder degree-1000/500 poly mod 500-bit GF2X: 0.00500091 gcd degree-500 poly mod 500-bit GF2X: 0.0453614 factoring degree-500 poly mod 500-bit GF2X... square-free decomposition...0.004363 factoring multiplicity 1, deg = 250 computing X^p...0.476299 computing DDF...generating baby steps...++++++++++0.32838 generating giant steps...+++++++++++0.351889 giant refine...++++split 1 9 split 2 13 split 4 44 *++++split 7 73 *split 0 111 giant refine time: 0.229197 baby refine...split 9 9 split 13 13 split 44 44 split 73 73 split 111 111 baby refine time: 0.001222 DDF time: 0.910726 ...total time = 1.39327