diff --git a/results/tmp1Fpcu3.tar.gz b/results/tmp1Fpcu3.tar.gz new file mode 100644 index 0000000..1429bc2 Binary files /dev/null and b/results/tmp1Fpcu3.tar.gz differ diff --git a/results/tmp1NQsx4.tar.gz b/results/tmp1NQsx4.tar.gz new file mode 100644 index 0000000..8a7d74e Binary files /dev/null and b/results/tmp1NQsx4.tar.gz differ diff --git a/results/tmp1O0q1q.tar.gz b/results/tmp1O0q1q.tar.gz new file mode 100644 index 0000000..ebb99e3 Binary files /dev/null and b/results/tmp1O0q1q.tar.gz differ diff --git a/results/tmp1TTOK5.tar.gz b/results/tmp1TTOK5.tar.gz new file mode 100644 index 0000000..f03d9bd Binary files /dev/null and b/results/tmp1TTOK5.tar.gz differ diff --git a/results/tmp2xoZ13.tar.gz b/results/tmp2xoZ13.tar.gz new file mode 100644 index 0000000..5b2dedc Binary files /dev/null and b/results/tmp2xoZ13.tar.gz differ diff --git a/results/tmp3SMaTN.tar.gz b/results/tmp3SMaTN.tar.gz new file mode 100644 index 0000000..722547d Binary files /dev/null and b/results/tmp3SMaTN.tar.gz differ diff --git a/results/tmp3tSeqw.tar.gz b/results/tmp3tSeqw.tar.gz new file mode 100644 index 0000000..955de1e Binary files /dev/null and b/results/tmp3tSeqw.tar.gz differ diff --git a/results/tmp4M5hpS.tar.gz b/results/tmp4M5hpS.tar.gz new file mode 100644 index 0000000..68bc5b9 Binary files /dev/null and b/results/tmp4M5hpS.tar.gz differ diff --git a/results/tmp6KVaxS.tar.gz b/results/tmp6KVaxS.tar.gz new file mode 100644 index 0000000..da915fd Binary files /dev/null and b/results/tmp6KVaxS.tar.gz differ diff --git a/results/tmp9s7jqq.tar.gz b/results/tmp9s7jqq.tar.gz new file mode 100644 index 0000000..6aca637 Binary files /dev/null and b/results/tmp9s7jqq.tar.gz differ diff --git a/results/tmpA3y8ic.tar.gz b/results/tmpA3y8ic.tar.gz new file mode 100644 index 0000000..1e5690d Binary files /dev/null and b/results/tmpA3y8ic.tar.gz differ diff --git a/results/tmpAMhbF4.tar.gz b/results/tmpAMhbF4.tar.gz new file mode 100644 index 0000000..407712e Binary files /dev/null and b/results/tmpAMhbF4.tar.gz differ diff --git a/results/tmpCAKZUf.tar.gz b/results/tmpCAKZUf.tar.gz new file mode 100644 index 0000000..eb83a8c Binary files /dev/null and b/results/tmpCAKZUf.tar.gz differ diff --git a/results/tmpDpJfiZ.tar.gz b/results/tmpDpJfiZ.tar.gz new file mode 100644 index 0000000..57b18cc Binary files /dev/null and b/results/tmpDpJfiZ.tar.gz differ diff --git a/results/tmpEK9Ldo.tar.gz b/results/tmpEK9Ldo.tar.gz new file mode 100644 index 0000000..5d7b052 Binary files /dev/null and b/results/tmpEK9Ldo.tar.gz differ diff --git a/results/tmpFow0s6.tar.gz b/results/tmpFow0s6.tar.gz new file mode 100644 index 0000000..8ab65cc Binary files /dev/null and b/results/tmpFow0s6.tar.gz differ diff --git a/results/tmpFxslu8.tar.gz b/results/tmpFxslu8.tar.gz new file mode 100644 index 0000000..41e4cff Binary files /dev/null and b/results/tmpFxslu8.tar.gz differ diff --git a/results/tmpH2BP6B.tar.gz b/results/tmpH2BP6B.tar.gz new file mode 100644 index 0000000..9d6787d Binary files /dev/null and b/results/tmpH2BP6B.tar.gz differ diff --git a/results/tmpJ_PqfU.tar.gz b/results/tmpJ_PqfU.tar.gz new file mode 100644 index 0000000..e767506 Binary files /dev/null and b/results/tmpJ_PqfU.tar.gz differ diff --git a/results/tmpLVsVaY.tar.gz b/results/tmpLVsVaY.tar.gz new file mode 100644 index 0000000..406137c Binary files /dev/null and b/results/tmpLVsVaY.tar.gz differ diff --git a/results/tmpMhTCHX.tar.gz b/results/tmpMhTCHX.tar.gz new file mode 100644 index 0000000..3f3627b Binary files /dev/null and b/results/tmpMhTCHX.tar.gz differ diff --git a/results/tmpMyknZ0.tar.gz b/results/tmpMyknZ0.tar.gz new file mode 100644 index 0000000..1d0ea02 Binary files /dev/null and b/results/tmpMyknZ0.tar.gz differ diff --git a/results/tmpNsqR0l.tar.gz b/results/tmpNsqR0l.tar.gz new file mode 100644 index 0000000..b889ff4 Binary files /dev/null and b/results/tmpNsqR0l.tar.gz differ diff --git a/results/tmpP0spk4.tar.gz b/results/tmpP0spk4.tar.gz new file mode 100644 index 0000000..39d10af Binary files /dev/null and b/results/tmpP0spk4.tar.gz differ diff --git a/results/tmpRckLse.tar.gz b/results/tmpRckLse.tar.gz new file mode 100644 index 0000000..ee913e2 Binary files /dev/null and b/results/tmpRckLse.tar.gz differ diff --git a/results/tmpS4y2va.tar.gz b/results/tmpS4y2va.tar.gz new file mode 100644 index 0000000..c24976c Binary files /dev/null and b/results/tmpS4y2va.tar.gz differ diff --git a/results/tmpSPgfjL.tar.gz b/results/tmpSPgfjL.tar.gz new file mode 100644 index 0000000..566f054 Binary files /dev/null and b/results/tmpSPgfjL.tar.gz differ diff --git a/results/tmpSgktr0.tar.gz b/results/tmpSgktr0.tar.gz new file mode 100644 index 0000000..a9e2ca2 Binary files /dev/null and b/results/tmpSgktr0.tar.gz differ diff --git a/results/tmpTfeUtB.tar.gz b/results/tmpTfeUtB.tar.gz new file mode 100644 index 0000000..c3de5c2 Binary files /dev/null and b/results/tmpTfeUtB.tar.gz differ diff --git a/results/tmpTjbW9n.tar.gz b/results/tmpTjbW9n.tar.gz new file mode 100644 index 0000000..37bb655 Binary files /dev/null and b/results/tmpTjbW9n.tar.gz differ diff --git a/results/tmpW6I4t8.tar.gz b/results/tmpW6I4t8.tar.gz new file mode 100644 index 0000000..057dca3 Binary files /dev/null and b/results/tmpW6I4t8.tar.gz differ diff --git a/results/tmpZe9ZgJ.tar.gz b/results/tmpZe9ZgJ.tar.gz new file mode 100644 index 0000000..865a6d9 Binary files /dev/null and b/results/tmpZe9ZgJ.tar.gz differ diff --git a/results/tmpdkZzOV.tar.gz b/results/tmpdkZzOV.tar.gz new file mode 100644 index 0000000..abc4b4a Binary files /dev/null and b/results/tmpdkZzOV.tar.gz differ diff --git a/results/tmpeKj4XT.tar.gz b/results/tmpeKj4XT.tar.gz new file mode 100644 index 0000000..b8ebfb3 Binary files /dev/null and b/results/tmpeKj4XT.tar.gz differ diff --git a/results/tmpf2lxdl.tar.gz b/results/tmpf2lxdl.tar.gz new file mode 100644 index 0000000..8e5143d Binary files /dev/null and b/results/tmpf2lxdl.tar.gz differ diff --git a/results/tmpfCBrYh.tar.gz b/results/tmpfCBrYh.tar.gz new file mode 100644 index 0000000..1c2861e Binary files /dev/null and b/results/tmpfCBrYh.tar.gz differ diff --git a/results/tmpgtzzD3.tar.gz b/results/tmpgtzzD3.tar.gz new file mode 100644 index 0000000..29527db Binary files /dev/null and b/results/tmpgtzzD3.tar.gz differ diff --git a/results/tmpjeqW0u.tar.gz b/results/tmpjeqW0u.tar.gz new file mode 100644 index 0000000..f759a67 Binary files /dev/null and b/results/tmpjeqW0u.tar.gz differ diff --git a/results/tmpkC7xL9.tar.gz b/results/tmpkC7xL9.tar.gz new file mode 100644 index 0000000..86cb5b3 Binary files /dev/null and b/results/tmpkC7xL9.tar.gz differ diff --git a/results/tmpkQaQI3.tar.gz b/results/tmpkQaQI3.tar.gz new file mode 100644 index 0000000..9470333 Binary files /dev/null and b/results/tmpkQaQI3.tar.gz differ diff --git a/results/tmplWDFUF.tar.gz b/results/tmplWDFUF.tar.gz new file mode 100644 index 0000000..49fb1c0 Binary files /dev/null and b/results/tmplWDFUF.tar.gz differ diff --git a/results/tmplsbOxI.tar.gz b/results/tmplsbOxI.tar.gz new file mode 100644 index 0000000..5dfd9a7 Binary files /dev/null and b/results/tmplsbOxI.tar.gz differ diff --git a/results/tmplsxb7R.tar.gz b/results/tmplsxb7R.tar.gz new file mode 100644 index 0000000..7257131 Binary files /dev/null and b/results/tmplsxb7R.tar.gz differ diff --git a/results/tmpn2YlFp.tar.gz b/results/tmpn2YlFp.tar.gz new file mode 100644 index 0000000..18443d7 Binary files /dev/null and b/results/tmpn2YlFp.tar.gz differ diff --git a/results/tmpoLzhAz.tar.gz b/results/tmpoLzhAz.tar.gz new file mode 100644 index 0000000..ee85765 Binary files /dev/null and b/results/tmpoLzhAz.tar.gz differ diff --git a/results/tmpoMh9IW.tar.gz b/results/tmpoMh9IW.tar.gz new file mode 100644 index 0000000..2a5cce7 Binary files /dev/null and b/results/tmpoMh9IW.tar.gz differ diff --git a/results/tmpp7L6vr.tar.gz b/results/tmpp7L6vr.tar.gz new file mode 100644 index 0000000..9b5928d Binary files /dev/null and b/results/tmpp7L6vr.tar.gz differ diff --git a/results/tmpp9QJzX.tar.gz b/results/tmpp9QJzX.tar.gz new file mode 100644 index 0000000..245f67d Binary files /dev/null and b/results/tmpp9QJzX.tar.gz differ diff --git a/results/tmppI61nX.tar.gz b/results/tmppI61nX.tar.gz new file mode 100644 index 0000000..b4d25ee Binary files /dev/null and b/results/tmppI61nX.tar.gz differ diff --git a/results/tmppbOR3V.tar.gz b/results/tmppbOR3V.tar.gz new file mode 100644 index 0000000..1cb8360 Binary files /dev/null and b/results/tmppbOR3V.tar.gz differ diff --git a/results/tmpqFef_p.tar.gz b/results/tmpqFef_p.tar.gz new file mode 100644 index 0000000..e64cea1 Binary files /dev/null and b/results/tmpqFef_p.tar.gz differ diff --git a/results/tmpqtCQBt.tar.gz b/results/tmpqtCQBt.tar.gz new file mode 100644 index 0000000..686bbe5 Binary files /dev/null and b/results/tmpqtCQBt.tar.gz differ diff --git a/results/tmprtQw9u.tar.gz b/results/tmprtQw9u.tar.gz new file mode 100644 index 0000000..ff6b0f3 Binary files /dev/null and b/results/tmprtQw9u.tar.gz differ diff --git a/results/tmpsFu46N.tar.gz b/results/tmpsFu46N.tar.gz new file mode 160000 index 0000000..c817967 --- /dev/null +++ b/results/tmpsFu46N.tar.gz @@ -0,0 +1 @@ +Subproject commit c81796776aae8e5c5acdbef29eefb304a326ca03 diff --git a/results/tmpsbkFiM.tar.gz b/results/tmpsbkFiM.tar.gz new file mode 100644 index 0000000..9d9350e Binary files /dev/null and b/results/tmpsbkFiM.tar.gz differ diff --git a/results/tmpu7MB4r.tar.gz b/results/tmpu7MB4r.tar.gz new file mode 100644 index 0000000..aac38b3 Binary files /dev/null and b/results/tmpu7MB4r.tar.gz differ diff --git a/results/tmpwlnFNM.tar.gz b/results/tmpwlnFNM.tar.gz new file mode 100644 index 0000000..f1dc7e2 Binary files /dev/null and b/results/tmpwlnFNM.tar.gz differ diff --git a/results/tmpwoNtJN.tar.gz b/results/tmpwoNtJN.tar.gz new file mode 100644 index 0000000..ba66fd8 Binary files /dev/null and b/results/tmpwoNtJN.tar.gz differ diff --git a/results/tmpxGcSjP.tar.gz b/results/tmpxGcSjP.tar.gz new file mode 100644 index 0000000..4ab33d5 Binary files /dev/null and b/results/tmpxGcSjP.tar.gz differ diff --git a/results/tmpy2mxmo.tar.gz b/results/tmpy2mxmo.tar.gz new file mode 100644 index 0000000..efed562 Binary files /dev/null and b/results/tmpy2mxmo.tar.gz differ diff --git a/run.py b/run.py index db0f557..2fbd202 100755 --- a/run.py +++ b/run.py @@ -7,6 +7,11 @@ import subprocess import shutil import re +import json +import getpass +from restkit import Resource, BasicAuth + +owner = "avsm" # github user name of the official trunk repo cpu_regex = re.compile("^cpu(\d+)$") index_regex = re.compile("^index(\d+)$") @@ -237,4 +242,112 @@ def parse_list(s): subprocess.check_call(["/bin/tar", "cvfz", out_file, tempdir]) print "Test succeeded. Output written as", out_file -print "Please email that file to cl-ipc-bench@lists.cam.ac.uk" + +path = out_file +file_ = path[5:] + +git = raw_input( "Do you have a github account? Y/N" ) + +if (git=="Y" or git=="y") is False: + print "Output written as", out_file + print "Please email that file to cl-ipc-bench@lists.cam.ac.uk" + sys.exit() + +#------------------------ +#Adding the output file to the repo and making pull request +#------------------------ +shutil.copyfile(path, os.getcwd() + "/results/" + file_) + + +user = raw_input( "Github user:" ) +password = getpass.getpass() +auth = BasicAuth(user, password) + + +#Getting authentication token + +authreqdata = { "scopes": [ "public_repo" ], "note": "admin script" } + +resource = Resource('https://api.github.com/authorizations', filters=[auth]) +response = resource.post(headers={ "Content-Type": "application/json" }, payload = json.dumps(authreqdata)) +token = json.loads(response.body_string())['token'] + +#Fork the repo + +resource = Resource('https://api.github.com/repos/%s/ipc-bench/forks' %owner) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.post(headers = headers) +forks = json.loads(response.body_string()) + +#Commit + + #Get the SHA for the latest commit +resource = Resource("https://api.github.com/repos/%s/ipc-bench/git/refs/heads/master" % user) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.get(headers = headers) +sha_latest = json.loads(response.body_string())['object']['sha'] + + + #Get the SHA for the tree +resource = Resource("https://api.github.com/repos/%s/ipc-bench/git/commits/%s" % ( user, sha_latest ) ) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.get(headers = headers) +sha_tree = json.loads(response.body_string())['tree']['sha'] + + +print "results/" + file_ + #Adding the file to the tree +data = { "base_tree": sha_tree, "tree": [ + { + "path": "results/" + file_, + "mode": "160000", + "type": "commit", + "sha": sha_tree + } + ] + } +resource = Resource('https://api.github.com/repos/%s/ipc-bench/git/trees ' % user) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.post(headers = headers, payload = json.dumps(data)) +sha_new = json.loads(response.body_string())['sha'] + + #Commit +data = { "parents": [ sha_latest ], "tree": sha_new , "message": "New test data"} +resource = Resource('https://api.github.com/repos/%s/ipc-bench/git/commits ' % user) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.post(headers = headers, payload = json.dumps(data)) +sha_commit = json.loads(response.body_string())['sha'] + + #Set head master +data = { "sha": sha_commit, "force": True} +resource = Resource('https://api.github.com/repos/%s/ipc-bench/git/refs/heads/master ' % user) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.post(headers = headers, payload = json.dumps(data)) +temp = json.loads(response.body_string()) + + + +#Pull request + + + +data = { + "title": "New test data", + "body": "The file is " + file_, + "head": "%s:master" %user, + "base": "master" + } +resource = Resource('https://api.github.com/repos/%s/ipc-bench/pulls ' %owner) +headers = {'Content-Type' : 'application/json' } +headers['Authorization'] = 'token %s' % token +response = resource.post(headers = headers, payload = json.dumps(data)) +temp = json.loads(response.body_string()) + + +#------------------------ diff --git a/web/processing/cron.sh b/web/processing/cron.sh index 63a86bc..4a69981 100755 --- a/web/processing/cron.sh +++ b/web/processing/cron.sh @@ -3,11 +3,12 @@ CUR_DIR=$(pwd) RESULTS_DIR=../../results -OUT_DIR=/usr/groups/netos/html/ipc-bench +OUT_DIR=/usr/groups/netos/html/projects/ipc-bench HTML_OUTFILE=results.html cd ${RESULTS_DIR} RESULTS=$(ls tmp*.tar.gz) +#RESULTS="tmpsbkFiM.tar.gz" cd ${CUR_DIR} # Generate results.html @@ -15,14 +16,15 @@ cat ${PWD}/html_head.tmpl > ${OUT_DIR}/${HTML_OUTFILE}.new cat ${PWD}/html_results_head.tmpl >> ${OUT_DIR}/${HTML_OUTFILE}.new for r in ${RESULTS}; do ARCHIVE=${r} - echo -n "Extracting ${ARCHIVE}..." - tar -xzf ${RESULTS_DIR}/${ARCHIVE} - echo " done!" - NAME=$(echo ${r} | sed 's/\.tar\.gz//g') - DIR=tmp/${NAME} - # Check the extracted data directory exists - if [[ ! -d ${DIR} ]]; then - echo "FATAL: After extraction, ${DIR} did not exist!" + NAME=$(echo ${r} | sed 's/\.tar\.gz//g') DIR=tmp/${NAME} + if [[ ! -f ${OUT_DIR}/details/${NAME}.html ]]; then + echo -n "Extracting ${ARCHIVE}..." + tar -xzf ${RESULTS_DIR}/${ARCHIVE} + echo " done!" + # Check the extracted data directory exists + if [[ ! -d ${DIR} ]]; then + echo "FATAL: After extraction, ${DIR} did not exist!" + fi fi # Find the target cores used @@ -33,18 +35,20 @@ for r in ${RESULTS}; do ${TARGET_CPUS} ${NAME} # Generate details page - mkdir -p ${OUT_DIR}/details - mkdir -p ${DIR}/graphs - cat ${PWD}/html_head.tmpl > ${OUT_DIR}/details/${NAME}.html - python gen-details-page.py ${DIR} ${OUT_DIR}/details ${TARGET_CPUS} ${NAME} - cat ${PWD}/html_foot.tmpl >> ${OUT_DIR}/details/${NAME}.html - - # Move graphs - mkdir -p ${OUT_DIR}/graphs - rm -rf ${OUT_DIR}/graphs/${NAME} - mv ${DIR}/graphs ${OUT_DIR}/graphs/${NAME} - chmod -R g+rx ${OUT_DIR}/graphs/${NAME} - chmod -R o+rx ${OUT_DIR}/graphs/${NAME} + if [[ ! -f ${OUT_DIR}/details/${NAME}.html ]]; then + mkdir -p ${OUT_DIR}/details + mkdir -p ${DIR}/graphs + cat ${PWD}/html_head.tmpl > ${OUT_DIR}/details/${NAME}.html + python gen-details-page.py ${DIR} ${OUT_DIR}/details ${TARGET_CPUS} ${NAME} + cat ${PWD}/html_foot.tmpl >> ${OUT_DIR}/details/${NAME}.html + + # Move graphs + mkdir -p ${OUT_DIR}/graphs + rm -rf ${OUT_DIR}/graphs/${NAME} + mv ${DIR}/graphs ${OUT_DIR}/graphs/${NAME} + chmod -R g+rx ${OUT_DIR}/graphs/${NAME} + chmod -R o+rx ${OUT_DIR}/graphs/${NAME} + fi done cat ${PWD}/html_results_foot.tmpl >> ${OUT_DIR}/${HTML_OUTFILE}.new cat ${PWD}/html_foot.tmpl >> ${OUT_DIR}/${HTML_OUTFILE}.new diff --git a/web/processing/plot_lat.py b/web/processing/plot_lat.py index 96ea73c..81cf18d 100644 --- a/web/processing/plot_lat.py +++ b/web/processing/plot_lat.py @@ -20,7 +20,8 @@ def get_data(filename): for j in range(0, len(data[i])): x_tmp.append(i) y_tmp.append(j) - v_tmp.append(data[i][j]) + # * 1000000 to convert from seconds into microseconds + v_tmp.append(float(data[i][j]) * 1000000.0) retdata = [x_tmp, y_tmp, v_tmp] print len(retdata) @@ -45,6 +46,8 @@ def get_data(filename): output_dir = sys.argv[3] raw_data = np.loadtxt(input_file) +# convert from seconds to microseconds +raw_data *= 1000000.0 data = get_data(input_file) fig = plt.figure(figsize=(3,2)) @@ -60,8 +63,10 @@ def get_data(filename): #plt.clf() #plt.imshow(heatmap, extent=extent) -if fix_scale != 0: - plt.matshow(raw_data, vmax=0.0001, vmin=0.00001, fignum=0) +test_name = re.search("(.+)\.csv", sys.argv[2]) +if fix_scale != 0 or test_name.group(1) == 'mempipe_lat': + # 10 to 100 us + plt.matshow(raw_data, vmax=10, vmin=0, fignum=0) else: plt.matshow(raw_data, fignum=0) @@ -70,10 +75,9 @@ def get_data(filename): plt.ylim(-0.5, int(sys.argv[4])-0.5) plt.xlabel('Core ID') plt.xlim(-0.5, int(sys.argv[4])-0.5) -test_name = re.search("(.+)\.csv", sys.argv[2]) plt.title(test_name.group(1)) -cb = plt.colorbar(shrink=1.0, format='%.3e') +cb = plt.colorbar(shrink=1.0, format='%.2f') cb.set_label('Latency in microseconds') #plt.savefig("lat_" + sys.argv[1] + ".pdf", format="pdf", bbox_inches='tight')