From 1e8d352930937255ee67341b8ae910d3fcee1200 Mon Sep 17 00:00:00 2001 From: George Lu Date: Tue, 14 Aug 2018 18:04:58 -0700 Subject: [PATCH] silencing params --- tests/README.md | 1 + tests/paramgrill.c | 70 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 56 insertions(+), 15 deletions(-) diff --git a/tests/README.md b/tests/README.md index 60fcebfb..3af08f7b 100644 --- a/tests/README.md +++ b/tests/README.md @@ -122,6 +122,7 @@ Full list of arguments tries= : Maximum number of random restarts on a single strategy before switching (Default 3) Higher values will make optimizer run longer, more chances to find better solution. memLog : Limits the log of the size of each memotable (1 per strategy). Setting memLog = 0 turns off memoization + --display= : which params to display, uses all --zstd parameter names and 'cParams' to display only compression parameters. -P# : generated sample compressibility -t# : Caps runtime of operation in seconds (default : 99999 seconds (about 27 hours )) -v : Prints Benchmarking output diff --git a/tests/paramgrill.c b/tests/paramgrill.c index ef005dd9..2f00c198 100644 --- a/tests/paramgrill.c +++ b/tests/paramgrill.c @@ -237,6 +237,8 @@ static UTIL_time_t g_time; /* to be used to compare solution finding speeds to c static U32 g_memoTableLog = PARAM_UNSET; static int g_displayLevel = 3; +static BYTE g_silenceParams[NUM_PARAMS]; + typedef enum { directMap, xxhashMap, @@ -447,31 +449,34 @@ static paramValues_t cParamUnsetMin(paramValues_t paramTarget) { } static void BMK_translateAdvancedParams(FILE* f, const paramValues_t params) { - U32 i; + varInds_t v; + int first = 1; fprintf(f,"--zstd="); - for(i = 0; i < NUM_PARAMS; i++) { - fprintf(f,"%s=", g_paramNames[i]); + for(v = 0; v < NUM_PARAMS; v++) { + if(g_silenceParams[v]) { continue; } + if(!first) { fprintf(f, ","); } + fprintf(f,"%s=", g_paramNames[v]); - if(i == strt_ind) { fprintf(f,"%u", params.vals[i]); } - else { displayParamVal(f, i, params.vals[i], 0); } - - if(i != NUM_PARAMS - 1) { - fprintf(f, ","); - } + if(v == strt_ind) { fprintf(f,"%u", params.vals[v]); } + else { displayParamVal(f, v, params.vals[v], 0); } + first = 0; } fprintf(f, "\n"); } static void BMK_displayOneResult(FILE* f, winnerInfo_t res, const size_t srcSize) { varInds_t v; + int first = 1; res.params = cParamUnsetMin(res.params); fprintf(f," {"); for(v = 0; v < NUM_PARAMS; v++) { - if(v != 0) { fprintf(f, ","); } + if(g_silenceParams[v]) { continue; } + if(!first) { fprintf(f, ","); } displayParamVal(f, v, res.params.vals[v], 3); + first = 0; } - fprintf(f, "}, /* R:%5.3f at %5.1f MB/s - %5.1f MB/s */\n", + fprintf(f, " }, /* R:%5.3f at %5.1f MB/s - %5.1f MB/s */\n", (double)srcSize / res.result.cSize, (double)res.result.cSpeed / (1 MB), (double)res.result.dSpeed / (1 MB)); } @@ -2545,6 +2550,43 @@ int main(int argc, const char** argv) } continue; /* if not return, success */ + + } else if (longCommandWArg(&argument, "--display=")) { + /* Decode command (note : aggregated commands are allowed) */ + memset(g_silenceParams, 1, sizeof(g_silenceParams)); + for ( ; ;) { + int found = 0; + varInds_t v; + for(v = 0; v < NUM_PARAMS; v++) { + if(longCommandWArg(&argument, g_shortParamNames[v]) || longCommandWArg(&argument, g_paramNames[v])) { + g_silenceParams[v] = 0; + found = 1; + } + } + if(longCommandWArg(&argument, "compressionParameters") || longCommandWArg(&argument, "cParams")) { + for(v = 0; v <= strt_ind; v++) { + g_silenceParams[v] = 0; + } + found = 1; + } + + + if(found) { + if(argument[0]==',') { + continue; + } else { + break; + } + } + DISPLAY("invalid parameter name parameter \n"); + return 1; + } + + if (argument[0] != 0) { + DISPLAY("invalid --display format\n"); + return 1; /* check the end of string */ + } + continue; } else if (argument[0]=='-') { argument++; @@ -2650,13 +2692,11 @@ int main(int argc, const char** argv) break; case 'q': - argument++; - g_displayLevel--; + while (argument[0] == 'q') { argument++; g_displayLevel--; } break; case 'v': - argument++; - g_displayLevel++; + while (argument[0] == 'v') { argument++; g_displayLevel++; } break; /* load dictionary file (only applicable for optimizer rn) */