Skip to content

Commit d9fce4e

Browse files
committed
More progress
1 parent b0a6ce4 commit d9fce4e

33 files changed

+269290
-169
lines changed

benchmarks/.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
*/data/**
2-
*/results/*
1+
results/**
2+
src/*/data/**

benchmarks/Manifest.toml

Lines changed: 355 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,355 @@
1+
# This file is machine-generated - editing it directly is not advised
2+
3+
julia_version = "1.11.6"
4+
manifest_format = "2.0"
5+
project_hash = "1c13fdca889dbe49849a73d6ea48c203b19ef4dd"
6+
7+
[[deps.Artifacts]]
8+
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
9+
version = "1.11.0"
10+
11+
[[deps.Base64]]
12+
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
13+
version = "1.11.0"
14+
15+
[[deps.BenchmarkTools]]
16+
deps = ["Compat", "JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"]
17+
git-tree-sha1 = "e38fbc49a620f5d0b660d7f543db1009fe0f8336"
18+
uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf"
19+
version = "1.6.0"
20+
21+
[[deps.Bzip2_jll]]
22+
deps = ["Artifacts", "JLLWrappers", "Libdl"]
23+
git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e"
24+
uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0"
25+
version = "1.0.9+0"
26+
27+
[[deps.CodecBzip2]]
28+
deps = ["Bzip2_jll", "TranscodingStreams"]
29+
git-tree-sha1 = "84990fa864b7f2b4901901ca12736e45ee79068c"
30+
uuid = "523fee87-0ab8-5b00-afb7-3ecf72e48cfd"
31+
version = "0.8.5"
32+
33+
[[deps.CodecZlib]]
34+
deps = ["TranscodingStreams", "Zlib_jll"]
35+
git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9"
36+
uuid = "944b1d66-785c-5afd-91f1-9de20f533193"
37+
version = "0.7.8"
38+
39+
[[deps.CommonSubexpressions]]
40+
deps = ["MacroTools"]
41+
git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5"
42+
uuid = "bbf7d656-a473-5ed7-a52c-81e309532950"
43+
version = "0.3.1"
44+
45+
[[deps.Compat]]
46+
deps = ["TOML", "UUIDs"]
47+
git-tree-sha1 = "3a3dfb30697e96a440e4149c8c51bf32f818c0f3"
48+
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
49+
version = "4.17.0"
50+
weakdeps = ["Dates", "LinearAlgebra"]
51+
52+
[deps.Compat.extensions]
53+
CompatLinearAlgebraExt = "LinearAlgebra"
54+
55+
[[deps.CompilerSupportLibraries_jll]]
56+
deps = ["Artifacts", "Libdl"]
57+
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
58+
version = "1.1.1+0"
59+
60+
[[deps.DataStructures]]
61+
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
62+
git-tree-sha1 = "4e1fe97fdaed23e9dc21d4d664bea76b65fc50a0"
63+
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
64+
version = "0.18.22"
65+
66+
[[deps.Dates]]
67+
deps = ["Printf"]
68+
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
69+
version = "1.11.0"
70+
71+
[[deps.DiffResults]]
72+
deps = ["StaticArraysCore"]
73+
git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621"
74+
uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5"
75+
version = "1.1.0"
76+
77+
[[deps.DiffRules]]
78+
deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"]
79+
git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272"
80+
uuid = "b552c78f-8df3-52c6-915a-8e097449b14b"
81+
version = "1.15.1"
82+
83+
[[deps.DocStringExtensions]]
84+
git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c"
85+
uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
86+
version = "0.9.5"
87+
88+
[[deps.ForwardDiff]]
89+
deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"]
90+
git-tree-sha1 = "910febccb28d493032495b7009dce7d7f7aee554"
91+
uuid = "f6369f11-7733-5829-9624-2563aa707210"
92+
version = "1.0.1"
93+
94+
[deps.ForwardDiff.extensions]
95+
ForwardDiffStaticArraysExt = "StaticArrays"
96+
97+
[deps.ForwardDiff.weakdeps]
98+
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"
99+
100+
[[deps.Gurobi]]
101+
deps = ["Gurobi_jll", "Libdl", "MathOptInterface", "PrecompileTools"]
102+
git-tree-sha1 = "a39349533a3fe9f60cf05e1a56644f804473c46a"
103+
uuid = "2e9cd046-0924-5485-92f1-d5272153d98b"
104+
version = "1.7.5"
105+
106+
[[deps.Gurobi_jll]]
107+
deps = ["Artifacts", "JLLWrappers", "Libdl"]
108+
git-tree-sha1 = "0306382a5f266e08e48ccfd4ea2e05d61155a055"
109+
uuid = "c018c7e6-a5b0-4aea-8f80-9c1ef9991411"
110+
version = "12.0.2"
111+
112+
[[deps.InteractiveUtils]]
113+
deps = ["Markdown"]
114+
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
115+
version = "1.11.0"
116+
117+
[[deps.IrrationalConstants]]
118+
git-tree-sha1 = "e2222959fbc6c19554dc15174c81bf7bf3aa691c"
119+
uuid = "92d709cd-6900-40b7-9082-c6be49f344b6"
120+
version = "0.2.4"
121+
122+
[[deps.JLLWrappers]]
123+
deps = ["Artifacts", "Preferences"]
124+
git-tree-sha1 = "a007feb38b422fbdab534406aeca1b86823cb4d6"
125+
uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210"
126+
version = "1.7.0"
127+
128+
[[deps.JSON]]
129+
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
130+
git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a"
131+
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
132+
version = "0.21.4"
133+
134+
[[deps.JSON3]]
135+
deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"]
136+
git-tree-sha1 = "411eccfe8aba0814ffa0fdf4860913ed09c34975"
137+
uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
138+
version = "1.14.3"
139+
140+
[deps.JSON3.extensions]
141+
JSON3ArrowExt = ["ArrowTypes"]
142+
143+
[deps.JSON3.weakdeps]
144+
ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd"
145+
146+
[[deps.JuMP]]
147+
deps = ["LinearAlgebra", "MacroTools", "MathOptInterface", "MutableArithmetics", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays"]
148+
git-tree-sha1 = "90002c976264d2f571c98cd1d12851f4cba403df"
149+
uuid = "4076af6c-e467-56ae-b986-b466b2749572"
150+
version = "1.26.0"
151+
152+
[deps.JuMP.extensions]
153+
JuMPDimensionalDataExt = "DimensionalData"
154+
155+
[deps.JuMP.weakdeps]
156+
DimensionalData = "0703355e-b756-11e9-17c0-8b28908087d0"
157+
158+
[[deps.Libdl]]
159+
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
160+
version = "1.11.0"
161+
162+
[[deps.LinearAlgebra]]
163+
deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"]
164+
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
165+
version = "1.11.0"
166+
167+
[[deps.LogExpFunctions]]
168+
deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"]
169+
git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f"
170+
uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688"
171+
version = "0.3.29"
172+
173+
[deps.LogExpFunctions.extensions]
174+
LogExpFunctionsChainRulesCoreExt = "ChainRulesCore"
175+
LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables"
176+
LogExpFunctionsInverseFunctionsExt = "InverseFunctions"
177+
178+
[deps.LogExpFunctions.weakdeps]
179+
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
180+
ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0"
181+
InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112"
182+
183+
[[deps.Logging]]
184+
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
185+
version = "1.11.0"
186+
187+
[[deps.MacroTools]]
188+
git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522"
189+
uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
190+
version = "0.5.16"
191+
192+
[[deps.Markdown]]
193+
deps = ["Base64"]
194+
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
195+
version = "1.11.0"
196+
197+
[[deps.MathOptInterface]]
198+
deps = ["BenchmarkTools", "CodecBzip2", "CodecZlib", "DataStructures", "ForwardDiff", "JSON3", "LinearAlgebra", "MutableArithmetics", "NaNMath", "OrderedCollections", "PrecompileTools", "Printf", "SparseArrays", "SpecialFunctions", "Test"]
199+
git-tree-sha1 = "1251fce78b907fe415a2f680291b67cf51360d2a"
200+
uuid = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
201+
version = "1.42.0"
202+
203+
[[deps.Mmap]]
204+
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
205+
version = "1.11.0"
206+
207+
[[deps.MutableArithmetics]]
208+
deps = ["LinearAlgebra", "SparseArrays", "Test"]
209+
git-tree-sha1 = "491bdcdc943fcbc4c005900d7463c9f216aabf4c"
210+
uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0"
211+
version = "1.6.4"
212+
213+
[[deps.NaNMath]]
214+
deps = ["OpenLibm_jll"]
215+
git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae"
216+
uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3"
217+
version = "1.1.3"
218+
219+
[[deps.OpenBLAS_jll]]
220+
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"]
221+
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363"
222+
version = "0.3.27+1"
223+
224+
[[deps.OpenLibm_jll]]
225+
deps = ["Artifacts", "Libdl"]
226+
uuid = "05823500-19ac-5b8b-9628-191a04bc5112"
227+
version = "0.8.5+0"
228+
229+
[[deps.OpenSpecFun_jll]]
230+
deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"]
231+
git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335"
232+
uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e"
233+
version = "0.5.6+0"
234+
235+
[[deps.OrderedCollections]]
236+
git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee"
237+
uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d"
238+
version = "1.8.1"
239+
240+
[[deps.Parsers]]
241+
deps = ["Dates", "PrecompileTools", "UUIDs"]
242+
git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810"
243+
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
244+
version = "2.8.3"
245+
246+
[[deps.PrecompileTools]]
247+
deps = ["Preferences"]
248+
git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f"
249+
uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a"
250+
version = "1.2.1"
251+
252+
[[deps.Preferences]]
253+
deps = ["TOML"]
254+
git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6"
255+
uuid = "21216c6a-2e73-6563-6e65-726566657250"
256+
version = "1.4.3"
257+
258+
[[deps.Printf]]
259+
deps = ["Unicode"]
260+
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
261+
version = "1.11.0"
262+
263+
[[deps.Profile]]
264+
uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79"
265+
version = "1.11.0"
266+
267+
[[deps.Random]]
268+
deps = ["SHA"]
269+
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
270+
version = "1.11.0"
271+
272+
[[deps.SHA]]
273+
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
274+
version = "0.7.0"
275+
276+
[[deps.Serialization]]
277+
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
278+
version = "1.11.0"
279+
280+
[[deps.SparseArrays]]
281+
deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"]
282+
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
283+
version = "1.11.0"
284+
285+
[[deps.SpecialFunctions]]
286+
deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"]
287+
git-tree-sha1 = "41852b8679f78c8d8961eeadc8f62cef861a52e3"
288+
uuid = "276daf66-3868-5448-9aa4-cd146d93841b"
289+
version = "2.5.1"
290+
291+
[deps.SpecialFunctions.extensions]
292+
SpecialFunctionsChainRulesCoreExt = "ChainRulesCore"
293+
294+
[deps.SpecialFunctions.weakdeps]
295+
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
296+
297+
[[deps.StaticArraysCore]]
298+
git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682"
299+
uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c"
300+
version = "1.4.3"
301+
302+
[[deps.Statistics]]
303+
deps = ["LinearAlgebra"]
304+
git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0"
305+
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
306+
version = "1.11.1"
307+
weakdeps = ["SparseArrays"]
308+
309+
[deps.Statistics.extensions]
310+
SparseArraysExt = ["SparseArrays"]
311+
312+
[[deps.StructTypes]]
313+
deps = ["Dates", "UUIDs"]
314+
git-tree-sha1 = "159331b30e94d7b11379037feeb9b690950cace8"
315+
uuid = "856f2bd8-1eba-4b0a-8007-ebc267875bd4"
316+
version = "1.11.0"
317+
318+
[[deps.SuiteSparse_jll]]
319+
deps = ["Artifacts", "Libdl", "libblastrampoline_jll"]
320+
uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c"
321+
version = "7.7.0+0"
322+
323+
[[deps.TOML]]
324+
deps = ["Dates"]
325+
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
326+
version = "1.0.3"
327+
328+
[[deps.Test]]
329+
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
330+
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
331+
version = "1.11.0"
332+
333+
[[deps.TranscodingStreams]]
334+
git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742"
335+
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
336+
version = "0.11.3"
337+
338+
[[deps.UUIDs]]
339+
deps = ["Random", "SHA"]
340+
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
341+
version = "1.11.0"
342+
343+
[[deps.Unicode]]
344+
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
345+
version = "1.11.0"
346+
347+
[[deps.Zlib_jll]]
348+
deps = ["Libdl"]
349+
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
350+
version = "1.2.13+1"
351+
352+
[[deps.libblastrampoline_jll]]
353+
deps = ["Artifacts", "Libdl"]
354+
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93"
355+
version = "5.11.0+0"

benchmarks/Project.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[deps]
2+
Gurobi = "2e9cd046-0924-5485-92f1-d5272153d98b"
3+
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"

benchmarks/README.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
This folder contains the code and instructions needed to compare Pyoframe's performance to other libraries.
44

5+
## How to run the benchmarks
6+
7+
1. First install pyoframe: `pip install --editable .`
8+
1. `cd benchmarks`
9+
2. `pip install --editable .`
10+
3. If running the JuMP benchmark:
11+
a. Install Julia: `curl -fsSL https://install.julialang.org | sh`
12+
b. Install the Julia dependencies: `julia --project=. -e 'using Pkg; Pkg.instantiate()'`
13+
4. Edit `config.yaml` to your liking (e.g. specify the problems and libraries to benchmark).
14+
5. Run `snakemake --cores 'all'`. This will run all the benchmarks and take a while.
15+
6. View the plotted results in, for example, `facility_problem/results/benchmark_results.png`
16+
17+
518
## Running energy model benchmark locally
619

720
1. Download the California Test System data. Specifically, place the [load data](https://drive.google.com/file/d/1Sz8st7g4Us6oijy1UYMPUvkA1XeZlIr8/view?usp=drive_link), [generation data](https://drive.google.com/file/d/1CxLlcwAEUy-JvJQdAfVydJ1p9Ecot-4d/view?usp=drive_link), and [line data](https://github.com/staadecker/CATS-CaliforniaTestSystem/blob/master/GIS/CATS_lines.json) in the `/benchmarks/energy_planning/data`.

0 commit comments

Comments
 (0)