Change scaling plot to loglog
This commit is contained in:
Binary file not shown.
@@ -150,8 +150,7 @@ The Jacobi rotation algorithm is implemented as described in the lecture notes.
|
|||||||
|
|
||||||
\section*{Problem 5}
|
\section*{Problem 5}
|
||||||
\subsection*{Subproblem (a)}
|
\subsection*{Subproblem (a)}
|
||||||
The scaling of the number of iterations is tested in \texttt{src/project2/scaling\_tester.cpp}. The results are shown in \autoref{fig:scaling}. On the logarithmic scale, we see a trend that is roughly of the order $\sqrt{\log N}$.
|
The scaling of the number of iterations is tested in \texttt{src/project2/scaling\_tester.cpp}. The results are shown in \autoref{fig:scaling}. On the double logarithmic scale, the scaling is approximately linear, indicating a polynomial relation between the number of iterations and the matrix size $N$.
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.7\textwidth]{include/scaling_data_iterations.pdf}
|
\includegraphics[width=0.7\textwidth]{include/scaling_data_iterations.pdf}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import os
|
|||||||
parser = argparse.ArgumentParser(description='Plot scaling data.')
|
parser = argparse.ArgumentParser(description='Plot scaling data.')
|
||||||
parser.add_argument('input_file', type=str, help='Path to the input CSV file')
|
parser.add_argument('input_file', type=str, help='Path to the input CSV file')
|
||||||
parser.add_argument("--times", "-t", action="store_true", help="Plot times instead of iterations")
|
parser.add_argument("--times", "-t", action="store_true", help="Plot times instead of iterations")
|
||||||
|
parser.add_argument("--no-loglog", "-nL", action="store_true", help="Do not use log-log scale")
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
data = pd.read_csv(args.input_file)
|
data = pd.read_csv(args.input_file)
|
||||||
@@ -18,16 +19,17 @@ if args.times:
|
|||||||
ax.plot(x, data["Arma_time"], label='Armadillo Time', color='C1', linestyle='-', marker='o')
|
ax.plot(x, data["Arma_time"], label='Armadillo Time', color='C1', linestyle='-', marker='o')
|
||||||
ax.set_ylabel('Time (s)')
|
ax.set_ylabel('Time (s)')
|
||||||
ax.set_title('Scaling of Computation Time')
|
ax.set_title('Scaling of Computation Time')
|
||||||
ax.set_yscale('log')
|
|
||||||
ax.legend()
|
ax.legend()
|
||||||
ax.grid()
|
ax.grid()
|
||||||
else:
|
else:
|
||||||
ax.set_ylabel('Number of Iterations')
|
ax.set_ylabel('Number of Iterations')
|
||||||
ax.set_title('Scaling of Jacobi Iterations')
|
ax.set_title('Scaling of Jacobi Iterations')
|
||||||
ax.set_yscale('log')
|
|
||||||
ax.plot(x, data["Jacobi_iterations"], label='Jacobi Iterations', color='C0', linestyle='-', marker='o')
|
ax.plot(x, data["Jacobi_iterations"], label='Jacobi Iterations', color='C0', linestyle='-', marker='o')
|
||||||
ax.grid()
|
ax.grid()
|
||||||
|
|
||||||
|
if not args.no_loglog:
|
||||||
|
ax.set_xscale('log')
|
||||||
|
ax.set_yscale('log')
|
||||||
ax.set_xlabel('Matrix Size N')
|
ax.set_xlabel('Matrix Size N')
|
||||||
dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../projects/project2/include"))
|
dir = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../../projects/project2/include"))
|
||||||
filename = args.input_file.split("/")[-1].replace(".txt", "")
|
filename = args.input_file.split("/")[-1].replace(".txt", "")
|
||||||
|
|||||||
Reference in New Issue
Block a user