-
Notifications
You must be signed in to change notification settings - Fork 0
/
elpida-query.schema.yaml
136 lines (119 loc) · 4.22 KB
/
elpida-query.schema.yaml
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
$schema: "http://json-schema.org/draft-07/schema#"
id: "#IOHquery"
type: object # Query sent by the (solver) client to the (IOH) server.
properties:
query_type: # Type of the query.
type: string
enum:
- call # Call to the objective function.
- new_run # Reset the server's logger state and start to log a new run.
- stop # Stop the server.
#####################################
# Properties for all type of queries:
#####################################
id: # A unique identifier of the query (will be sent back by the server within the reply, useful for debugging).
type: integer
timestamp: # Date and time of the query (useful for debugging).
type: string
format: date-time
remarks: # Generic comment (e.g. client's version).
type: string
##########################
# Properties for new runs:
##########################
# Example of minimal `new_run` query:
# {
# "query_type": "new_run",
# "algorithm": "MyCMA",
# "version": "3.1.4"
# }
# Example of a complete `new_run` query:
# {
# "query_type": "new_run",
# "algorithm": "CMA-ES",
# "implementation": "Paradiseo-EDO",
# "version": "104d5dc71",
# "parameters": [
# {"name": "inertia", "value": 1.2},
# {"name": "covar_init", "value": [1,2,3,4]},
# {"name": "covar_dim", "value": 2}
# ],
# "id": 1,
# "timestamp": "2022-06-02T11:41:01+02:00Z",
# "remarks": "preliminary test",
# }
if: # If query_type == "new_run"
properties:
query_type:
const: new_run
then:
properties:
# About the algorithm that will make the calls:
algorithm: # Name or identifier of the "algorithm" that runs.
type: string
implementation: # The same algorithm may exists, e.g. in a different language.
type: string
version: # Semantic version, commit id (e.g. Git commit hash).
type: string
# About its fixed, user-set parameters:
parameters:
type: array
items:
type: object
properties:
name: # name of the parameter.
type: string
value:
type: {} # Whatever.
required:
- algorithm
- version
# TODO
# - current experiment identification
# - user/orcid
# - manager (manual, hyper-parameter solver, etc.)
#######################
# Properties for calls:
#######################
# Example of minimal `call` query:
# {
# "query_type":"call",
# "solution": [10,10]
# }
# Example of a complete `call` query:
# {
# "query_type": "call",
# "solution": [10,10],
# "state": [
# {"name": "step_size", "value": 1.2},
# {"name": "covariance_matrix", "value": [1,2,3,4]},
# {"name": "covar_dim", "value": 2}
# ],
# "id": 1,
# "timestamp": "2021-12-21T13:40:31-01:00Z",
# "remarks": "Ran on node #05 of the cluster"
# }
if: # If query_type == "call".
properties:
query_type:
const: call
then: # Require the "solution" property.
properties:
solution: # The solution for which the objective function value has to be computed.
type: array
items: # No type restriction.
minItems: 1 # Dimension should be > 0.
state: # List of variables that represents the algorithm's internal state.
type: array
items:
type: object
properties:
name: # Name of the state variable.
type: string
value:
type: {} # Whatever.
required:
- solution
required:
- query_type
# id, timestamp and remarks are optionals.