-
Notifications
You must be signed in to change notification settings - Fork 3
/
microbench.yml
100 lines (89 loc) · 3.14 KB
/
microbench.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
---
# this playbook supports the following two tags:
# --tags "start" -> only starts the microbenchmark but does not try to fetch the results
# --tags "result" -> does not start the microbenchmark but instead waits for a time until the service is finished and fetches all result files
# TODO [hidde] could also switch to run id based approach for microbenchmark
# TODO [hidde] need to decide how we want to handle configs (do we use the experiment-state also for microbenchmarks?)
- name: Run Microbenchmark
hosts: localhost
tasks:
- name: Setup AWS including VPC and the required EC2 instances
include_role:
name: aws-all-setup
vars:
# start one server and one client instance
server_ec2_instances_num: 1
server_ec2_instances_max_num: 1
client_ec2_instances_num: 1
client_ec2_instances_max_num: 1
e2e_client: "{{ micro_client }}"
e2e_server: "{{ micro_server }}"
tags: start
# TODO[nicolas] Can we simplify the below two tasks, by including the avx_target_cpu in the host-specific variables somehow?
#- name: Setup client machines with common packages
# hosts: "{{ hostvars['localhost'].micro_client.host_group }}"
# tasks:
# - name:
# include_role:
# name: e2e-common
# vars:
# avx_target_cpu: "{{ hostvars['localhost'].micro_client.avx_target_cpu }}"
# fp_bits: "{{ fp | default('16') }}"
# fp_frac: "{{ frac | default('7') }}"
# tags: start
- name: Setup server machines with common packages
hosts: "{{ hostvars['localhost'].micro_server.host_group }}"
tasks:
- name:
include_role:
name: e2e-common
vars:
avx_target_cpu: "{{ hostvars['localhost'].micro_server.avx_target_cpu }}"
fp_bits: "{{ fp | default('16') }}"
fp_frac: "{{ frac | default('7') }}"
tags: start
- name: Start the Microbenchmark on the Client
hosts: "{{ hostvars['localhost'].micro_client.host_group }}"
tasks:
- name:
include_role:
name: microbench-start
vars:
benchmarks:
- create_randproof_bench
- create_rangeproof_bench
- create_squarerandproof_bench
- create_compressedrandproof_bench
- create_squareproof_bench
- l2rangeproof_bench
avx_target_cpu: "{{ hostvars['localhost'].micro_client.avx_target_cpu }}"
tags: start
- name: Start the Microbenchmark on the Server
hosts: "{{ hostvars['localhost'].micro_server.host_group }}"
tasks:
- name:
include_role:
name: microbench-start
vars:
benchmarks:
- addelgamal_bench
- dlog_bench
- randproof_bench
- rangeproof_bench
- squarerandproof_bench
- l2rangeproof_bench
- squareproof_bench
- compressedrandproof_bench
- rangeproof_part36_bench
avx_target_cpu: "{{ hostvars['localhost'].micro_server.avx_target_cpu }}"
tags: start
- name: Fetch Microbenchmark Results
hosts: "{{ hostvars['localhost'].micro_client.host_group }}:{{ hostvars['localhost'].micro_server.host_group }}"
# hosts: "{{ hostvars['localhost'].micro_client.host_group }}"
# hosts: "{{ hostvars['localhost'].micro_server.host_group }}"
gather_facts: True
tasks:
- name:
include_role:
name: microbench-results
tags: result