Skip to content

Commit 155d395

Browse files
Add CBC solver; update linopy version (#97)
Adds CBC solver as per #88 Uses the new version of linopy that has PyPSA/linopy#410 so this closes #68
1 parent fb92f65 commit 155d395

14 files changed

+411
-391
lines changed

runner/envs/benchmark-2020-fixed.yaml

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -2,83 +2,83 @@ name: benchmark-2020
22
channels:
33
- conda-forge
44
- https://conda.anaconda.org/gurobi
5-
- defaults
5+
- nodefaults
66
dependencies:
77
- _libgcc_mutex=0.1=conda_forge
88
- _openmp_mutex=4.5=2_gnu
9-
- bottleneck=1.4.2=py312hc0a28a1_0
10-
- brotli-python=1.1.0=py312h2ec8cdc_2
9+
- brotli-python=1.1.0=py313h46c70d0_2
1110
- bzip2=1.0.8=h4bc722e_7
12-
- ca-certificates=2024.8.30=hbcca054_0
13-
- certifi=2024.8.30=pyhd8ed1ab_0
14-
- cffi=1.17.1=py312h06ac9bb_0
15-
- charset-normalizer=3.4.0=pyhd8ed1ab_0
16-
- click=8.1.7=unix_pyh707e725_0
17-
- cloudpickle=3.1.0=pyhd8ed1ab_1
18-
- colorama=0.4.6=pyhd8ed1ab_0
19-
- dask-core=2024.11.2=pyhff2d567_1
20-
- deprecation=2.1.0=pyh9f0ad1d_0
21-
- fsspec=2024.10.0=pyhff2d567_0
11+
- ca-certificates=2025.1.31=hbcca054_0
12+
- certifi=2025.1.31=pyhd8ed1ab_0
13+
- cffi=1.17.1=py313hfab6e84_0
14+
- charset-normalizer=3.4.1=pyhd8ed1ab_0
15+
- coin-or-cbc=2.10.5=h9c3ff4c_6
16+
- coin-or-cgl=0.60.9=h1d3f3f2_0
17+
- coin-or-clp=1.17.10=h07f2a63_0
18+
- coin-or-osi=0.108.11=h6514dde_1
19+
- coin-or-utils=2.11.12=h99da652_1
2220
- glpk=5.0=h445213a_0
2321
- gmp=6.3.0=hac33072_2
24-
- h2=4.1.0=pyhd8ed1ab_0
25-
- hpack=4.0.0=pyh9f0ad1d_0
26-
- hyperframe=6.0.1=pyhd8ed1ab_0
27-
- idna=3.10=pyhd8ed1ab_0
28-
- importlib-metadata=8.5.0=pyha770c72_0
22+
- h2=4.2.0=pyhd8ed1ab_0
23+
- hpack=4.1.0=pyhd8ed1ab_0
24+
- hyperframe=6.1.0=pyhd8ed1ab_0
25+
- idna=3.10=pyhd8ed1ab_1
2926
- ld_impl_linux-64=2.43=h712a8e2_2
30-
- libblas=3.9.0=25_linux64_openblas
31-
- libcblas=3.9.0=25_linux64_openblas
27+
- libblas=3.9.0=28_h59b9bed_openblas
28+
- libcblas=3.9.0=28_he106b2a_openblas
3229
- libexpat=2.6.4=h5888daf_0
33-
- libffi=3.4.2=h7f98852_5
30+
- libffi=3.4.6=h2dba641_0
3431
- libgcc=14.2.0=h77fa898_1
3532
- libgcc-ng=14.2.0=h69a702a_1
3633
- libgfortran=14.2.0=h69a702a_1
34+
- libgfortran-ng=14.2.0=h69a702a_1
3735
- libgfortran5=14.2.0=hd5240d6_1
3836
- libgomp=14.2.0=h77fa898_1
39-
- liblapack=3.9.0=25_linux64_openblas
40-
- libnsl=2.0.1=hd590300_0
37+
- liblapack=3.9.0=28_h7ac8fdf_openblas
38+
- liblapacke=3.9.0=28_he2f377e_openblas
39+
- liblzma=5.6.4=hb9d3cd8_0
40+
- libmpdec=4.0.0=h4bc722e_0
4141
- libopenblas=0.3.28=pthreads_h94d23a6_1
42-
- libsqlite=3.47.0=hadc24fc_1
42+
- libsqlite=3.48.0=hee588c1_1
4343
- libstdcxx=14.2.0=hc0a3c3a_1
4444
- libstdcxx-ng=14.2.0=h4852527_1
4545
- libuuid=2.38.1=h0b41bf4_0
46-
- libxcrypt=4.4.36=hd590300_1
4746
- libzlib=1.3.1=hb9d3cd8_2
48-
- linopy=0.4.2=pyhff2d567_0
49-
- locket=1.0.0=pyhd8ed1ab_0
50-
- ncurses=6.5=he02047a_1
51-
- nomkl=1.0=h5ca1d4c_0
52-
- numexpr=2.10.1=py312h6a710ac_103
53-
- numpy=1.26.4=py312heda63a1_0
54-
- openssl=3.4.0=hb9d3cd8_0
55-
- packaging=24.2=pyhff2d567_1
56-
- pandas=2.2.3=py312hf9745cd_1
57-
- partd=1.4.2=pyhd8ed1ab_0
58-
- pip=24.3.1=pyh8b19718_0
59-
- polars=1.12.0=py312hfe7c9be_1
60-
- pycparser=2.22=pyhd8ed1ab_0
61-
- pysocks=1.7.1=pyha2e5f31_6
62-
- python=3.12.7=hc5c86c4_0_cpython
63-
- python-dateutil=2.9.0.post0=pyhff2d567_0
64-
- python-tzdata=2024.2=pyhd8ed1ab_0
65-
- python_abi=3.12=5_cp312
66-
- pytz=2024.1=pyhd8ed1ab_0
67-
- pyyaml=6.0.2=py312h66e93f0_1
47+
- ncurses=6.5=h2d0b736_3
48+
- openssl=3.4.1=h7b32b05_0
49+
- pip=25.0.1=pyh145f28c_0
50+
- pycparser=2.22=pyh29332c3_1
51+
- pysocks=1.7.1=pyha55dd90_7
52+
- python=3.13.2=hf636f53_100_cp313
53+
- python_abi=3.13=5_cp313
6854
- readline=8.2=h8228510_1
69-
- requests=2.32.3=pyhd8ed1ab_0
70-
- scipy=1.14.1=py312h62794b6_1
71-
- setuptools=75.6.0=pyhff2d567_0
72-
- six=1.16.0=pyh6c4a22f_0
55+
- requests=2.32.3=pyhd8ed1ab_1
7356
- tk=8.6.13=noxft_h4845f30_101
74-
- toolz=1.0.0=pyhd8ed1ab_0
75-
- tqdm=4.67.0=pyhd8ed1ab_0
76-
- tzdata=2024b=hc8b5060_0
77-
- urllib3=2.2.3=pyhd8ed1ab_0
78-
- wheel=0.45.0=pyhd8ed1ab_0
79-
- xarray=2024.10.0=pyhd8ed1ab_0
80-
- xz=5.2.6=h166bdaf_0
81-
- yaml=0.2.5=h7f98852_2
82-
- zipp=3.21.0=pyhd8ed1ab_0
83-
- zstandard=0.23.0=py312hef9b889_1
57+
- urllib3=2.3.0=pyhd8ed1ab_0
58+
- zstandard=0.23.0=py313h80202fe_1
8459
- zstd=1.5.6=ha6fb4c9_0
60+
- pip:
61+
- bottleneck==1.4.2
62+
- click==8.1.8
63+
- cloudpickle==3.1.1
64+
- dask==2025.2.0
65+
- deprecation==2.1.0
66+
- fsspec==2025.2.0
67+
- linopy==0.5.0
68+
- locket==1.0.0
69+
- numexpr==2.10.2
70+
- numpy==1.26.4
71+
- packaging==24.2
72+
- pandas==2.2.3
73+
- partd==1.4.2
74+
- polars==1.22.0
75+
- python-dateutil==2.9.0.post0
76+
- pytz==2025.1
77+
- pyyaml==6.0.2
78+
- scipy==1.15.1
79+
- six==1.17.0
80+
- toolz==1.0.0
81+
- tqdm==4.67.1
82+
- tzdata==2025.1
83+
- xarray==2025.1.2
84+
prefix: /scratch/htc/skrishna/conda/envs/benchmark-2020

runner/envs/benchmark-2020.yaml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@ dependencies:
77
- python>=3.9
88
- pip
99

10-
- linopy>=0.4.1
1110
- requests>=2.32
1211

12+
- coin-or-cbc==2.10.5
1313
# - scip==7.0.2 # TODO errors with AttributeError: 'pyscipopt.scip.Model' object has no attribute 'getDualSolVal'
1414
# - pyscipopt==3.1.0
1515
- glpk==5.0.0
1616
# - gurobi==9.1.1 # TODO needs py<39 but linopy needs py>39
1717

1818
# HiGHS was released first in 2021 so it is omitted here
19+
20+
- pip:
21+
- linopy>=0.5.0

runner/envs/benchmark-2021-fixed.yaml

Lines changed: 49 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -2,81 +2,68 @@ name: benchmark-2021
22
channels:
33
- conda-forge
44
- https://conda.anaconda.org/gurobi
5-
- defaults
5+
- nodefaults
66
dependencies:
77
- _libgcc_mutex=0.1=conda_forge
88
- _openmp_mutex=4.5=2_gnu
9-
- bottleneck=1.4.2=py312hc0a28a1_0
10-
- brotli-python=1.1.0=py312h2ec8cdc_2
9+
- brotli-python=1.1.0=py313h46c70d0_2
1110
- bzip2=1.0.8=h4bc722e_7
12-
- ca-certificates=2024.8.30=hbcca054_0
13-
- certifi=2024.8.30=pyhd8ed1ab_0
14-
- cffi=1.17.1=py312h06ac9bb_0
15-
- charset-normalizer=3.4.0=pyhd8ed1ab_0
16-
- click=8.1.7=unix_pyh707e725_0
17-
- cloudpickle=3.1.0=pyhd8ed1ab_1
18-
- colorama=0.4.6=pyhd8ed1ab_0
19-
- dask-core=2024.11.2=pyhff2d567_1
20-
- deprecation=2.1.0=pyh9f0ad1d_0
21-
- fsspec=2024.10.0=pyhff2d567_0
22-
- h2=4.1.0=pyhd8ed1ab_0
23-
- hpack=4.0.0=pyh9f0ad1d_0
24-
- hyperframe=6.0.1=pyhd8ed1ab_0
25-
- idna=3.10=pyhd8ed1ab_0
26-
- importlib-metadata=8.5.0=pyha770c72_0
11+
- ca-certificates=2025.1.31=hbcca054_0
12+
- certifi=2025.1.31=pyhd8ed1ab_0
13+
- cffi=1.17.1=py313hfab6e84_0
14+
- charset-normalizer=3.4.1=pyhd8ed1ab_0
15+
- h2=4.2.0=pyhd8ed1ab_0
16+
- hpack=4.1.0=pyhd8ed1ab_0
17+
- hyperframe=6.1.0=pyhd8ed1ab_0
18+
- idna=3.10=pyhd8ed1ab_1
2719
- ld_impl_linux-64=2.43=h712a8e2_2
28-
- libblas=3.9.0=25_linux64_openblas
29-
- libcblas=3.9.0=25_linux64_openblas
3020
- libexpat=2.6.4=h5888daf_0
31-
- libffi=3.4.2=h7f98852_5
21+
- libffi=3.4.6=h2dba641_0
3222
- libgcc=14.2.0=h77fa898_1
3323
- libgcc-ng=14.2.0=h69a702a_1
34-
- libgfortran=14.2.0=h69a702a_1
35-
- libgfortran5=14.2.0=hd5240d6_1
3624
- libgomp=14.2.0=h77fa898_1
37-
- liblapack=3.9.0=25_linux64_openblas
38-
- libnsl=2.0.1=hd590300_0
39-
- libopenblas=0.3.28=pthreads_h94d23a6_1
40-
- libsqlite=3.47.0=hadc24fc_1
25+
- liblzma=5.6.4=hb9d3cd8_0
26+
- libmpdec=4.0.0=h4bc722e_0
27+
- libsqlite=3.48.0=hee588c1_1
4128
- libstdcxx=14.2.0=hc0a3c3a_1
4229
- libstdcxx-ng=14.2.0=h4852527_1
4330
- libuuid=2.38.1=h0b41bf4_0
44-
- libxcrypt=4.4.36=hd590300_1
4531
- libzlib=1.3.1=hb9d3cd8_2
46-
- linopy=0.4.2=pyhff2d567_0
47-
- locket=1.0.0=pyhd8ed1ab_0
48-
- ncurses=6.5=he02047a_1
49-
- nomkl=1.0=h5ca1d4c_0
50-
- numexpr=2.10.1=py312h6a710ac_103
51-
- numpy=1.26.4=py312heda63a1_0
52-
- openssl=3.4.0=hb9d3cd8_0
53-
- packaging=24.2=pyhff2d567_1
54-
- pandas=2.2.3=py312hf9745cd_1
55-
- partd=1.4.2=pyhd8ed1ab_0
56-
- pip=24.3.1=pyh8b19718_0
57-
- polars=1.12.0=py312hfe7c9be_1
58-
- pycparser=2.22=pyhd8ed1ab_0
59-
- pysocks=1.7.1=pyha2e5f31_6
60-
- python=3.12.7=hc5c86c4_0_cpython
61-
- python-dateutil=2.9.0.post0=pyhff2d567_0
62-
- python-tzdata=2024.2=pyhd8ed1ab_0
63-
- python_abi=3.12=5_cp312
64-
- pytz=2024.1=pyhd8ed1ab_0
65-
- pyyaml=6.0.2=py312h66e93f0_1
32+
- ncurses=6.5=h2d0b736_3
33+
- openssl=3.4.1=h7b32b05_0
34+
- pip=25.0.1=pyh145f28c_0
35+
- pycparser=2.22=pyh29332c3_1
36+
- pysocks=1.7.1=pyha55dd90_7
37+
- python=3.13.2=hf636f53_100_cp313
38+
- python_abi=3.13=5_cp313
6639
- readline=8.2=h8228510_1
67-
- requests=2.32.3=pyhd8ed1ab_0
68-
- scipy=1.14.1=py312h62794b6_1
69-
- setuptools=75.6.0=pyhff2d567_0
70-
- six=1.16.0=pyh6c4a22f_0
40+
- requests=2.32.3=pyhd8ed1ab_1
7141
- tk=8.6.13=noxft_h4845f30_101
72-
- toolz=1.0.0=pyhd8ed1ab_0
73-
- tqdm=4.67.0=pyhd8ed1ab_0
74-
- tzdata=2024b=hc8b5060_0
75-
- urllib3=2.2.3=pyhd8ed1ab_0
76-
- wheel=0.45.0=pyhd8ed1ab_0
77-
- xarray=2024.10.0=pyhd8ed1ab_0
78-
- xz=5.2.6=h166bdaf_0
79-
- yaml=0.2.5=h7f98852_2
80-
- zipp=3.21.0=pyhd8ed1ab_0
81-
- zstandard=0.23.0=py312hef9b889_1
42+
- urllib3=2.3.0=pyhd8ed1ab_0
43+
- zstandard=0.23.0=py313h80202fe_1
8244
- zstd=1.5.6=ha6fb4c9_0
45+
- pip:
46+
- bottleneck==1.4.2
47+
- click==8.1.8
48+
- cloudpickle==3.1.1
49+
- dask==2025.2.0
50+
- deprecation==2.1.0
51+
- fsspec==2025.2.0
52+
- linopy==0.5.0
53+
- locket==1.0.0
54+
- numexpr==2.10.2
55+
- numpy==1.26.4
56+
- packaging==24.2
57+
- pandas==2.2.3
58+
- partd==1.4.2
59+
- polars==1.22.0
60+
- python-dateutil==2.9.0.post0
61+
- pytz==2025.1
62+
- pyyaml==6.0.2
63+
- scipy==1.15.1
64+
- six==1.17.0
65+
- toolz==1.0.0
66+
- tqdm==4.67.1
67+
- tzdata==2025.1
68+
- xarray==2025.1.2
69+
prefix: /scratch/htc/skrishna/conda/envs/benchmark-2021

runner/envs/benchmark-2021.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ dependencies:
77
- python>=3.9
88
- pip
99

10-
- linopy>=0.4.1
1110
- requests>=2.32
1211

1312
# - scip==7.0.3 # TODO errors with AttributeError: 'pyscipopt.scip.Model' object has no attribute 'getDualSolVal'
1413
# - pyscipopt==3.4.0
1514
# - gurobi==9.5.0 # TODO this doesn't work with py39 but linopy needs py39
1615

1716
# TODO highspy 1.1.1 wasn't released to PyPI, and had no setup.py/pyproject.toml so couldn't install via conda or pip, so omitted..
17+
18+
- pip:
19+
- linopy>=0.5.0

0 commit comments

Comments
 (0)