Skip to main content

IPython magic for parallel profiling

Project description

A tool for measuring serial and parallel execution, and comparing the results. Provides an IPython magic %ptime. This can be useful for measuring the benefits of parallelizing code, including measuring the effect of the Global Interpreter Lock (GIL).

Example

In [1]: %load_ext ptime

In [2]: import numpy as np

In [3]: x = np.ones((5000, 10000))

In [4]: %ptime x + x
Total serial time:   0.42 s
Total parallel time: 0.25 s
For a 1.67X speedup across 2 threads

In [5]: %ptime -n4 x + x  # use 4 threads
Total serial time:   0.82 s
Total parallel time: 0.31 s
For a 2.60X speedup across 4 threads

In [6]: res = %ptime -o x + x  # Get the result
Total serial time:   0.41 s
Total parallel time: 0.25 s
For a 1.66X speedup across 2 threads

In [7]: res.speedup
Out[7]: 1.6610825669011922

In [8]: %%ptime  # Use as a cell magic
...: x = np.ones((5000, 10000))
...: y = x + x
...:
Total serial time:   0.72 s
Total parallel time: 0.47 s
For a 1.54X speedup across 2 threads

Install

This package is available via pip:

pip install ptime

Project details


Release history Release notifications

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ptime, version 0.0.1
Filename, size & hash File type Python version Upload date
ptime-0.0.1.tar.gz (2.8 kB) View hashes Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page