Fix programs
This commit is contained in:
parent
5915b9ae2d
commit
43c02ad3fa
@ -2,7 +2,20 @@ from os import makedirs
|
||||
from pathlib import Path
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import seaborn as sns
|
||||
|
||||
sns.set_theme()
|
||||
params = {
|
||||
"font.family": "Serif",
|
||||
"font.serif": "Roman",
|
||||
"text.usetex": True,
|
||||
"axes.titlesize": "large",
|
||||
"axes.labelsize": "large",
|
||||
"xtick.labelsize": "large",
|
||||
"ytick.labelsize": "large",
|
||||
"legend.fontsize": "medium",
|
||||
}
|
||||
plt.rcParams.update(params)
|
||||
|
||||
def plot_timing(indir, outdir):
|
||||
if not (path := Path(outdir)).exists():
|
||||
@ -22,16 +35,19 @@ def plot_timing(indir, outdir):
|
||||
for file, label, xlabel, outfile in zip(files, labels, xlabels, outfiles):
|
||||
figure1, ax1 = plt.subplots()
|
||||
x = []
|
||||
t = []
|
||||
parallel = []
|
||||
serial = []
|
||||
|
||||
with open(Path(indir, file)) as f:
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
l = line.strip().split(",")
|
||||
x.append(float(l[0]))
|
||||
t.append(float(l[1]))
|
||||
parallel.append(float(l[1]))
|
||||
serial.append(float(l[2]))
|
||||
|
||||
ax1.plot(x, t, label=label)
|
||||
ax1.plot(x, parallel, label="Parallel")
|
||||
ax1.plot(x, serial, label="Serial")
|
||||
ax1.set_xlabel(xlabel)
|
||||
ax1.set_ylabel("time (seconds)")
|
||||
|
||||
@ -44,6 +60,6 @@ def plot_timing(indir, outdir):
|
||||
|
||||
if __name__ == "__main__":
|
||||
plot_timing(
|
||||
"data/hp/timing/",
|
||||
"data/hp/timing",
|
||||
"./latex/images/timing",
|
||||
)
|
||||
|
||||
26
src/time.cpp
26
src/time.cpp
@ -21,21 +21,25 @@
|
||||
* */
|
||||
void time_lattice_sizes()
|
||||
{
|
||||
std::string outfile = "data/timing/lattice_sizes.txt";
|
||||
std::string outfile = "data/hp/timing/lattice_sizes.txt";
|
||||
std::ofstream ofile;
|
||||
|
||||
int lattice_sizes[] = {20, 40, 60, 80, 100};
|
||||
|
||||
utils::mkpath(utils::dirname(outfile));
|
||||
ofile.open(outfile);
|
||||
double t0, t1;
|
||||
double t0, t1, t2;
|
||||
for (int L : lattice_sizes) {
|
||||
t0 = omp_get_wtime();
|
||||
montecarlo::phase_transition(L, 2.1, 2.4, 40, 100000,
|
||||
montecarlo::mcmc_parallel, "/dev/null");
|
||||
montecarlo::phase_transition(L, 2.1, 2.4, 40, 20000,
|
||||
montecarlo::mcmc_parallel, "/dev/null", 0);
|
||||
t1 = omp_get_wtime();
|
||||
montecarlo::phase_transition(L, 2.1, 2.4, 40, 20000,
|
||||
montecarlo::mcmc_serial, "/dev/null", 0);
|
||||
t2 = omp_get_wtime();
|
||||
ofile << utils::scientific_format(L) << ','
|
||||
<< utils::scientific_format(t1 - t0) << '\n';
|
||||
<< utils::scientific_format(t1 - t0) << ','
|
||||
<< utils::scientific_format(t2 - t1) << '\n';
|
||||
}
|
||||
ofile.close();
|
||||
}
|
||||
@ -44,21 +48,25 @@ void time_lattice_sizes()
|
||||
* */
|
||||
void time_sample_sizes()
|
||||
{
|
||||
std::string outfile = "data/timing/sample_sizes.txt";
|
||||
std::string outfile = "data/hp/timing/sample_sizes.txt";
|
||||
std::ofstream ofile;
|
||||
|
||||
int sample_sizes[] = {1000, 10000, 100000};
|
||||
|
||||
utils::mkpath(utils::dirname(outfile));
|
||||
ofile.open(outfile);
|
||||
double t0, t1;
|
||||
double t0, t1, t2;
|
||||
for (int samples : sample_sizes) {
|
||||
t0 = omp_get_wtime();
|
||||
montecarlo::phase_transition(20, 2.1, 2.4, 40, samples,
|
||||
montecarlo::mcmc_parallel, "/dev/null");
|
||||
montecarlo::mcmc_parallel, "/dev/null", 0);
|
||||
t1 = omp_get_wtime();
|
||||
montecarlo::phase_transition(20, 2.1, 2.4, 40, samples,
|
||||
montecarlo::mcmc_serial, "/dev/null", 0);
|
||||
t2 = omp_get_wtime();
|
||||
ofile << utils::scientific_format(samples) << ','
|
||||
<< utils::scientific_format(t1 - t0) << '\n';
|
||||
<< utils::scientific_format(t1 - t0) << ','
|
||||
<< utils::scientific_format(t2 - t1) << '\n';
|
||||
}
|
||||
ofile.close();
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user