From 01cae593b29122403628e1b76b4425a632ff1620 Mon Sep 17 00:00:00 2001 From: Maksim Tsikhanovich Date: Mon, 5 Dec 2022 13:26:05 -0800 Subject: [PATCH] Delete getTrafficStatistics() from IScheduler, implementations, and benchmarks Differential Revision: D41639618 fbshipit-source-id: 6145ad8b407e6433f1fe10f2e3b96db332b37dc9 --- .../benchmarks/SecretShareEngineBenchmark.cpp | 4 ---- .../ferret/test/benchmarks/CotBenchmark.h | 12 ---------- .../test/benchmarks/OtBenchmark.cpp | 12 ---------- .../benchmarks/TupleGeneratorBenchmark.cpp | 8 ------- .../util/test/benchmarks/NetworkedBenchmark.h | 11 --------- .../test/benchmarks/FrontendBenchmark.cpp | 4 ---- fbpcf/frontend/test/schedulerMock.h | 4 ---- .../test/benchmarks/CompactorBenchmark.cpp | 6 ----- .../oram/test/benchmarks/OramBenchmark.cpp | 21 ----------------- .../IWalrMatrixMultiplication.h | 23 ------------------- .../WalrMatrixMultiplicationBenchmark.cpp | 4 ---- .../COTWithRandomMessageBenchmark.cpp | 4 ---- fbpcf/scheduler/EagerScheduler.cpp | 8 ------- fbpcf/scheduler/EagerScheduler.h | 5 ---- fbpcf/scheduler/IScheduler.h | 7 +----- fbpcf/scheduler/LazyScheduler.cpp | 8 ------- fbpcf/scheduler/LazyScheduler.h | 5 ---- fbpcf/scheduler/NetworkPlaintextScheduler.h | 14 ----------- fbpcf/scheduler/PlaintextScheduler.h | 7 ------ .../test/benchmarks/SchedulerBenchmark.cpp | 4 ---- 20 files changed, 1 insertion(+), 170 deletions(-) diff --git a/fbpcf/engine/test/benchmarks/SecretShareEngineBenchmark.cpp b/fbpcf/engine/test/benchmarks/SecretShareEngineBenchmark.cpp index fb50738d..aa3fb2d3 100644 --- a/fbpcf/engine/test/benchmarks/SecretShareEngineBenchmark.cpp +++ b/fbpcf/engine/test/benchmarks/SecretShareEngineBenchmark.cpp @@ -64,10 +64,6 @@ class BaseSecretShareEngineBenchmark : public util::NetworkedBenchmark { runMethod(receiver_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - virtual void runMethod(std::unique_ptr& engine) = 0; size_t batchSize_ = 1000; diff --git a/fbpcf/engine/tuple_generator/oblivious_transfer/ferret/test/benchmarks/CotBenchmark.h b/fbpcf/engine/tuple_generator/oblivious_transfer/ferret/test/benchmarks/CotBenchmark.h index b325d1a5..2b47d0e3 100644 --- a/fbpcf/engine/tuple_generator/oblivious_transfer/ferret/test/benchmarks/CotBenchmark.h +++ b/fbpcf/engine/tuple_generator/oblivious_transfer/ferret/test/benchmarks/CotBenchmark.h @@ -83,10 +83,6 @@ class SinglePointCotBenchmark final : public util::NetworkedBenchmark { receiver_->receiverExtend(std::move(baseOTReceive_)); } - std::pair getTrafficStatistics() override { - return agent0_->getTrafficStatistics(); - } - private: std::unique_ptr agent0_; std::unique_ptr agent1_; @@ -136,10 +132,6 @@ class RegularErrorMultiPointCotBenchmark final receiver_->receiverExtend(std::move(baseOTReceive_)); } - std::pair getTrafficStatistics() override { - return agent0_->getTrafficStatistics(); - } - private: std::unique_ptr factory_; @@ -194,10 +186,6 @@ class RcotExtenderBenchmark final : public util::NetworkedBenchmark { receiver_->receiverExtendRcot(std::move(baseOTReceive_)); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - private: std::unique_ptr agent0_; std::unique_ptr agent1_; diff --git a/fbpcf/engine/tuple_generator/oblivious_transfer/test/benchmarks/OtBenchmark.cpp b/fbpcf/engine/tuple_generator/oblivious_transfer/test/benchmarks/OtBenchmark.cpp index cbfc73e6..3895c129 100644 --- a/fbpcf/engine/tuple_generator/oblivious_transfer/test/benchmarks/OtBenchmark.cpp +++ b/fbpcf/engine/tuple_generator/oblivious_transfer/test/benchmarks/OtBenchmark.cpp @@ -57,10 +57,6 @@ class NpBaseObliviousTransferBenchmark : public util::NetworkedBenchmark { receiver_->receive(choice_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - private: size_t size_ = 1024; @@ -110,10 +106,6 @@ class RandomCorrelatedObliviousTransferBenchmark receiver_->rcot(size_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - std::unique_ptr factory_; private: @@ -249,10 +241,6 @@ class BidirectionObliviousTransferBenchmark : public util::NetworkedBenchmark { receiver_->biDirectionOT(receiverInput0_, receiverInput1_, receiverChoice_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - virtual std::unique_ptr getRcotFactory() = 0; diff --git a/fbpcf/engine/tuple_generator/test/benchmarks/TupleGeneratorBenchmark.cpp b/fbpcf/engine/tuple_generator/test/benchmarks/TupleGeneratorBenchmark.cpp index e2f74855..09e7c1f7 100644 --- a/fbpcf/engine/tuple_generator/test/benchmarks/TupleGeneratorBenchmark.cpp +++ b/fbpcf/engine/tuple_generator/test/benchmarks/TupleGeneratorBenchmark.cpp @@ -63,10 +63,6 @@ class ProductShareGeneratorBenchmark : public util::NetworkedBenchmark { receiver_->generateBooleanProductShares(receiverLeft_, receiverRight_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - private: size_t size_ = 10000000; @@ -125,10 +121,6 @@ class BaseTupleGeneratorBenchmark : public util::NetworkedBenchmark { receiver_->getBooleanTuple(size_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - virtual std::unique_ptr getTupleGeneratorFactory( int myId, communication::IPartyCommunicationAgentFactory& agentFactory) = 0; diff --git a/fbpcf/engine/util/test/benchmarks/NetworkedBenchmark.h b/fbpcf/engine/util/test/benchmarks/NetworkedBenchmark.h index 6a87b92a..92dbfe3b 100644 --- a/fbpcf/engine/util/test/benchmarks/NetworkedBenchmark.h +++ b/fbpcf/engine/util/test/benchmarks/NetworkedBenchmark.h @@ -39,10 +39,6 @@ class NetworkedBenchmark { counters["init_time_usec"] = std::chrono::duration_cast(end - start) .count(); - - auto [sent, received] = getTrafficStatistics(); - initTransmittedBytes = sent + received; - counters["init_transmitted_bytes"] = initTransmittedBytes; } auto senderTask = std::async([this]() { runSender(); }); @@ -50,11 +46,6 @@ class NetworkedBenchmark { senderTask.get(); receiverTask.get(); - - BENCHMARK_SUSPEND { - auto [sent, received] = getTrafficStatistics(); - counters["transmitted_bytes"] = sent + received - initTransmittedBytes; - } } protected: @@ -65,8 +56,6 @@ class NetworkedBenchmark { virtual void runSender() = 0; virtual void runReceiver() = 0; - - virtual std::pair getTrafficStatistics() = 0; }; } // namespace fbpcf::engine::util diff --git a/fbpcf/frontend/test/benchmarks/FrontendBenchmark.cpp b/fbpcf/frontend/test/benchmarks/FrontendBenchmark.cpp index 44d43c09..4b85f988 100644 --- a/fbpcf/frontend/test/benchmarks/FrontendBenchmark.cpp +++ b/fbpcf/frontend/test/benchmarks/FrontendBenchmark.cpp @@ -55,10 +55,6 @@ class FrontendBenchmark : public engine::util::NetworkedBenchmark { receiver_->play(); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - private: std::unique_ptr agentFactory0_; diff --git a/fbpcf/frontend/test/schedulerMock.h b/fbpcf/frontend/test/schedulerMock.h index f68afcfc..1af8724f 100644 --- a/fbpcf/frontend/test/schedulerMock.h +++ b/fbpcf/frontend/test/schedulerMock.h @@ -339,10 +339,6 @@ class schedulerMock final : public scheduler::IScheduler { MOCK_METHOD0(deleteEngine, void()); - std::pair getTrafficStatistics() const override { - return {0, 0}; - } - std::pair getWireStatistics() const override { return {0, 0}; } diff --git a/fbpcf/mpc_std_lib/compactor/test/benchmarks/CompactorBenchmark.cpp b/fbpcf/mpc_std_lib/compactor/test/benchmarks/CompactorBenchmark.cpp index 80409af8..7fd77f2d 100644 --- a/fbpcf/mpc_std_lib/compactor/test/benchmarks/CompactorBenchmark.cpp +++ b/fbpcf/mpc_std_lib/compactor/test/benchmarks/CompactorBenchmark.cpp @@ -115,12 +115,6 @@ class ShuffleBasedCompactorBenchmark : public engine::util::NetworkedBenchmark { util::MpcAdapters::openToParty(compactifiedValue, 0); } - std::pair getTrafficStatistics() override { - auto schedulerTraffic = - scheduler::SchedulerKeeper<0>::getTrafficStatistics(); - return schedulerTraffic; - } - std::unique_ptr agentFactory0_; std::unique_ptr diff --git a/fbpcf/mpc_std_lib/oram/test/benchmarks/OramBenchmark.cpp b/fbpcf/mpc_std_lib/oram/test/benchmarks/OramBenchmark.cpp index 8dc938ae..63056e7b 100644 --- a/fbpcf/mpc_std_lib/oram/test/benchmarks/OramBenchmark.cpp +++ b/fbpcf/mpc_std_lib/oram/test/benchmarks/OramBenchmark.cpp @@ -74,10 +74,6 @@ class DifferenceCalculatorBenchmark : public engine::util::NetworkedBenchmark { input1_.subtrahendShares); } - std::pair getTrafficStatistics() override { - return scheduler::SchedulerKeeper<0>::getTrafficStatistics(); - } - private: size_t batchSize_ = 16384; @@ -140,10 +136,6 @@ class ObliviousDeltaCalculatorBenchmark input1_.delta0Shares, input1_.delta1Shares, input1_.alphaShares); } - std::pair getTrafficStatistics() override { - return scheduler::SchedulerKeeper<0>::getTrafficStatistics(); - } - private: size_t batchSize_ = 16384; @@ -219,10 +211,6 @@ class SinglePointArrayGeneratorBenchmark receiver_->generateSinglePointArrays(party1Input_, length_); } - std::pair getTrafficStatistics() override { - return scheduler::SchedulerKeeper<0>::getTrafficStatistics(); - } - private: size_t length_ = 16384; @@ -283,15 +271,6 @@ class BaseWriteOnlyOramBenchmark : public engine::util::NetworkedBenchmark { runMethod(receiver_, input1_); } - std::pair getTrafficStatistics() override { - auto schedulerTraffic = - scheduler::SchedulerKeeper<0>::getTrafficStatistics(); - auto oramTraffic = sender_->getTrafficStatistics(); - return { - schedulerTraffic.first + oramTraffic.first, - schedulerTraffic.second + oramTraffic.second}; - } - virtual std::unique_ptr> getOramFactory( bool amIParty0) = 0; diff --git a/fbpcf/mpc_std_lib/walr_multiplication/IWalrMatrixMultiplication.h b/fbpcf/mpc_std_lib/walr_multiplication/IWalrMatrixMultiplication.h index 296c77bc..dd04b9f7 100644 --- a/fbpcf/mpc_std_lib/walr_multiplication/IWalrMatrixMultiplication.h +++ b/fbpcf/mpc_std_lib/walr_multiplication/IWalrMatrixMultiplication.h @@ -61,19 +61,7 @@ class IWalrMatrixMultiplication { std::vector matrixVectorMultiplication( const std::vector>& features, const frontend::Bit& labels) { - // Initialize engine traffic recording - auto initEngineTraffic = - scheduler::SchedulerKeeper::getTrafficStatistics(); - auto rst = matrixVectorMultiplicationImpl(features, labels); - - // Calculate engine traffic - auto finalEngineTraffic = - scheduler::SchedulerKeeper::getTrafficStatistics(); - engineTraffic_.first += finalEngineTraffic.first - initEngineTraffic.first; - engineTraffic_.second += - finalEngineTraffic.second - initEngineTraffic.second; - return rst; } @@ -85,18 +73,7 @@ class IWalrMatrixMultiplication { void matrixVectorMultiplication( const frontend::Bit& labels, const std::vector& dpNoise) { - // Initialize engine traffic recording - auto initEngineTraffic = - scheduler::SchedulerKeeper::getTrafficStatistics(); - matrixVectorMultiplicationImpl(labels, dpNoise); - - // Calculate engine traffic - auto finalEngineTraffic = - scheduler::SchedulerKeeper::getTrafficStatistics(); - engineTraffic_.first += finalEngineTraffic.first - initEngineTraffic.first; - engineTraffic_.second += - finalEngineTraffic.second - initEngineTraffic.second; } /** diff --git a/fbpcf/mpc_std_lib/walr_multiplication/test/benchmarks/WalrMatrixMultiplicationBenchmark.cpp b/fbpcf/mpc_std_lib/walr_multiplication/test/benchmarks/WalrMatrixMultiplicationBenchmark.cpp index 5b42cfd4..65dc0bfe 100644 --- a/fbpcf/mpc_std_lib/walr_multiplication/test/benchmarks/WalrMatrixMultiplicationBenchmark.cpp +++ b/fbpcf/mpc_std_lib/walr_multiplication/test/benchmarks/WalrMatrixMultiplicationBenchmark.cpp @@ -91,10 +91,6 @@ class WalrMatrixMultiplicationBenchmark labelOwner_->matrixVectorMultiplication(secLabel1, dpNoise_); } - std::pair getTrafficStatistics() override { - return featureOwner_->getTrafficStatistics(); - } - std::unique_ptr agentFactory0_; std::unique_ptr diff --git a/fbpcf/mpc_std_lib/walr_multiplication/util/test/benchmarks/COTWithRandomMessageBenchmark.cpp b/fbpcf/mpc_std_lib/walr_multiplication/util/test/benchmarks/COTWithRandomMessageBenchmark.cpp index 3b9fe34f..7c000651 100644 --- a/fbpcf/mpc_std_lib/walr_multiplication/util/test/benchmarks/COTWithRandomMessageBenchmark.cpp +++ b/fbpcf/mpc_std_lib/walr_multiplication/util/test/benchmarks/COTWithRandomMessageBenchmark.cpp @@ -82,10 +82,6 @@ class COTWithRandomMessageBenchmark : public engine::util::NetworkedBenchmark { receiver_->receive(choice_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - virtual std::unique_ptr getRcotFactory() = 0; diff --git a/fbpcf/scheduler/EagerScheduler.cpp b/fbpcf/scheduler/EagerScheduler.cpp index 1a88bdb0..6dcb3801 100644 --- a/fbpcf/scheduler/EagerScheduler.cpp +++ b/fbpcf/scheduler/EagerScheduler.cpp @@ -664,14 +664,6 @@ std::vector> EagerScheduler::unbatching( return rst; } -std::pair EagerScheduler::getTrafficStatistics() const { - if (engine_) { - return engine_->getTrafficStatistics(); - } else { - return engineTrafficStatisticsBuffer_; - } -} - size_t EagerScheduler::getBatchSize( IScheduler::WireId id) const { return wireKeeper_->getBatchSize(id); diff --git a/fbpcf/scheduler/EagerScheduler.h b/fbpcf/scheduler/EagerScheduler.h index ceff6f37..1d4e9891 100644 --- a/fbpcf/scheduler/EagerScheduler.h +++ b/fbpcf/scheduler/EagerScheduler.h @@ -506,11 +506,6 @@ class EagerScheduler final : public IArithmeticScheduler { //======== Below are miscellaneous APIs: ======== - /** - * @inherit doc - */ - std::pair getTrafficStatistics() const override; - /** * @inherit doc */ diff --git a/fbpcf/scheduler/IScheduler.h b/fbpcf/scheduler/IScheduler.h index e929a11c..3f589a39 100644 --- a/fbpcf/scheduler/IScheduler.h +++ b/fbpcf/scheduler/IScheduler.h @@ -349,11 +349,6 @@ class IScheduler { std::shared_ptr> unbatchingStrategy) = 0; //======== Below are miscellaneous APIs: ======== - /** - * Get the total amount of traffic transmitted. - * @return a pair of (sent, received) data in bytes. - */ - virtual std::pair getTrafficStatistics() const = 0; /** * Get amount of boolean gates executed. non-free gate count is the single @@ -439,7 +434,7 @@ class SchedulerKeeper { } static std::pair getTrafficStatistics() { - return scheduler_->getTrafficStatistics(); + return {0, 0}; } static std::pair getGateStatistics() { diff --git a/fbpcf/scheduler/LazyScheduler.cpp b/fbpcf/scheduler/LazyScheduler.cpp index f761676b..f84c9b99 100644 --- a/fbpcf/scheduler/LazyScheduler.cpp +++ b/fbpcf/scheduler/LazyScheduler.cpp @@ -570,14 +570,6 @@ void LazyScheduler::decreaseReferenceCountBatch( wireKeeper_->decreaseBatchReferenceCount(id); } -std::pair LazyScheduler::getTrafficStatistics() const { - if (engine_) { - return engine_->getTrafficStatistics(); - } else { - return engineTrafficStatisticsBuffer_; - } -} - // band a number of batches into one batch. IScheduler::WireId LazyScheduler::batchingUp( std::vector> src) { diff --git a/fbpcf/scheduler/LazyScheduler.h b/fbpcf/scheduler/LazyScheduler.h index 6d22e7bf..f40ab7b2 100644 --- a/fbpcf/scheduler/LazyScheduler.h +++ b/fbpcf/scheduler/LazyScheduler.h @@ -509,11 +509,6 @@ class LazyScheduler final : public IArithmeticScheduler { //======== Below are miscellaneous APIs: ======== - /** - * @inherit doc - */ - std::pair getTrafficStatistics() const override; - /** * @inherit doc */ diff --git a/fbpcf/scheduler/NetworkPlaintextScheduler.h b/fbpcf/scheduler/NetworkPlaintextScheduler.h index e78d5db8..a301a6ef 100644 --- a/fbpcf/scheduler/NetworkPlaintextScheduler.h +++ b/fbpcf/scheduler/NetworkPlaintextScheduler.h @@ -109,20 +109,6 @@ class NetworkPlaintextScheduler final : public PlaintextScheduler { //======== Below are miscellaneous APIs: ======== - /** - * @inherit doc - */ - std::pair getTrafficStatistics() const override { - uint64_t sent = 0; - uint64_t received = 0; - for (auto& item : agentMap_) { - auto traffic = item.second->getTrafficStatistics(); - sent += traffic.first; - received += traffic.second; - } - return {sent, received}; - } - /** * @inherit doc */ diff --git a/fbpcf/scheduler/PlaintextScheduler.h b/fbpcf/scheduler/PlaintextScheduler.h index 3f99f4af..05151a33 100644 --- a/fbpcf/scheduler/PlaintextScheduler.h +++ b/fbpcf/scheduler/PlaintextScheduler.h @@ -508,13 +508,6 @@ class PlaintextScheduler : public IArithmeticScheduler { //======== Below are miscellaneous APIs: ======== - /** - * @inherit doc - */ - std::pair getTrafficStatistics() const override { - return {0, 0}; - } - /** * @inherit doc */ diff --git a/fbpcf/scheduler/test/benchmarks/SchedulerBenchmark.cpp b/fbpcf/scheduler/test/benchmarks/SchedulerBenchmark.cpp index 7837c477..538c8efb 100644 --- a/fbpcf/scheduler/test/benchmarks/SchedulerBenchmark.cpp +++ b/fbpcf/scheduler/test/benchmarks/SchedulerBenchmark.cpp @@ -130,10 +130,6 @@ class SchedulerBenchmark : public engine::util::NetworkedBenchmark { runMethod(receiver_); } - std::pair getTrafficStatistics() override { - return sender_->getTrafficStatistics(); - } - virtual std::unique_ptr getScheduler( int myId, engine::communication::IPartyCommunicationAgentFactory&