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:
objectContainer class storing the timing results.
-
cpuwall_histogram(ax=None, **kwargs)[source]¶ 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 example: size_kwargs=dict(w=3, h=4) tight_layout True if to call fig.tight_layout (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.
-
ncpus¶ Total number of CPUs employed.
-
pie(key='wall_time', minfract=0.05, ax=None, **kwargs)[source]¶ Plot pie chart for this timer.
- Args:
- key: Keyword used to extract data from the timer.
minfract: Don’t show sections whose relative weight is less that minfract.
ax: matplotlib
Axesor 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 example: size_kwargs=dict(w=3, h=4) tight_layout True if to call fig.tight_layout (default: False)
-
scatter_hist(ax=None, **kwargs)[source]¶ 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 example: size_kwargs=dict(w=3, h=4) tight_layout True if to call fig.tight_layout (default: False)
-
to_csv(fileobj=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>)[source]¶ Write data on file fileobj using CSV format.
-
totable(sort_key='wall_time', stop=None)¶ Return a table (list of lists) with timer data
-
-
class
AbinitTimerParser[source]¶ Bases:
collections.abc.IterableResponsible 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”)-
BEGIN_TAG= '-<BEGIN_TIMER'¶
-
END_TAG= '-<END_TIMER>'¶
-
Error¶ alias of
AbinitTimerParserError
-
filenames¶ List of files that have been parsed successfully.
-
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.
Returns: ParallelEfficiencyobject.
-
plot_efficiency(key='wall_time', what='good+bad', nmax=5, ax=None, **kwargs)[source]¶ Plot the parallel efficiency
- Args:
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
Axesor 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 example: size_kwargs=dict(w=3, h=4) tight_layout True if to call fig.tight_layout (default: False)
-
plot_pie(key='wall_time', minfract=0.05, **kwargs)[source]¶ Plot pie charts of the different timers.
- Args:
- 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 example: size_kwargs=dict(w=3, h=4) tight_layout True if to call fig.tight_layout (default: False)
-
plot_stacked_hist(key='wall_time', nmax=5, ax=None, **kwargs)[source]¶ Plot stacked histogram of the different timers.
- Args:
- 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
Axesor 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 example: size_kwargs=dict(w=3, h=4) tight_layout True if to call fig.tight_layout (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:
objectRecord with the timing results associated to a section of code.
-
FIELDS= ('name', 'wall_time', 'wall_fract', 'cpu_time', 'cpu_fract', 'ncalls', 'gflops')¶
-
NUMERIC_FIELDS= ['wall_time', 'wall_fract', 'cpu_time', 'cpu_fract', 'ncalls', 'gflops']¶
-
STR_FIELDS= ['name']¶
-