Skip to content

Parallelization of FHE operations in both FheBool and FheUint8 #38

@lovely-necromancer

Description

@lovely-necromancer

Hey,
Thanks for the awesome project.
I've been playing with it lately and did some little implementations using the examples provided.

So, I have a line that looks like this using FheBool:

// Perform XOR operation on encrypted values
let enc_out: Vec<_> = enc_m0.iter().zip(enc_m1.iter()).map(|(a, b)| a ^ b).collect();

I want to make it parallel:

use rayon::prelude::*;

let enc_out: Vec<_> = enc_m0.par_iter().zip(enc_m1.par_iter()).map(|(a, b)| a ^ b).collect();

But I get errors like this:

thread '<unnamed>' panicked at src/bool/ni_mp_api.rs:169:60:
Parameters not set
thread '<unnamed>' panicked at src/bool/ni_mp_api.rs:169:60:
Parameters not set
thread '<unnamed>' panicked at src/bool/ni_mp_api.rs:169:60:
Parameters not set

can you help me what should I set? I've seen from your commits that did paralelization for key-aggregation that you set some stuff. but I didn't understand well.

Any help is appreciated 😃

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions