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