bristolcrypto/SPDZ-2

How to get the throughput of SPDZ?

Closed this issue · 1 comments

I wanted to see the throughput of SPDZ. I tried to run some code with a large amount of independent basic operations (e.g., 5000 multiplications). For example:
for i in range(5000): c = a * b
But I observed that the SPDZ did not take full use of cpu and network.
Is there any options that enable SPDZ to run with multiple threads to make full use of cpu and network?

You can use the for_range_multithread construct from Compiler/library.py:

@for_range_multithread(t, par, total)
def _(i):
    c = a * b

This does total multiplications across t threads, where in each thread the communication for up to par multiplications is merged into a single round.

Experimenting with different parameters should help maximize throughput for your setting.