diff --git a/benchmark/scripts/scanARow/config_BerCRS.csv b/benchmark/scripts/scanARow/config_BerCRS.csv new file mode 100644 index 00000000..d2b758a5 --- /dev/null +++ b/benchmark/scripts/scanARow/config_BerCRS.csv @@ -0,0 +1,6 @@ +key,value,type +aRow,100,U64 +aCol,1000,U64 +bCol,500,U64 +sketchDimension,25,U64 +ptFile,torchscripts/BernoulliCRS.pt,String \ No newline at end of file diff --git a/benchmark/scripts/scanARow/config_CRS.csv b/benchmark/scripts/scanARow/config_CRS.csv new file mode 100644 index 00000000..b6afe1ef --- /dev/null +++ b/benchmark/scripts/scanARow/config_CRS.csv @@ -0,0 +1,6 @@ +key,value,type +aRow,100,U64 +aCol,1000,U64 +bCol,500,U64 +sketchDimension,25,U64 +ptFile,torchscripts/CRS.pt,String \ No newline at end of file diff --git a/benchmark/scripts/scanARow/config_CounterSketch.csv b/benchmark/scripts/scanARow/config_CounterSketch.csv new file mode 100644 index 00000000..50cf2770 --- /dev/null +++ b/benchmark/scripts/scanARow/config_CounterSketch.csv @@ -0,0 +1,6 @@ +key,value,type +aRow,100,U64 +aCol,1000,U64 +bCol,500,U64 +sketchDimension,25,U64 +ptFile,torchscripts/CountSketch.pt,String diff --git a/benchmark/scripts/scanARow/config_EWS.csv b/benchmark/scripts/scanARow/config_EWS.csv new file mode 100644 index 00000000..8e09f17b --- /dev/null +++ b/benchmark/scripts/scanARow/config_EWS.csv @@ -0,0 +1,6 @@ +key,value,type +aRow,100,U64 +aCol,1000,U64 +bCol,500,U64 +sketchDimension,25,U64 +ptFile,torchscripts/EWS.pt,String \ No newline at end of file diff --git a/benchmark/scripts/scanARow/drawTogether.py b/benchmark/scripts/scanARow/drawTogether.py index f993cbd1..602ab5d2 100755 --- a/benchmark/scripts/scanARow/drawTogether.py +++ b/benchmark/scripts/scanARow/drawTogether.py @@ -98,52 +98,65 @@ def readResultVector(singleValueVec, resultPath): cacheRefVec.append(float(cacheRefs)) return np.array(elapseTimeVec), np.array(cacheMissVec), np.array(cacheRefVec) - +def compareMethod(exeSpace,commonPathBase,resultPaths,csvTemplates,periodVec,reRun=1): + elapsedTimeAll=[] + cacheMissAll=[] + cacheRefAll=[] + periodAll=[] + for i in range(len(csvTemplates)): + resultPath=commonPathBase+resultPaths[i] + if(reRun==1): + os.system("sudo rm -rf " + resultPath) + os.system("sudo mkdir " + resultPath) + runScanVector(exeSpace, periodVec, resultPath,csvTemplates[i]) + elapsedTime,cacheMiss,cacheRef = readResultVector(periodVec, resultPath) + elapsedTimeAll.append(elapsedTime) + cacheMissAll.append(cacheMiss) + cacheRefAll.append(cacheRef) + periodAll.append(periodVec) + cacheMissRateAll=np.array(cacheMissAll)/np.array(cacheRefAll)*100.0 + #periodAll.append(periodVec) + return np.array(elapsedTimeAll),cacheMissRateAll,periodAll def main(): exeSpace = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/" - resultPath = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/results/" + scanTag - resultPathFDAMM = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/results/" + scanTag + "/FDAMM" - resultPathCoFD = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/results/" + scanTag + "/CoFD" - resultPathBetaCoFD = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/results/" + scanTag + "/BCoFD" - resultPathRAWMM = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/results/" + scanTag + "/RAWMM" + commonBase = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/results/" + scanTag+"/" figPath = os.path.abspath(os.path.join(os.getcwd(), "../..")) + "/figures/" + scanTag - configTemplate = exeSpace + "config.csv" + methodTags=["FD-AMM","Co-AMM","BCo-AMM","Couter-sketch","MM"] + resultPaths=["fd","co","co","cs","mm"] + csvTemplates=["config_FDAMM.csv","config_CoAMM.csv","config_BCoAMM.csv","config_CounterSketch.csv","config_RAWMM.csv"] valueVec = [100, 200, 500, 1000, 2000, 5000, 10000, 20000, 50000] valueVecDisp = np.array(valueVec) - print(configTemplate) # run + reRun=0 if (len(sys.argv) < 2): os.system("mkdir ../../results") os.system("mkdir ../../figures") os.system("mkdir " + figPath) - os.system("sudo rm -rf " + resultPath) - os.system("sudo mkdir " + resultPath) - # - cleanPath(resultPathFDAMM) - cleanPath(resultPathCoFD) - cleanPath(resultPathBetaCoFD) - cleanPath(resultPathRAWMM) - # - runScanVector(exeSpace, valueVec, resultPathFDAMM, "config_FDAMM.csv") - runScanVector(exeSpace, valueVec, resultPathCoFD, "config_CoAMM.csv") - runScanVector(exeSpace, valueVec, resultPathBetaCoFD, "config_BCoAMM.csv") - runScanVector(exeSpace, valueVec, resultPathRAWMM, "config_RAWMM.csv") - evaTypes = ['FDAMM', 'MM', 'Co-FD', 'BCO-FD'] - elapseTimeVecFD, cacheMissVecFD, cacheRefVecFD = readResultVector(valueVec, resultPathFDAMM) - elapseTimeVecCoFD, cacheMissVecCoFD, cacheRefVecCoFD = readResultVector(valueVec, resultPathCoFD) - elapseTimeVeCB, cacheMissVecB, cacheRefVecB = readResultVector(valueVec, resultPathBetaCoFD) - elapseTimeVecRAW, cacheMissVecRAW, cacheRefVecRAW = readResultVector(valueVec, resultPathRAWMM) - # os.system("mkdir " + figPath) - groupLine.DrawFigure([valueVec, valueVec, valueVec, valueVec], - [elapseTimeVecFD, elapseTimeVecRAW, elapseTimeVecCoFD, elapseTimeVeCB], - evaTypes, - "#elements in A's row", "elapsed time (ms)", 0, 1, figPath + scanTag + "_elapsedTime", + os.system("sudo rm -rf " + commonBase) + os.system("sudo mkdir " + commonBase) + reRun=1 + #skech + elapsedTimeAll,cacheMissAll,periodAll=compareMethod(exeSpace,commonBase,resultPaths,csvTemplates,valueVec,reRun) + groupLine.DrawFigure(periodAll,elapsedTimeAll, + methodTags, + "#elements in A's row", "elapsed time (ms)", 0, 1, figPath +"/"+ scanTag + "sketch_elapsedTime", + True) + groupLine.DrawFigureYnormal(periodAll,cacheMissAll, + methodTags, + "#elements in A's row", "cacheMiss (%)", 0, 1, figPath + "/"+scanTag + "sketch_cacheMiss", + True) + #sampling + resultPaths=["crs","bcrs","ews","mm"] + csvTemplates=["config_CRS.csv","config_BerCRS.csv","config_EWS.csv","config_RAWMM.csv"] + methodTags=["CRS","Ber-CRS","EWS","MM"] + elapsedTimeAll,cacheMissAll,periodAll=compareMethod(exeSpace,commonBase,resultPaths,csvTemplates,valueVec,reRun) + groupLine.DrawFigure(periodAll,elapsedTimeAll, + methodTags, + "#elements in A's row", "elapsed time (ms)", 0, 1, figPath +"/"+ scanTag + "sampling_elapsedTime", True) - groupLine.DrawFigureYnormal([valueVec, valueVec, valueVec, valueVec], - [cacheMissVecFD / cacheRefVecFD * 100.0, cacheMissVecRAW / cacheRefVecRAW * 100.0, - cacheMissVecCoFD / cacheRefVecCoFD * 100.0, cacheMissVecB / cacheRefVecB * 100.0], - evaTypes, - "#elements in A's row", "cacheMiss (%)", 0, 1, figPath + scanTag + "_cacheMiss", + groupLine.DrawFigureYnormal(periodAll,cacheMissAll, + methodTags, + "#elements in A's row", "cacheMiss (%)", 0, 1, figPath + "/"+scanTag + "sampling_cacheMiss", True) # draw2yLine("watermark time (ms)",singleValueVecDisp,lat95Vec,errVec,"95% Latency (ms)","Error","ms","",figPath+"wm_lat") # draw2yLine("watermark time (ms)",singleValueVecDisp,thrVec,errVec,"Throughput (KTp/s)","Error","KTp/s","",figPath+"wm_thr") diff --git a/commit.sh b/commit.sh index 5a6df3b4..59577c88 100755 --- a/commit.sh +++ b/commit.sh @@ -1,4 +1,4 @@ -BRANCH=METER_CRS +BRANCH=REFINE_SCAN git init git checkout -b $BRANCH git add . diff --git a/commit_info b/commit_info index 391bc0c6..96ec0c65 100644 --- a/commit_info +++ b/commit_info @@ -1,2 +1 @@ -1. add the energy meter subsystem -2. include haolan's crs update +1. changed the scan scripts in benchmark/scripts/scanARow