Conversation
|
Successfully built highspy with HiPO on macOS ARM64 (M1 Pro) using the We used this PR as a reference to build highspy with HiPO support from the current What worked:
What needed updating for
Adding these to Use case: We're running full-year PyPSA-Eur DC-OPF simulations with ~317k variables per weekly chunk, solving 52 chunks sequentially with HiGHS IPM. Interested in HiPO to eliminate the "discarding crash basis" overhead and leverage parallel factorization for these production-scale power system optimizations. Looking forward to this landing in a release! |
|
Thanks for the feedback on your successful build. I think that this will be familiar to @galabovaa as she works on a universal highspy build with HiPO, but I've tagged her just in case. |
macOS ARM64 Build Report & Missing DependenciesWe've been building HiPO-enabled highspy from source on macOS ARM64 (Apple Silicon) for our PyPSA DC-OPF production pipeline. Sharing our patches since they may be useful for this PR. Build Environment
Patches Required (on top of
|
Update: HiPO Benchmark Results (corrected build)Following up on our previous reports — we identified and fixed an issue with our build where HiPO was silently falling back to Corrected build commandpip install /path/to/HiGHS \
--config-settings=cmake.define.HIPO=ON \
--config-settings=cmake.define.FAST_BUILD=ON \
--no-build-isolation \
--force-reinstallBenchmark results — DC-OPF (PyPSA, Netherlands grid, ~100 buses, 10 threads, macOS M1 Pro)
Key observations
Cost-of-energy consistency
Silent fallback detectionOne thing worth noting for other users: when HiPO is not compiled in, Thanks again for the work on HiPO and this PR! |
Addendum: Simplex (PAMI) thread scaling on same DC-OPF workload (168h chunk)
Simplex shows real but sub-linear scaling — 2.78× on 10 cores. For comparison, IPX shows essentially zero thread scaling (51.3s at both 1t and 10t), and HiPO at 10t is 68.0s. |
|
Thanks for your observations. It's interesting to see you getting good speedup with Simplex (PAMI) - yes 2.78x on 10 threads is good! Your observations on HiPO would appear to resonate with the results of experiments that @filikat showed me this morning. Whilst HiPO offers great performance gain on large, structured models, it didn't on some exceptionally sparse problems from PyPSA. Whilst not all PyPSA models have the same characteristics, it's quite a coincidence. @filikat is developing a simplified factorization strategy for such problems. |
|
Closing this, a larger re-structure is in progress |
Not ready to merge
Just for reference for @mathgeekcoder
This is what I had, with some modifications, so highs with hipo is built with