Skip to content

Commit a6a3e0b

Browse files
authored
Apply comments to the paper (#327)
* Clarify phrasing * change figure format * add list of GPU solvers currently supported
1 parent 7b559cf commit a6a3e0b

4 files changed

Lines changed: 71 additions & 7 deletions
Binary file not shown.

paper/2025-09-06_ipopt_lbfgs_trunk_tron_cutest_Float64_0_291_time_pp.svg

Lines changed: 54 additions & 0 deletions
Loading

paper/analyze.jl

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ for solver ∈ keys(stats)
4646
println(io, "Solver: $solver")
4747
pretty_stats(io, stats[solver][!, cols], hdr_override = header)
4848
end
49+
close(io)
4950

5051
# Path because of Ipopt on windows issue:
5152
stats[:ipopt].elapsed_time .= stats[:ipopt].real_time
@@ -72,7 +73,7 @@ for solver ∈ keys(stats)
7273
push!(tim, solver => tim_solver)
7374
end
7475
tim_best = ones(nproblems) * Inf # time of the best
75-
for i=1:nproblems
76+
for i = 1:nproblems
7677
for solver keys(stats)
7778
tim_best[i] = min(tim[solver][i], tim_best[i])
7879
end
@@ -85,11 +86,19 @@ end
8586
using Plots
8687
gr()
8788

89+
# Save individual performance profiles
8890
for i = 1:length(costs)
8991
title_name = "" # "Unconstrained solvers on CUTEst w.r.t. $(costnames[i])"
90-
performance_profile(stats, costs[i], title=title_name)
91-
png("$name" * "_" * costnames[i] * "_pp.png")
92+
performance_profile(stats, costs[i], title = title_name)
93+
94+
base = string(name, "_", costnames[i], "_pp")
95+
# Save as SVG and PDF (add "eps" here if you also want EPS)
96+
savefig("$base.svg")
97+
savefig("$base.pdf")
9298
end
9399

100+
# Combined profile_solvers plot
94101
profile_solvers(stats, costs, costnames)
95-
png("$name")
102+
# Save the combined figure as SVG and PDF
103+
savefig("$name.svg")
104+
savefig("$name.pdf")

paper/paper.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ A nonlinear least-squares problem is a special case of \eqref{eq:nlp}, where $f(
5656
TRON and TRUNK have specialized implementations leveraging the structure of residual models to improve performance and scalability.
5757

5858
A key strength of `JSOSolvers.jl` lies in its efficiency and flexibility.
59-
The solvers support fully in-place execution, allowing repeated solves with zero memory allocation, which is particularly beneficial in high-performance and GPU computing environments where memory management is critical.
59+
The solvers support fully in-place execution, allowing repeated solves without additional memory allocation, which is particularly beneficial in high-performance and GPU computing environments where memory management is critical.
6060
The solvers support any floating-point type, including extended and multi-precision types such as BigFloat, DoubleFloats or QuadMath.
61-
In addition, several solvers support GPU arrays, broadening the range of hardware where the package can be effectively deployed, for instance when used together with `ExaModels.jl` [@shin2024accelerating].
61+
Moreover, TRUNK, TRUNK-NLS, and FOMO support GPU arrays, broadening the range of hardware where the package can be effectively deployed, for instance when used together with `ExaModels.jl` [@shin2024accelerating].
6262
The package documentation and \url{https://jso.dev/tutorials} provide examples illustrating the use of different floating-point systems.
6363
Furthermore, the solvers expose in-place function variants, allowing multiple optimization problems with identical dimensions and data types to be solved efficiently without reallocations.
6464

@@ -107,10 +107,11 @@ include("benchmark.jl") # run the benchmark and store the result in a JLD2 file
107107
include("analyze_benchmark.jl") # make the figure
108108
```
109109
-->
110-
![Unconstrained solvers on CUTEst with respect to the elapsed time.](2025-09-06_ipopt_lbfgs_trunk_tron_cutest_Float64_0_291_time_pp.png){ width=100% }
110+
![Unconstrained solvers on CUTEst with respect to the elapsed time.](2025-09-06_ipopt_lbfgs_trunk_tron_cutest_Float64_0_291_time_pp.pdf){ width=100% }
111111

112112
# Acknowledgements
113113

114114
Dominique Orban is partially supported by an NSERC Discovery Grant.
115115

116116
# References
117+

0 commit comments

Comments
 (0)