google / hintless_pir

Apache License 2.0
13 stars 5 forks source link

Is the implementation multi-threaded? #8

Open jayavanth opened 5 months ago

jayavanth commented 5 months ago

Wondering if the RLWE operations are multi-threaded (is it just 4 threads?) and if the DB pre-processing can also be made multi-threaded

b5li commented 4 months ago

The implementations are not currently multi-threaded. They can be easily made to run with multi-threading, as the data dependency is simple.

jayavanth commented 2 months ago

For pre-processing, I see two potential places for threading here

  1. each RLWE context
  2. transform

and same for RLWE here

  1. rotations
  2. inner_product

can you please point out which I should be targeting to achieve parallelization? Thank you!

b5li commented 2 months ago

Both places could be parallelized for sure. It may be more useful to parallelize the online part, and you can use different parallelism in rotations (maybe just up to the number of RLWE contexts as it is a sequential operation per RLWE context) and inner product (could be a multiple of RLWE contexts).