Skip to content

Benchmark of fgemv for Givaro::Integer in the field of RNS on a multicore server

ZHG2017 edited this page May 29, 2019 · 11 revisions

Note p = (0 for sequential, 1 for <RNSModulus, grain>, 2 for <RNSModulus, threads>, 3 for ParSeqHelper::Compose<ParSeqHelper::Parallel<FFLAS::CuttingStrategy::RNSModulus, grain>, ParSeqHelper::Parallel<rec, StrategyParameter::TwoDAdaptive>>)

Benchmark using OpenMP

OMP_NUM_THREADS=1

100 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
4.70943 0 4000 4000 3 1020440166
18.9155 0 8000 8000 3 1020440166

200 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
8.492 0 4000 4000 3 1020440166
33.7214 0 8000 8000 3 1020440166

OMP_NUM_THREADS=32

4000x4000 and 100 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
4.57253 0 4000 4000 1 1020440166
3.27615 0 4000 4000 2 1020440166
4.25425 0 4000 4000 3 1020440166

4000x4000 and 200 bits

Time method m(dimension m of the matrix) k(dimension k of the matrix) i(number of repetitions) s(seed)
0 4000 4000 1 1020440166
0 4000 4000 2 1020440166
0 4000 4000 3 1020440166

8000x8000 and 100 bits

Time: 5.76146 Gflops: 0.0222166 -q 0 -b 100 -p 1 -m 8000 -k 8000 -t 8 -N 8 -i 10 -s 1020440166 -g 64
Time: 4.50027 Gflops: 0.0284428 -q 0 -b 100 -p 2 -m 8000 -k 8000 -t 8 -N 8 -i 10 -s 1020440166 -g 64
Time: 2.52823 Gflops: 0.0506284 -q 0 -b 100 -p 3 -m 8000 -k 8000 -t 8 -N 8 -i 10 -s 1020440166 -g 64

8000x8000 and 200 bits

Time: 13.4817 Gflops: 0.00949435 -q 0 -b 200 -p 1 -m 8000 -k 8000 -t 8 -N 8 -i 10 -s 1020440166 -g 64
Time: 10.415 Gflops: 0.01229 -q 0 -b 200 -p 2 -m 8000 -k 8000 -t 8 -N 8 -i 10 -s 1020440166 -g 64
Time: 6.56747 Gflops: 0.01949 -q 0 -b 200 -p 3 -m 8000 -k 8000 -t 8 -N 8 -i 10 -s 1020440166 -g 64

Vary GrainSize from 16 to 256 for 8000x8000 and 100 bits with OMP_NUM_THREADS=32

GrainSize=16

Time: 1.0021 Gflops: 0.127732 -q 0 -b 100 -p 3 -m 8000 -k 8000 -t 32 -N 32 -i 3 -s 1020440166 -g 16

GrainSize=32

Time: 0.839661 Gflops: 0.152442 -q 0 -b 100 -p 3 -m 8000 -k 8000 -t 32 -N 32 -i 3 -s 1020440166 -g 32

GrainSize=64

Time: 1.65517 Gflops: 0.0773332 -q 0 -b 100 -p 3 -m 8000 -k 8000 -t 32 -N 32 -i 3 -s 1020440166 -g 64

GrainSize=128

Time: 2.44749 Gflops: 0.0522984 -q 0 -b 100 -p 3 -m 8000 -k 8000 -t 32 -N 32 -i 3 -s 1020440166 -g 128

GrainSize=256

Time: 2.72967 Gflops: 0.0468922 -q 0 -b 100 -p 3 -m 8000 -k 8000 -t 32 -N 32 -i 3 -s 1020440166 -g 256