Skip to content

Commit ed6d925

Browse files
committed
Update of agnetic cpu exampe
1 parent 8e9288f commit ed6d925

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

examples/agentic/generate-cpu-linear-solver/benchmark.jl

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,14 @@ include("solver.jl")
1212
# Configuration
1313
N = 15_000
1414
sparsity_levels = [0.1, 0.5, 0.9]
15+
16+
umfpack_control = SparseArrays.UMFPACK.get_umfpack_control(Float64, Int64) # read Julia default configuration for a Float64 sparse matrix
17+
#SparseArrays.UMFPACK.show_umf_ctrl(umfpack_control) # optional - display values
18+
umfpack_control[SparseArrays.UMFPACK.JL_UMFPACK_IRSTEP] = 2.0 # reenable iterative refinement (2 is UMFPACK default max iterative refinement steps)
19+
1520
solvers = OrderedDict(
1621
"Default" => (A, b) -> (A \ b),
22+
"UMFPACK" => (A, b) -> lu(A; control = umfpack_control) \ b,
1723
"Generated" => (A, b) -> proposed_fn(A, b)
1824
)
1925

@@ -56,7 +62,7 @@ for sparsity in sparsity_levels
5662
error = norm(A*x_sol - b_err) / norm(b_err)
5763

5864
results[sparsity][solver_name] = (time=time_ms, error=error)
59-
println(" Time: $(round(time_ms, digits=3)) ms, Error: $(round(error, sigdigits=3))")
65+
println(" Time: $(round(time_ms, digits=3)) s, Error: $(round(error, sigdigits=3))")
6066
catch e
6167
println(" Error during benchmark: $e")
6268
end
@@ -67,7 +73,7 @@ end
6773
p = plot(
6874
size=(800, 800),
6975
#legend=:topright,
70-
legend=:bottomright,
76+
legend=:bottomleft,
7177
xlabel="Time (s)",
7278
ylabel="Relative residual: ||Ax - b||₂ / ||b||₂",
7379
# xscale=:log10,
@@ -86,7 +92,7 @@ p = plot(
8692
## Sparsity shapes
8793
marker_map_sparsity = OrderedDict(0.1=>:circle, 0.5=>:square, 0.9=>:utriangle)
8894
## Solver color shades
89-
color_map_solver = OrderedDict("Default"=>:red, "Generated"=>:green)
95+
color_map_solver = OrderedDict("Default"=>:red, "UMFPACK"=>:blue, "Generated"=>:green)
9096

9197
# Plot each point individually so marker shape shows sparsity and color shows solver.
9298
for solver_name in keys(solvers)
-29.5 KB
Binary file not shown.

examples/agentic/generate-cpu-linear-solver/solver.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ function proposed_fn(A::SparseMatrixCSC, b::AbstractVector)
33
n = length(b)
44
@assert size(A,2) == n "Dimensions of A and b must agree"
55

6-
niters = 10
6+
niters = 4
77

88
# Convert sparse matrix to dense double for accurate residual computation
99
# and to dense single for fast factorization/solves with multithreaded BLAS.

examples/agentic/generate-cuda-linear-solver/benchmark.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ for sparsity in sparsity_levels
6666
error = norm(Ad*x_sol - bd_err) / norm(bd_err)
6767

6868
results[sparsity][solver_name] = (time=time_ms, error=error)
69-
println(" Time: $(round(time_ms, digits=3)) ms, Error: $(round(error, sigdigits=3))")
69+
println(" Time: $(round(time_ms, digits=3)) s, Error: $(round(error, sigdigits=3))")
7070
catch e
7171
println(" Error during benchmark: $e")
7272
end

0 commit comments

Comments
 (0)