fhEVM-backend
WebsiteLibrariesSolutionsDevelopersSupport
  • Welcome to fhEVM
  • Getting Started
    • Quick start
    • fhEVM
      • fhEVM-native
        • geth integration
        • Executor
        • Configuration
      • fhEVM-coprocessor
        • Deploy initial contracts
        • geth integration
        • Coprocessor Backend
        • Configuration
    • Gateway
      • Configuration
    • TKMS
      • Use Zama's TKMS
      • Request the creation of a new private key
      • Application Smart Contract
      • Run a TKMS
  • Fundamentals
    • Overview
    • fhEVM
      • Contracts
      • Inputs
      • Symbolic Execution
      • fhEVM-native
        • Architecture
        • FHE Computation
        • Storage
        • Genesis
      • fhEVM-coprocessor
        • Architecture
        • FHE Computation
    • Gateway
      • Decryption
      • Reencryption
      • Inclusion proof
      • Decryption and reencryption request on TKMS
    • TKMS
      • Architecture
      • Blockchain
      • Threshold protocol
      • Zama's TKMS
    • Glossary
  • Guides
    • Node and gateway hardware
    • Run a benchmark
  • References
    • fhEVM API specifications
    • Gateway API specifications
  • Developer
    • Contributing
    • Development roadmap
    • Release note
    • Feature request
    • Bug report
Powered by GitBook
On this page
  • Executor
  • Threads
  • Scheduling Policies

Was this helpful?

Export as PDF
  1. Getting Started
  2. fhEVM
  3. fhEVM-native

Configuration

At the time of writing, fhEVM-native is still not fully implemented, namely the geth integration is not done. Configuration settings will be listed here when they are implemented.

Executor

The Executor is configured via command line switches and environment variables, e.g.:

executor --help
Usage: executor [OPTIONS]

Options:
      --tokio-threads <TOKIO_THREADS>                           [default: 4]
      --fhe-compute-threads <FHE_COMPUTE_THREADS>               [default: 8]
      --policy-fhe-compute-threads <POLICY_FHE_COMPUTE_THREADS> [default: 8]
      --server-addr <SERVER_ADDR>                               [default: 127.0.0.1:50051]
  -h, --help                                                    Print help
  -V, --version

Threads

Note that there are three thread pools in the Executor:

  • tokio

  • FHE compute

  • policy FHE compute

The tokio one (set via --tokio-threads) determines how many tokio threads are spawned. These threads are used for async tasks and should not be blocked.

The FHE compute threads are the ones that actually run the FHE computation by default (set via --fhe-compute-threads).

If an non-default scheduling policy is being used, the policy FHE compute threads are being used (set via --policy-fhe-compute-threads).

Scheduling Policies

Different scheduling policies can be set for FHE computation via the FHEVM_DF_SCHEDULE environment variable with possible choices: LOOP, FINE_GRAIN, MAX_PARALLELISM, MAX_LOCALITY.

PreviousExecutorNextfhEVM-coprocessor

Last updated 6 months ago

Was this helpful?