FGCS/eval_phreeqc_per_it.jl
2025-03-16 23:49:48 +01:00

93 lines
2.2 KiB
Julia

using CSV, DataFrames, Statistics
function read_csvs(csv_files)
full_vec = []
for file in csv_files
vec = (CSV.File(file; header=false)|>Tables.matrix)[1, 1:end-1]
push!(full_vec, vec)
end
return hcat(full_vec...)
end
input_dir = "per_phreeqc/"
csv_files = readdir(input_dir, join=true)
csv_files = filter(x -> occursin(r"worker_timings_\d+.csv", x), csv_files)
mat = read_csvs(csv_files)
# calculate the mean of each row
mean_vec = vec(mean(mat; dims=2))
mean_intervalls = collect(0:1000:5000)
# calculate the mean of each intervall
mean_cummulative = [mean(@view mean_vec[mean_intervalls[i]+1:mean_intervalls[i+1]])
for i in 1:length(mean_intervalls)-1] .* 1e3
using Plots
p = plot(mean_vec .* 1e3,
xlabel="Iteration",
ylabel="Runimte [ms]",
xguidefontsize=8,
yguidefontsize=8,
xtickfontsize=6,
ytickfontsize=6,
legend=false,
formatter=:plain,
yminorgrid=true,
ylimits=(0, 16),
yticks=collect(0:2:16),
yminorticks=4,
linecolor=:black,
)
display(p)
savefig(p, "phreeeqc_per_iteration_barite.pdf")
mean(mean_vec) * 1e3
input_dir = "phreeqc_dolo/"
csv_files = readdir(input_dir, join=true)
csv_files = filter(x -> occursin(r"worker_timings_\d+.csv", x), csv_files)
mat = read_csvs(csv_files)
# calculate the mean of each row
mean_vec = vec(mean(mat; dims=2))
mean_intervalls = collect(0:1000:10000)
# calculate the mean of each intervall
mean_cummulative = [mean(@view mean_vec[mean_intervalls[i]+1:mean_intervalls[i+1]])
for i in 1:length(mean_intervalls)-1] .* 1e3
using Plots
p = plot(mean_vec,
xlabel="Iteration",
ylabel="Runimte [ms]",
xguidefontsize=8,
yguidefontsize=8,
xtickfontsize=6,
ytickfontsize=6,
legend=false,
formatter=:plain,
yminorgrid=true,
# ylimits=(0, 16),
# yticks=collect(0:2:16),
yminorticks=4,
linecolor=:black,
)
display(p)
savefig(p, "phreeeqc_per_iteration_barite.pdf")
mean(mean_vec) * 1e6
maximum(mean_vec) * 1e6
minimum(mean_vec) * 1e6