CallbackPrintHardwareUsage

class odl.solvers.util.callback.CallbackPrintHardwareUsage(step=1, fmt_cpu='CPU usage (% each core): {}', fmt_mem='RAM usage: {}', fmt_swap='SWAP usage: {}', **kwargs)[source]

Bases: Callback

Callback for printing memory and CPU usage.

This callback requires the psutil package.

Methods

__call__(_)

Print the memory and CPU usage

reset()

Set iter to 0.

__init__(step=1, fmt_cpu='CPU usage (% each core): {}', fmt_mem='RAM usage: {}', fmt_swap='SWAP usage: {}', **kwargs)[source]

Initialize a new instance.

Parameters:
steppositive int, optional

Number of iterations between output.

fmt_cpustring, optional

Formating that should be applied. The CPU usage is printed as

print(fmt_cpu.format(cpu))

where cpu is a vector with the percentage of current CPU usaged for each core. An empty format string disables printing of CPU usage.

fmt_memstring, optional

Formating that should be applied. The RAM usage is printed as

print(fmt_mem.format(mem))

where mem is the current RAM memory usaged. An empty format string disables printing of RAM memory usage.

fmt_swapstring, optional

Formating that should be applied. The SWAP usage is printed as

print(fmt_swap.format(swap))

where swap is the current SWAP memory usaged. An empty format string disables printing of SWAP memory usage.

Other Parameters:
kwargs

Key word arguments passed to the print function.

Examples

Print memory and CPU usage

>>> callback = CallbackPrintHardwareUsage()

Only print every tenth step

>>> callback = CallbackPrintHardwareUsage(step=10)

Only print the RAM memory usage in every step, and with a non-default formatting

>>> callback = CallbackPrintHardwareUsage(step=1, fmt_cpu='',
...                                       fmt_mem='RAM {}',
...                                       fmt_swap='')