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(**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 e.g. size_kwargs=dict(w=3, h=4) ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged. tight_layout True to call fig.tight_layout (default: False)
-
get_dataframe(sort_key=u'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(**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
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 e.g. size_kwargs=dict(w=3, h=4) ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged. tight_layout True to call fig.tight_layout (default: False)
-
scatter_hist(**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 e.g. size_kwargs=dict(w=3, h=4) ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged. tight_layout True to call fig.tight_layout (default: False)
-
to_csv(fileobj=<open file '<stdout>', mode 'w'>)[source]¶ Write data on file fileobj using CSV format.
-
totable(sort_key=u'wall_time', stop=None)¶ Return a table (list of lists) with timer data
-
-
class
AbinitTimerParser[source]¶ Bases:
_abcoll.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= u'-<BEGIN_TIMER'¶
-
END_TAG= u'-<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(**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
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 e.g. size_kwargs=dict(w=3, h=4) ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged. tight_layout True to call fig.tight_layout (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) ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged. tight_layout True to call fig.tight_layout (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
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 e.g. size_kwargs=dict(w=3, h=4) ax_grid True (False) to add (remove) grid from all axes in fig. Default: None i.e. fig is left unchanged. tight_layout True to call fig.tight_layout (default: False)
-
section_names(ordkey=u'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=u'0')[source]¶ Return the list of timers associated to the given filename and MPI rank mpi_rank.
-
classmethod
walk(top=u'.', ext=u'.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.
-
-
exception
AbinitTimerParserError[source]¶ Bases:
exceptions.ExceptionErrors raised by AbinitTimerParser
-
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= (u'name', u'wall_time', u'wall_fract', u'cpu_time', u'cpu_fract', u'ncalls', u'gflops')¶
-
NUMERIC_FIELDS= [u'wall_time', u'wall_fract', u'cpu_time', u'cpu_fract', u'ncalls', u'gflops']¶
-
STR_FIELDS= [u'name']¶
-