Skip to content

Commit 56186ca

Browse files
committed
Added link to pluto notebook
1 parent 2c50d05 commit 56186ca

File tree

1 file changed

+14
-6
lines changed

1 file changed

+14
-6
lines changed

README.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# PEPit.jl
22

3-
Hello world!
4-
5-
`PEPit.jl` is a native Julia implementation of the Performance Estimation Programming (PEP) methodology [1,2,3] and the Python package `PEPit` [4] for worst-case analysis of first-order optimization algorithms. The core idea in PEP is to model the design and analysis of first-order optimization algorithms themselves as higher level optimization problems called performance estimation problems (PEPs) that are semidefinite programming programs (SDPs). We then solve such SDPs numerically to obtain tight worst-case bounds for known algorithms and also to discover new algorithms under suitable conditions.
3+
`PEPit.jl` is a native Julia implementation of the Performance Estimation Programming (PEP) methodology [1,2,3] and the Python package `PEPit` [4] for worst-case analysis of first-order optimization algorithms. The core idea in PEP is to model the design and analysis of first-order optimization algorithms as higher-level optimization problems called performance estimation problems (PEPs), which are semidefinite programs (SDPs). We then solve these SDPs numerically to obtain tight worst-case bounds for known algorithms and also to discover new algorithms under suitable conditions.
64

75
The intent of this Julia package is to be functionally equivalent to existing packages such as `PESTO` [5] and `PEPit` while providing a clean, Julia-native API along with a broader support of commercial and open-source solvers under the `JuMP` ecosystem [6].
86

@@ -14,7 +12,7 @@ You can install the package by typing the following in the Julia REPL:
1412
] add PEPit
1513
```
1614

17-
To install directly from the github repo, type the following in the Julia REPL:
15+
To install directly from the GitHub repo, type the following in the Julia REPL:
1816
```julia
1917
] add https://github.com/PerformanceEstimation/PEPit.jl
2018
```
@@ -25,6 +23,14 @@ Then in Julia, you can run the following test to see if the package is working a
2523
] test PEPit
2624
```
2725

26+
## Reproducible [`Pluto`](`Pluto`) notebook to try out `PEPit.jl`
27+
28+
A completely open-source reproducible `Pluto` notebook to try out a simple `PEPit.jl` example is available at:
29+
30+
[https://pluto.land/n/ds42k2rm](https://pluto.land/n/ds42k2rm)
31+
32+
From this link, you can either download the `Pluto` notebook file and run it locally with `Pluto`, or run the notebook with [`Binder`](https://plutojl.org/en/docs/binder/) directly in your browser!
33+
2834
## Minimal example
2935

3036
Below is a condensed example following the style of the examples in `examples/`; for other examples please take a look in the `examples/` folder. It computes a worst-case bound for accelerated gradient method for smooth strongly convex minimization (please also see the `Step-by-Step tutorial` for more details):
@@ -94,7 +100,9 @@ We also have many examples in the `examples` folder of the package, please take
94100

95101
## Solvers
96102

97-
`PEPit.jl` uses `JuMP` and builds an SDP internally. Currently we support: `Clarabel` and `Mosek`, but we plan to add more solvers in the future. Note: using `Mosek` requires a valid license to use (free for academic use), where `Clarabel` is open-source.
103+
`PEPit.jl` uses `JuMP` and builds an SDP internally. The default backend in `solve!` is `Mosek.Optimizer`, and you can pass another JuMP-compatible SDP solver through the `solver` keyword (for example, `Clarabel.Optimizer` if you `using Clarabel`).
104+
105+
Currently documented/used solvers in this repository are `Mosek` and `Clarabel`. Note: using `Mosek` requires a valid license (free for academic use), while `Clarabel` is open-source.
98106

99107
## Repository layout
100108

@@ -135,4 +143,4 @@ Please report any issues via the `Github Issue Tracker`. All types of issues are
135143

136144
[5] A. Taylor, J. Hendrickx, F. Glineur (2017). [Performance Estimation Toolbox (PESTO): automated worst-case analysis of first-order optimization methods](https://adrientaylor.github.io/share/PESTO_CDC_2017.pdf). In 56th IEEE Conference on Decision and Control (CDC).
137145

138-
[6] M. Lubin, O. Dowson, J.D. Garcia, J. Huchette, B. Legat, J.P. Vielma . [JuMP 1.0: Recent improvements to a modeling language for mathematical optimization.](https://arxiv.org/pdf/2206.03866). Mathematical Programming Computation. 2023 Sep;15(3):581-9.
146+
[6] M. Lubin, O. Dowson, J.D. Garcia, J. Huchette, B. Legat, J.P. Vielma . [JuMP 1.0: Recent improvements to a modeling language for mathematical optimization.](https://arxiv.org/pdf/2206.03866). Mathematical Programming Computation. 2023 Sep;15(3):581-9.

0 commit comments

Comments
 (0)