HEBench
|
HEBench is designed to be a flexible, extendable, intuitive, and reliable framework for testing and evaluating homomorphic encryption software and hardware solutions. It defines an abstraction API in C to enable integration with the widest variety of hardware and software and executes high level tests using a front end application which feeds data to supported HE backends through the APIBridge component, generating detailed performance reports and verifying the accuracy of the returned results.
Figure 1 above shows a high-level diagram of the project architecture and its components. We further separate these components into what we call the frontend and backend components based upon how we expect users will interact with the project. Details on the backend and frontend are described in detail on their respective overview pages.
A HEBench backend is where the API and helper classes for interfacing with different homomorphic encryption (HE) hardware and software are defined.
Submitters are the primary users expected to interface with the HEBench project. To benchmark their implementation of one or more workloads supported by the frontend, submitters must create a backend for HEBench by implementing the C API Bridge (or extending the C++ wrapper).
Users interested in benchmarking their solution to supported HE workloads should start here. The tutorial provided in the backend overview section should offer a quick starting point.
The HEBench frontend is where HE tests are defined, scheduled for execution, and results collected by the Test Harness.
Test Harness is the main component of the frontend. It is the main executable that benchmarks the performance of supported HE workloads implemented in backends.
Advanced users that wish to extend the frontend by implementing new tests and adding new workloads are Collaborators. Frontend provides an extensible framework that allows for these additions.
To become familiar with the functionality and features of Test Harness, users should start here. Advanced users interested in collaborating and adding new benchmarks to the frontend should start here as well.
This section provides links to the core components and sections of the HEBench project.