Skip to content

Commit

Permalink
benchmark
Browse files Browse the repository at this point in the history
  • Loading branch information
nitrieu committed May 1, 2018
1 parent 48f2178 commit f7db82f
Show file tree
Hide file tree
Showing 14 changed files with 683 additions and 225 deletions.
8 changes: 8 additions & 0 deletions CMakeLists.txt
Expand Up @@ -62,6 +62,14 @@ include_directories("${Miracl_Dirs}")
set(NTL_Dirs "${CMAKE_SOURCE_DIR}/thirdparty/linux/ntl/")
include_directories("${NTL_Dirs}/include/")

# default location for GMP
set(GMP_Dirs "${CMAKE_SOURCE_DIR}/thirdparty/linux/gmp/")
include_directories("${GMP_Dirs}/include/")

# default location for GF2X
set(GF2X_Dirs "${CMAKE_SOURCE_DIR}/thirdparty/linux/gf2x/")
include_directories("${GMP_Dirs}/include/")

# default location for Boost
set(BOOST_ROOT "${libOTe_Dirs}/cryptoTools/thirdparty/linux/boost/")

Expand Down
171 changes: 0 additions & 171 deletions Tests/PSI_Tests.cpp

This file was deleted.

10 changes: 0 additions & 10 deletions Tests/PSI_Tests.h

This file was deleted.

2 changes: 1 addition & 1 deletion Tests/PSU_Tests.cpp
Expand Up @@ -532,7 +532,7 @@ namespace tests_libOTe
void PSU_Test_Impl()
{
setThreadName("Sender");
u64 setSize = 1 << 7, psiSecParam = 40, numThreads(1);
u64 setSize = 1 << 7, psiSecParam = 40, numThreads(2);

PRNG prng0(_mm_set_epi32(4253465, 3434565, 234435, 23987045));
PRNG prng1(_mm_set_epi32(4253465, 3434565, 234435, 23987025));
Expand Down
2 changes: 1 addition & 1 deletion TestsVS/PSU_TestsVS.cpp
Expand Up @@ -21,7 +21,7 @@ namespace tests_libOTe
}


TEST_METHOD(PMT_TestVS)
TEST_METHOD(PSU_TestVS)
{
InitDebugPrinting();
PSU_Test_Impl();
Expand Down
1 change: 1 addition & 0 deletions frontend/frontend.vcxproj
Expand Up @@ -54,6 +54,7 @@
<PreprocessorDefinitions>SOLUTION_DIR=R"**($(SolutionDir))**";_WIN32_WINNT=0x0501 ;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<EnableParallelCodeGeneration>true</EnableParallelCodeGeneration>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<AdditionalOptions>/wd4146</AdditionalOptions>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories);$(ProjectDir)..\cryptoTools\thirdparty\win\boost\stage\lib;C:/libs/boost\stage\lib;$(OutDir);$(ProjectDir)..\cryptoTools/thirdparty\win\;C:/libs/</AdditionalLibraryDirectories>
Expand Down
71 changes: 54 additions & 17 deletions frontend/main.cpp
Expand Up @@ -74,7 +74,16 @@ using namespace osuCrypto;
#include <thread>
#include <vector>

void Sender(u64 setSize, span<block> inputs, u64 numThreads = 1)
template<typename ... Args>
std::string string_format(const std::string& format, Args ... args)
{
size_t size = std::snprintf(nullptr, 0, format.c_str(), args ...) + 1; // Extra space for '\0'
std::unique_ptr<char[]> buf(new char[size]);
std::snprintf(buf.get(), size, format.c_str(), args ...);
return std::string(buf.get(), buf.get() + size - 1); // We don't want the '\0' inside
}

void Sender(u64 setSize, span<block> inputs, u64 numThreads)
{
u64 psiSecParam = 40;

Expand All @@ -92,13 +101,17 @@ void Sender(u64 setSize, span<block> inputs, u64 numThreads = 1)

KrtwSender sender;

gTimer.reset();
gTimer.setTimePoint("s start");
sender.init(40, prng0, inputs, sendChls);
gTimer.setTimePoint("s offline");

/*std::cout << sender.mBaseOTSend[0][0] << "\t";
std::cout << sender.mBaseOTSend[0][1] << "\n";
std::cout << sender.mBaseOTRecv[0] << "\n";*/

sender.output(inputs, sendChls);
gTimer.setTimePoint("s finish");


for (u64 i = 0; i < numThreads; ++i)
Expand All @@ -108,7 +121,7 @@ void Sender(u64 setSize, span<block> inputs, u64 numThreads = 1)

}

void Receiver(u64 setSize, span<block> inputs,u64 numThreads=1)
void Receiver(u64 setSize, span<block> inputs,u64 numThreads)
{
u64 psiSecParam = 40;

Expand All @@ -126,19 +139,31 @@ void Receiver(u64 setSize, span<block> inputs,u64 numThreads=1)

KrtwReceiver recv;
gTimer.reset();
gTimer.setTimePoint("start");
gTimer.setTimePoint("r start");
recv.init(40, prng1, inputs, recvChls);
gTimer.setTimePoint("offline");
gTimer.setTimePoint("r offline");

/*std::cout << recv.mBaseOTRecv[0] << "\n";
std::cout << recv.mBaseOTSend[0][0] << "\t";
std::cout << recv.mBaseOTSend[0][1] << "\n";*/

recv.output(inputs, recvChls);
gTimer.setTimePoint("finish");
gTimer.setTimePoint("r finish");
std::cout << gTimer << std::endl;



u64 dataSent = 0, dataRecv(0);
for (u64 g = 0; g < recvChls.size(); ++g)
{
dataSent += recvChls[g].getTotalDataSent();
dataRecv += recvChls[g].getTotalDataRecv();
recvChls[g].resetStats();
}

std::cout << " Total Comm = " << string_format("%5.2f", (dataRecv + dataSent) / std::pow(2.0, 20)) << " MB\n";


for (u64 i = 0; i < numThreads; ++i)
recvChls[i].close();

Expand Down Expand Up @@ -230,9 +255,21 @@ void usage(const char* argv0)

int main(int argc, char** argv)
{
u64 setSize = 1 << 20;
u64 setSize = 1 << 16, numThreads = 2;


if (argv[3][0] == '-' && argv[3][1] == 'n'
&& argv[5][0] == '-' && argv[5][1] == 't')
{
setSize = 1 << atoi(argv[4]);
numThreads = atoi(argv[6]);
}

std::cout << "SetSize: " << setSize << " vs " << setSize << " | numThreads: " << numThreads << "\t";

PRNG prng0(_mm_set_epi32(4253465, 3434565, 234435, 23987045));
PRNG prng1(_mm_set_epi32(4253233465, 334565, 0, 235));

std::vector<block> sendSet(setSize), recvSet(setSize);
for (u64 i = 0; i < setSize; ++i)
{
Expand All @@ -241,37 +278,37 @@ int main(int argc, char** argv)
}
sendSet[0] = recvSet[0];
sendSet[2] = recvSet[2];
std::cout << "intersection: " << sendSet[0] << "\n";
std::cout << "intersection: " << sendSet[2] << "\n";
/*std::cout << "intersection: " << sendSet[0] << "\n";
std::cout << "intersection: " << sendSet[2] << "\n";*/


#if 0
std::thread thrd = std::thread([&]() {
Sender(setSize, sendSet);
Sender(setSize, sendSet, numThreads);
});

Receiver(setSize, recvSet);
Receiver(setSize, recvSet, numThreads);

thrd.join();
return 0;
#endif

if (argc == 2 && argv[1][0] == '-' && argv[1][1] == 't') {
if (argv[1][0] == '-' && argv[1][1] == 't') {

std::thread thrd = std::thread([&]() {
Sender(setSize,sendSet);
Sender(setSize,sendSet, numThreads);
});

Receiver(setSize, recvSet);
Receiver(setSize, recvSet, numThreads);

thrd.join();

}
else if (argc == 3 && argv[1][0] == '-' && argv[1][1] == 'r' && atoi(argv[2]) == 0) {
Sender(setSize, sendSet);
else if (argv[1][0] == '-' && argv[1][1] == 'r' && atoi(argv[2]) == 0) {
Sender(setSize, sendSet, numThreads);
}
else if (argc == 3 && argv[1][0] == '-' && argv[1][1] == 'r' && atoi(argv[2]) == 1) {
Receiver(setSize, sendSet);
else if (argv[1][0] == '-' && argv[1][1] == 'r' && atoi(argv[2]) == 1) {
Receiver(setSize, sendSet, numThreads);
}
else {
usage(argv[0]);
Expand Down

0 comments on commit f7db82f

Please sign in to comment.