From 909069826c78962c814f20a966dd83d26b28d9ce Mon Sep 17 00:00:00 2001 From: PONS Jean-Luc Date: Fri, 12 Jun 2020 07:22:42 +0200 Subject: [PATCH] Little fix --- Constants.h | 2 +- Kangaroo.h | 2 +- Merge.cpp | 6 +++++- PartMerge.cpp | 31 ++++++++++++++++++++++--------- Thread.cpp | 8 ++++---- 5 files changed, 33 insertions(+), 16 deletions(-) diff --git a/Constants.h b/Constants.h index d736b7d..d66482d 100644 --- a/Constants.h +++ b/Constants.h @@ -19,7 +19,7 @@ #define CONSTANTSH // Release number -#define RELEASE "1.10(unstable)" +#define RELEASE "1.10" // Use symmetry //#define USE_SYMMETRY diff --git a/Kangaroo.h b/Kangaroo.h index 06d6c10..84a6e4d 100644 --- a/Kangaroo.h +++ b/Kangaroo.h @@ -232,7 +232,7 @@ class Kangaroo { uint64_t dMask; uint32_t dpSize; int32_t initDPSize; - int collisionInSameHerd; + uint64_t collisionInSameHerd; std::vector keysToSearch; Point keyToSearch; Point keyToSearchNeg; diff --git a/Merge.cpp b/Merge.cpp index 7dfc882..7ebc464 100644 --- a/Merge.cpp +++ b/Merge.cpp @@ -230,7 +230,11 @@ bool Kangaroo::MergeWork(std::string& file1,std::string& file2,std::string& dest } if(printStat) { - ::printf("Dead kangaroo: %d\n",collisionInSameHerd); +#ifdef WIN64 + ::printf("Dead kangaroo: %I64d\n",collisionInSameHerd); +#else + ::printf("Dead kangaroo: %" PRId64 "\n",collisionInSameHerd); +#endif ::printf("Total f1+f2: DP count 2^%.2f\n",log2((double)nbDP)); } else { offsetTime = time1 + time2; diff --git a/PartMerge.cpp b/PartMerge.cpp index 09e635d..3491fac 100644 --- a/PartMerge.cpp +++ b/PartMerge.cpp @@ -400,13 +400,21 @@ bool Kangaroo::MergeWorkPartPart(std::string& part1Name,std::string& part2Name) } else { - ::printf("Dead kangaroo: %d\n",collisionInSameHerd); +#ifdef WIN64 + ::printf("Dead kangaroo: %I64d\n",collisionInSameHerd); +#else + ::printf("Dead kangaroo: %" PRId64 "\n",collisionInSameHerd); +#endif ::printf("Total f1+f2: DP count 2^%.2f\n",log2((double)nbDP)); return true; } - ::printf("Dead kangaroo: %d\n",collisionInSameHerd); +#ifdef WIN64 + ::printf("Dead kangaroo: %I64d\n",collisionInSameHerd); +#else + ::printf("Dead kangaroo: %" PRId64 "\n",collisionInSameHerd); +#endif ::printf("Total f1+f2: DP count 2^%.2f\n",log2((double)nbDP)); return false; @@ -480,8 +488,7 @@ bool Kangaroo::FillEmptyPartFromFile(std::string& partName,std::string& fileName // Save parts for(int p = 0; p < MERGE_PART; p++) { - if(p%(MERGE_PART/64)==0) - ::printf("."); + if(p % (MERGE_PART / 64) == 0) ::printf("."); FILE *f = OpenPart(partName,"wb",p,false); uint32_t hStart = p * (HASH_SIZE / MERGE_PART); @@ -662,7 +669,7 @@ bool Kangaroo::MergeWorkPart(std::string& partName,std::string& file2,bool print for(int part = 0; part < MERGE_PART && !endOfSearch; part++) { - if(part%4==0) ::printf("."); + if(part % (MERGE_PART / 64) == 0) ::printf("."); uint32_t hStart = part * (HASH_SIZE / MERGE_PART); uint32_t hStop = (part + 1) * (HASH_SIZE / MERGE_PART); @@ -673,8 +680,6 @@ bool Kangaroo::MergeWorkPart(std::string& partName,std::string& file2,bool print for(uint32_t h = hStart; h < hStop && !endOfSearch; h++) { - if(h % (HASH_SIZE / 64) == 0) ::printf("."); - int mStatus = HashTable::MergeH(h,f1,f2,f,&hDP,&hDuplicate,&d1,&type1,&d2,&type2); switch(mStatus) { case ADD_OK: @@ -710,14 +715,22 @@ bool Kangaroo::MergeWorkPart(std::string& partName,std::string& file2,bool print } else { - ::printf("Dead kangaroo: %d\n",collisionInSameHerd); +#ifdef WIN64 + ::printf("Dead kangaroo: %I64d\n",collisionInSameHerd); +#else + ::printf("Dead kangaroo: %" PRId64 "\n",collisionInSameHerd); +#endif ::printf("Total f1+f2: DP count 2^%.2f\n",log2((double)nbDP)); return true; } if(printStat) { - ::printf("Dead kangaroo: %d\n",collisionInSameHerd); +#ifdef WIN64 + ::printf("Dead kangaroo: %I64d\n",collisionInSameHerd); +#else + ::printf("Dead kangaroo: %" PRId64 "\n",collisionInSameHerd); +#endif ::printf("Total f1+f2: DP count 2^%.2f\n",log2((double)nbDP)); } else { offsetTime = time1 + time2; diff --git a/Thread.cpp b/Thread.cpp index 79c41c0..fcc23e3 100644 --- a/Thread.cpp +++ b/Thread.cpp @@ -212,12 +212,12 @@ void Kangaroo::ProcessServer() { t1 = Timer::get_tick(); if(!endOfSearch) - printf("\r[Client %d][Kang 2^%.2f][DP Count 2^%.2f/2^%.2f][Dead %d][%s][%s] ", + printf("\r[Client %d][Kang 2^%.2f][DP Count 2^%.2f/2^%.2f][Dead %.0f][%s][%s] ", connectedClient, log2((double)totalRW), log2((double)hashTable.GetNbItem()), log2(expectedNbOp / pow(2.0,dpSize)), - collisionInSameHerd, + (double)collisionInSameHerd, GetTimeStr(t1 - startTime).c_str(), hashTable.GetSizeInfo().c_str() ); @@ -311,11 +311,11 @@ void Kangaroo::Process(TH_PARAM *params,std::string unit) { serverStatus.c_str() ); } else { - printf("\r[%.2f %s][GPU %.2f %s][Count 2^%.2f][Dead %d][%s (Avg %s)][%s] ", + printf("\r[%.2f %s][GPU %.2f %s][Count 2^%.2f][Dead %.0f][%s (Avg %s)][%s] ", avgKeyRate / 1000000.0,unit.c_str(), avgGpuKeyRate / 1000000.0,unit.c_str(), log2((double)count + offsetCount), - collisionInSameHerd, + (double)collisionInSameHerd, GetTimeStr(t1 - startTime + offsetTime).c_str(),GetTimeStr(expectedTime).c_str(), hashTable.GetSizeInfo().c_str() );