cmake . -B build
cd build
make -j
- Start publisher.
- Run
./publisher-interactive -a AD_NUM -r ROUND
- Run
- Start bidders.
- On each machine of the bidders, run
bash simulate-advs-interactive.sh BIDDER_NUM STARTING_PORT BUCKET_NUM PUBLISHER_IP:6668 IDX-OF-STARTING-ADVERTISER ROUND
.- The script will launch
BIDDER_NUM
bidders on that machine. These bidders' ports start fromSTARTING_PORT
toSTARTING_PORT+BIDDER_NUM-1
, each bidder instance listens on one port.
- The script will launch
- If you want to run the bidder programs on different machines, then you
can run the script on each machine individually.
IDX-OF-STARTING-ADVERTISER
is set to0
when you run the script on the first machine (or if you are only using a single machine). After running the script on the first machine,IDX-OF-STARTING-ADVERTISER
should be set to thetotal number of bidders
you have launched.- For exmaple, if you have started 48 bidders on the first machine,
when you launch another 48 bidders on the second machine,
IDX-OF-STARTING-ADVERTISER
should be set to48
. And when you launch another 48 bidders on the third machie,IDX-OF-STARTING-ADVERTISER
should be set to96
(48 on the first machine and 48 on the second machine).
- For exmaple, if you have started 48 bidders on the first machine,
when you launch another 48 bidders on the second machine,
- On each machine of the bidders, run
- Start another auction server.
- Create a file (
FILENAME-OF-ADVS-IP
in the parameter when runningserver-interactive
) where each row consists of one bidder's ip address in the format ofIP:PORT
.- An example file is example-ips.txt.
- Run
./server-interactive -a AD_NUM -p PUBLISHER-IP -r ROUND -f FILENAME-OF-ADVS-IP
. - The last output of
server-interactive
is the total end-to-end latency.
- Create a file (
- After each run, you need to manually kill all advertiser progesses, by
running
pkill -f -9 advertiser-interactive
.
- If not specified, the unit of outputs related to
time
issecond
and the unit for size of materials isbyte
. - By default the program is running second-price auction. If you want to test
the end-to-end latency of first-price auction, add
-q
to when runningpublisher-interactive
andserver-interactive
.