浏览代码

README touchups

Ian Goldberg 2 月之前
父节点
当前提交
5cdd6a0e4b
共有 2 个文件被更改,包括 52 次插入7 次删除
  1. 7 1
      README.md
  2. 45 6
      docker/README.md

+ 7 - 1
README.md

@@ -1,6 +1,12 @@
 -----
 -----
 
 
-This is a dockerization of the [ucsc-anonymity/sparta-experiments](https://github.com/ucsc-anonymity/sparta-experiments) repository.  This dockerization can be used to reproduce the Sparta-SB datapoints in Figures 7 and 8 of the TEEMS paper.
+This is a dockerization of the [ucsc-anonymity/sparta-experiments](https://github.com/ucsc-anonymity/sparta-experiments) repository.  This dockerization can be used to reproduce the Sparta-SB datapoints in Figures 7 and 8 of the TEEMS paper:
+
+Sajin Sasy, Aaron Johnson, and Ian Goldberg.  [TEEMS: A Trusted Execution
+Environment based Metadata-protected Messaging
+System](https://cs.uwaterloo.ca/~iang/pubs/teems-popets25.pdf).
+Proceedings on Privacy Enhancing Technologies, Vol. 2025, No. 4, July
+2025.
 
 
 See the [docker/README.md](docker/README.md) file for details.
 See the [docker/README.md](docker/README.md) file for details.
 
 

+ 45 - 6
docker/README.md

@@ -1,6 +1,12 @@
 # sparta-experiments dockerization
 # sparta-experiments dockerization
 
 
-This repository is a dockerization of the [ucsc-anonymity/sparta-experiments](https://github.com/ucsc-anonymity/sparta-experiments) repository.  This dockerization can be used to reproduce the Sparta-SB datapoints in Figures 7 and 8 of the TEEMS paper.
+This repository is a dockerization of the [ucsc-anonymity/sparta-experiments](https://github.com/ucsc-anonymity/sparta-experiments) repository.  This dockerization can be used to reproduce the Sparta-SB datapoints in Figures 7 and 8 of the TEEMS paper:
+
+Sajin Sasy, Aaron Johnson, and Ian Goldberg.  [TEEMS: A Trusted Execution
+Environment based Metadata-protected Messaging
+System](https://cs.uwaterloo.ca/~iang/pubs/teems-popets25.pdf).
+Proceedings on Privacy Enhancing Technologies, Vol. 2025, No. 4, July
+2025.
 
 
 This dockerization by Ian Goldberg, iang@uwaterloo.ca.
 This dockerization by Ian Goldberg, iang@uwaterloo.ca.
 
 
@@ -10,17 +16,19 @@ You will need a server with an Intel Xeon CPU that supports SGX2, and
 SGX2 must be enabled in the BIOS.  To fully reproduce the graphs in the
 SGX2 must be enabled in the BIOS.  To fully reproduce the graphs in the
 paper, you will need 72 CPU cores (not hyperthreads), but if you have
 paper, you will need 72 CPU cores (not hyperthreads), but if you have
 fewer, your experiments will just run more slowly (Figure 7) or only
 fewer, your experiments will just run more slowly (Figure 7) or only
-partially (Figure 8).
+partially (Figure 8).  We used a machine with two 40-core Intel Xeon 8380
+CPUs running at 2.3 GHz to generate the figures, if you aim to compare
+your results to ours.
 
 
 ## Software requirements
 ## Software requirements
 
 
 The server should run Linux with kernel at least 5.11.  We used Ubuntu
 The server should run Linux with kernel at least 5.11.  We used Ubuntu
 22.04.
 22.04.
 
 
-If SGX2 is enabled on your machine, you should see device files
+SGX2 must be enabled on your machine, and so you should see device files
 `/dev/sgx/enclave` and `/dev/sgx/provision`.
 `/dev/sgx/enclave` and `/dev/sgx/provision`.
 
 
-You will need docker.  On Ubuntu, for example: `apt install docker.io`
+You will need `docker`.  On Ubuntu, for example: `apt install docker.io`
 and be sure to run all the experiments as a user with docker permissions
 and be sure to run all the experiments as a user with docker permissions
 (in the `docker` group).
 (in the `docker` group).
 
 
@@ -46,6 +54,9 @@ with the experiments:
 docker stop aesmd
 docker stop aesmd
 ```
 ```
 
 
+You will need `python3` with `numpy` (on the _host_ machine) to run the
+log parser scripts.
+
 ## Quickstart
 ## Quickstart
 
 
 Once you have SGX2 and `aesmd` set up, the following will build sparta
 Once you have SGX2 and `aesmd` set up, the following will build sparta
@@ -143,7 +154,18 @@ columns:
   - Total time to send and fetch that batch (mean and stddev over the `niters` experiment runs)
   - Total time to send and fetch that batch (mean and stddev over the `niters` experiment runs)
 
 
 These are the values (with sending round equal to 1) plotted in Figure 7
 These are the values (with sending round equal to 1) plotted in Figure 7
-in the TEEMS paper.
+in the TEEMS paper.  Our exact results (and what is plotted in the
+figure) were:
+
+```
+users,batches,send_mean,send_stddev,fetch_mean,fetch_stddev,tot_mean,tot_stddev
+32768,1,0.676,0.020,1.182,0.016,1.858,0.028
+65536,1,1.301,0.014,2.190,0.013,3.491,0.017
+131072,1,2.488,0.033,4.049,0.052,6.537,0.055
+262144,1,4.959,0.042,7.856,0.071,12.816,0.085
+524288,1,9.742,0.102,15.284,0.144,25.027,0.167
+1048576,1,18.448,0.340,29.074,0.367,47.522,0.595
+```
 
 
 ### The corescale experiments
 ### The corescale experiments
 
 
@@ -170,4 +192,21 @@ additional column just before the timings:
 
 
   - The number of cores
   - The number of cores
 
 
-These are the values plotted in Figure 8 in the TEEMS paper.
+These are the values plotted in Figure 8 in the TEEMS paper.  Our exact
+results (and what is plotted in the figure) were:
+
+```
+users,batches,ncores,send_mean,send_stddev,fetch_mean,fetch_stddev,tot_mean,tot_stddev
+1048576,1,4,25.666,0.367,51.238,0.808,76.904,0.772
+1048576,1,6,25.803,0.396,51.315,0.767,77.117,0.927
+1048576,1,8,26.084,0.383,52.118,0.415,78.202,0.364
+1048576,1,16,18.273,0.190,28.953,0.219,47.226,0.235
+1048576,1,24,13.194,0.221,18.997,0.377,32.191,0.384
+1048576,1,32,13.434,0.404,18.312,0.189,31.747,0.518
+1048576,1,36,13.375,0.259,18.619,0.410,31.995,0.473
+1048576,1,40,13.435,0.275,18.482,0.414,31.917,0.540
+1048576,1,44,12.984,0.290,18.399,0.374,31.383,0.569
+1048576,1,48,10.382,0.401,14.264,0.322,24.646,0.471
+1048576,1,64,10.432,0.382,14.579,0.263,25.011,0.590
+1048576,1,72,10.820,0.286,15.066,0.296,25.886,0.466
+```