pymatgen.io.abinit.abitimer module¶
This module provides objects for extracting timing data from the ABINIT output files It also provides tools to analye and to visualize the parallel efficiency.
-
class
AbinitTimer
(sections, info, cpu_time, wall_time)[source]¶ Bases:
object
Container class storing the timing results.
- Parameters
sections – List of sections
info – Dictionary with extra info.
cpu_time – Cpu-time in seconds.
wall_time – Wall-time in seconds.
-
cpuwall_histogram
(**kwargs)[source]¶ Plot histogram with cpu- and wall-time on axis ax.
- Parameters
ax – matplotlib
Axes
or None if a new figure should be created.
Returns: matplotlib figure
Keyword arguments controlling the display of the figure:
kwargs
Meaning
title
Title of the plot (Default: None).
show
True to show the figure (default: True).
savefig
“abc.png” or “abc.eps” to save the figure to a file.
size_kwargs
Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout
True to call fig.tight_layout (default: False)
ax_grid
True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate
Add labels to subplots e.g. (a), (b). Default: False
fig_close
Close figure. Default: False.
-
get_dataframe
(sort_key='wall_time', **kwargs)[source]¶ Return a pandas DataFrame with entries sorted according to sort_key.
-
names_and_values
(key, minval=None, minfract=None, sorted=True)[source]¶ Select the entries whose value[key] is >= minval or whose fraction[key] is >= minfract Return the names of the sections and the corresponding values.
-
pie
(**kwargs)[source]¶ Plot pie chart for this timer.
- Parameters
key – Keyword used to extract data from the timer.
minfract – Don’t show sections whose relative weight is less that minfract.
ax – matplotlib
Axes
or None if a new figure should be created.
Returns: matplotlib figure
Keyword arguments controlling the display of the figure:
kwargs
Meaning
title
Title of the plot (Default: None).
show
True to show the figure (default: True).
savefig
“abc.png” or “abc.eps” to save the figure to a file.
size_kwargs
Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout
True to call fig.tight_layout (default: False)
ax_grid
True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate
Add labels to subplots e.g. (a), (b). Default: False
fig_close
Close figure. Default: False.
-
scatter_hist
(**kwargs)[source]¶ Scatter plot + histogram.
- Parameters
ax – matplotlib
Axes
or None if a new figure should be created.
Returns: matplotlib figure
Keyword arguments controlling the display of the figure:
kwargs
Meaning
title
Title of the plot (Default: None).
show
True to show the figure (default: True).
savefig
“abc.png” or “abc.eps” to save the figure to a file.
size_kwargs
Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout
True to call fig.tight_layout (default: False)
ax_grid
True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate
Add labels to subplots e.g. (a), (b). Default: False
fig_close
Close figure. Default: False.
-
class
AbinitTimerParser
[source]¶ Bases:
collections.abc.Iterable
Responsible for parsing a list of output files, extracting the timing results and analyzing the results. Assume the Abinit output files have been produced with timopt -1.
Example
parser = AbinitTimerParser() parser.parse(list_of_files)
To analyze all *.abo files withing top, use:
parser, paths, okfiles = AbinitTimerParser.walk(top=”.”, ext=”.abo”)
Initialize object.
-
Error
[source]¶ alias of
AbinitTimerParserError
-
get_sections
(section_name)[source]¶ Return the list of sections stored in self.timers() given section_name A fake section is returned if the timer does not have section_name.
-
parse
(filenames)[source]¶ Read and parse a filename or a list of filenames. Files that cannot be opened are ignored. A single filename may also be given.
Return: list of successfully read files.
-
pefficiency
()[source]¶ Analyze the parallel efficiency.
Return:
ParallelEfficiency
object.
-
plot_efficiency
(**kwargs)[source]¶ Plot the parallel efficiency
- Parameters
key – Parallel efficiency is computed using the wall_time.
what – Specifies what to plot: good for sections with good parallel efficiency. bad for sections with bad efficiency. Options can be concatenated with +.
nmax – Maximum number of entries in plot
ax – matplotlib
Axes
or None if a new figure should be created.
kwargs
Meaning
linewidth
matplotlib linewidth. Default: 2.0
markersize
matplotlib markersize. Default: 10
- Returns
matplotlib figure
Keyword arguments controlling the display of the figure:
kwargs
Meaning
title
Title of the plot (Default: None).
show
True to show the figure (default: True).
savefig
“abc.png” or “abc.eps” to save the figure to a file.
size_kwargs
Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout
True to call fig.tight_layout (default: False)
ax_grid
True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate
Add labels to subplots e.g. (a), (b). Default: False
fig_close
Close figure. Default: False.
-
plot_pie
(**kwargs)[source]¶ Plot pie charts of the different timers.
- Parameters
key – Keyword used to extract data from timers.
minfract – Don’t show sections whose relative weight is less that minfract.
- Returns
matplotlib figure
Keyword arguments controlling the display of the figure:
kwargs
Meaning
title
Title of the plot (Default: None).
show
True to show the figure (default: True).
savefig
“abc.png” or “abc.eps” to save the figure to a file.
size_kwargs
Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout
True to call fig.tight_layout (default: False)
ax_grid
True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate
Add labels to subplots e.g. (a), (b). Default: False
fig_close
Close figure. Default: False.
-
plot_stacked_hist
(**kwargs)[source]¶ Plot stacked histogram of the different timers.
- Parameters
key – Keyword used to extract data from the timers. Only the first nmax sections with largest value are show.
mmax – Maximum nuber of sections to show. Other entries are grouped together in the others section.
ax – matplotlib
Axes
or None if a new figure should be created.
- Returns
matplotlib figure
Keyword arguments controlling the display of the figure:
kwargs
Meaning
title
Title of the plot (Default: None).
show
True to show the figure (default: True).
savefig
“abc.png” or “abc.eps” to save the figure to a file.
size_kwargs
Dictionary with options passed to fig.set_size_inches e.g. size_kwargs=dict(w=3, h=4)
tight_layout
True to call fig.tight_layout (default: False)
ax_grid
True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged.
ax_annotate
Add labels to subplots e.g. (a), (b). Default: False
fig_close
Close figure. Default: False.
-
section_names
(ordkey='wall_time')[source]¶ Return the names of sections ordered by ordkey. For the time being, the values are taken from the first timer.
-
summarize
(**kwargs)[source]¶ Return pandas DataFrame with the most important results stored in the timers.
-
timers
(filename=None, mpi_rank='0')[source]¶ Return the list of timers associated to the given filename and MPI rank mpi_rank.
-
classmethod
walk
(top='.', ext='.abo')[source]¶ Scan directory tree starting from top, look for files with extension ext and parse timing data.
- Return: (parser, paths, okfiles)
where parser is the new object, paths is the list of files found and okfiles is the list of files that have been parsed successfully. (okfiles == paths) if all files have been parsed.
-
-
class
AbinitTimerSection
(name, cpu_time, cpu_fract, wall_time, wall_fract, ncalls, gflops)[source]¶ Bases:
object
Record with the timing results associated to a section of code.
- Parameters
name – Name of the sections.
cpu_time – CPU time in seconds.
cpu_fract – Percentage of CPU time.
wall_time – Wall-time in seconds.
wall_fract – Percentage of wall-time.
ncalls – Number of calls
gflops – Gigaflops.
-
class
ParallelEfficiency
(filenames, ref_idx, *args, **kwargs)[source]¶ Bases:
dict
Store results concerning the parallel efficiency of the job.
- Parameters
filennames – List of filenames
ref_idx – Index of the Reference time (calculation done with the smallest number of cpus)
-
bad_sections
(key='wall_time', criterion='mean', nmax=5)[source]¶ Return first nmax sections with worst value of key key using criterion criterion.