anoma/ferveo

Threshold decryption benchmarking

ggkitsas opened this issue · 7 comments

Threshold decryption benchmarking

In 044a0aed66060f175d4595f06a3202480653c38d
For: share_combine
Threshold: 8
#msg: 1000
Batch parallelization: No
Ciphertext validity checking: No
Lagrange interpolation optimization: No

Cores Time (sec) EC2 instance type
2 8.5824 m5.large
4 8.5710 m5.xlarge

In 919325402d55f44e3b1da21a7062a3882e535b62
For: batch_share_combine
#msg: 1000
Batch parallelization: Yes
Ciphertext validity checking: Yes
Lagrange interpolation optimization: No

Cores Time (sec) EC2 instance type Threshold
2 10.926 m5.large 8
4 5.6189 m5.xlarge 8
8 2.9896 m5.2xlarge 8
16 1.6739 m5.4xlarge 8
32 1.0160 m5.8xlarge 8
32 10.483 m5.8xlarge 100

In 919325402d55f44e3b1da21a7062a3882e535b62
For: share_combine
Threshold: 8
#msg: 1000
Batch parallelization: Yes
Ciphertext validity checking: Yes
Lagrange interpolation optimization: No

Cores Time (sec) EC2 instance type
2 13.765 m5.large
4 13.608 m5.xlarge
8 13.736 m5.2xlarge
16 13.616 m5.4xlarge

Next steps:

In 0c852182ba7418b965e3776b8c189cf500248d43
For: fast_share_combine
Threshold: 100
#msg: 1000
Parallelization: No
Ciphertext validity checking: No
Lagrange interpolation optimization: No

EC2 instance type Cores Time (sec)
m5.8xlarge 32 290.11

In 4f2f696aaa2807581758c72beed1b796f21fbad0
For: fast_share_combine
#msg: 1000
Parallelization: Yes
Ciphertext validity checking: No
Lagrange interpolation optimization: No

EC2 instance type Cores Time (sec) Threshold
m5.8xlarge 32 3.0711 8
m5.8xlarge 32 19.866 100

In cec0ffaacd08626207a030388b7829a4fcb5cd12:

on m5.8xlarge (32 cores)

share_combine: threshold 8192*2/3 - #msg 100
time: [4.7883 s 4.7947 s 4.8023 s]

block_propose: threshold 8192*2/3 - #msg 100
time: [17.102 s 17.105 s 17.108 s]

In da190532d2c8eed05fe70068b0f1dbb3b1b29bdb:
on m5.8xlarge (32 cores)
threshold: 8192*2/3


share_combine bench
Num of
msgs
Msg size
100 1000 10000
10 477.22ms 477.52ms 477.04ms
100 4.7733s 4.7757s 4.7730s
1000 47.776s 47.708s 48.061s

Notes on share_combine:

  • Message size has no important effect in performance
  • Number of messages affects performance linearly

block_propose bench
Num of
msgs
Msg size
100 1000 10000
10 9.4224s 9.4206s 9.4215s
100 17.043s 17.040s 17.038s
1000 93.213s 93.386s 93.324s

Notes on block_propose:

  • Message size has no important effect in performance
  • Number of messages affects performance sub-linearly (?)