Recent submissions

Comment · 2 years ago
Comment · 3 years ago
L2RPN is a series of competitions, with the aim of training an Artificial Intelligence agent to operate a power network. The Delft-AI-Energy Lab is hosting a remake of the L2RPN challenge in the Netherlands. The L2RPN Delft 2023 competition offers an exciting opportunity for students and researchers in the Netherlands to test their AI solutions against others in a realistic and challenging environment.
Comment · 3 years ago
Comment · 3 years ago
Comment · 4 years ago
I am surprised not to see any mention of the OSQP (Operator Splitting Quadratic Program) solver. It is the most impressive open source solver of this type that I have seen published in recent years. It appears to have been developed as a collaboration between Princeton, ETH Zurich, Oxford, Stanford and some other prestigious names. The benchmarks show that it compares favorably with leading proprietary solvers:

https://github.com/osqp/osqp_benchmarks

The problem described seems to be an ideal use-case for Machine Learning. The MATPOWER Optimal Scheduling Toolkit (MOST) can already solve:

"a stochastic, security-constrained, combined unit-commitment and multiperiod optimal power flow problem with locational contingency and load-following reserves, ramping costs and constraints, deferrable demands, lossy storage resources and uncertain renewable generation."

Much more and it becomes a global optimization problem where you can never really be sure you are not just stuck in a local optimum. The L2RPN (Learning to Run a Power Network) challenge, from RTE-France, is the most interesting effort I have seen applying Machine Learning to energy system management.

https://l2rpn.chalearn.org/

https://github.com/rte-france/l2rpn-baselines

The competition has been renewed for 2022 and has been accepted for the IEEE World Congress on Computational Intelligence in July.

https://wcci2022.org

Comment · 5 years ago
Comment · 5 years ago
Comment · 5 years ago
Comment · 6 years ago
The GNU Octave interpreter and its dependencies are all in the matpower.wasm file. 19Mb is still quite large for a website, but it is loaded asynchronously and WASM get compiled as it streams in. The interpreter runs in a WebWorker using a Promise based interface so the UI doesn't get held up. Many of the dependencies (e.g. FFTW, CHOLMOD, ARPACK, Qt, HDF5) are disabled as they are not needed to run MATPOWER. There was no particular reason for using v4.4.1. The core functionality of GNU Octave doesn't change much and that version was stable and sufficient for my needs.
Comment · 6 years ago
Comment · 6 years ago
Comment · 6 years ago
Comment · 6 years ago
Octave includes support for sparse matrices and MATPOWER makes use of them by default. It doesn't require any additional effort from me. In general, Octave can quite match MATLAB for performance, but it is typically not far off. Running it as WebAssembly also comes with a small performance penalty. I haven't run any benchmarks yet, but this can be expected to improve as browser vendors optimize their runtimes.

Octave is using UMFPACK to solve sparse systems of linear equations. There may be some performance to be gained by using KLU with AMD preordering.

I am interested to know how best to compile BLAS and LAPACK to WebAssembly. Traditionally, implementations optimized for a particular machine architecture are used to extract maximum performance. However, WebAssembly targets a stack-based conceptual machine. At present, I use LAPACK v3.4.2 and convert it to C with f2c before compiling to WebAssembly. It would be interesting to perform some benchmark tests against other implementations and compare across browsers.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton