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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions