Skip to content

Commit 7b6ea75

Browse files
author
user
committed
Cut out performance monitor, fix marshaller setting and magics cleanup
Removed performance monitoring functionality while preserving Score-P instrumentation features. Updated marshaller settings and cleaned up magic commands.
1 parent cfb8d7f commit 7b6ea75

13 files changed

Lines changed: 101 additions & 2248 deletions

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
__pycache__/
22
.variables
33
.userpersistency
4-
4+
build
5+
logging
6+
**/*.egg-info

README.md

Lines changed: 6 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,9 @@
88

99
# A Jupyter Kernel for Performance Engineering
1010

11-
This is the JUmPER Kernel that enables you to:
11+
This is the JUmPER Kernel that enables you to instrument and trace or profile Jupyter cells with [Score-P](https://score-p.org/).
1212

13-
1. Monitor Jupyter cells and measure system metrics like cpu, gpu, I/O or memory utilization.
14-
15-
2. Instrument and trace or profile Jupyter cells with [Score-P](https://score-p.org/).
16-
17-
For binding to Score-P, the kernel uses the [Score-P Python bindings](https://github.com/score-p/scorep_binding_python). Monitoring does not rely on Score-P and you can use it without a Score-P installation.
13+
For binding to Score-P, the kernel uses the [Score-P Python bindings](https://github.com/score-p/scorep_binding_python).
1814

1915

2016

@@ -24,7 +20,6 @@ For binding to Score-P, the kernel uses the [Score-P Python bindings](https://gi
2420
- [Table of Content](#table-of-content)
2521
- [Installation](#installation)
2622
- [Usage](#usage)
27-
- [Monitoring](#monitoring)
2823
- [Score-P Instrumentation](#score-p-instrumentation)
2924
- [Configuring Score-P in Jupyter](#configuring-score-p-in-jupyter)
3025
- [Multi-Cell Mode](#multi-cell-mode)
@@ -33,14 +28,15 @@ For binding to Score-P, the kernel uses the [Score-P Python bindings](https://gi
3328
- [Limitations](#limitations)
3429
- [Serialization Type Support](#serialization-type-support)
3530
- [Overhead](#overhead)
31+
- [Logging Configuration](#logging-configuration)
3632
- [Future Work](#future-work)
3733
- [Citing](#citing)
3834
- [Contact](#contact)
3935
- [Acknowledgments](#acknowledgments)
4036

4137
# Installation
4238

43-
To install the kernel and required dependencies for supporting the monitoring features:
39+
To install the kernel and required dependencies:
4440

4541
```
4642
pip install jumper-kernel
@@ -57,7 +53,6 @@ The kernel will then be installed in your active python environment.
5753
You can select the kernel in Jupyter as `jumper`.
5854

5955
**For using the Score-P features of the kernel you need a proper Score-P installation.**
60-
Note: this is not required for the monitoring feature of system metrics.
6156

6257
```
6358
pip install scorep
@@ -72,58 +67,6 @@ From the Score-P Python bindings:
7267

7368
# Usage
7469

75-
## Monitoring
76-
77-
Every cell that is executed will be monitored by a parallel running process that collects system metrics for CPU, Memory, IO and if available GPU. Besides that, Jumper forwards the execution of that code to the default Python kernel.
78-
79-
The frequency for performance monitoring can be set via the `JUMPER_REPORT_FREQUENCY`environment variable.
80-
81-
```
82-
%env JUMPER_REPORT_FREQUENCY=2
83-
```
84-
85-
Additionally, the number of reports required to store performance data can be defined by the `JUMPER_REPORTS_MIN` environment variable.
86-
87-
```
88-
%env JUMPER_REPORTS_MIN=2
89-
```
90-
91-
The performance data is recorded in-memory and the kernel provides several magic commands to display and interact with the data:
92-
93-
94-
![](doc/code_history.png)
95-
96-
`%%display_code_history`
97-
98-
Shows the history of the code of monitored cells with index and timestamp.
99-
100-
`%%display_code_for_index`
101-
102-
Shows the code for the cell of the selected index.
103-
104-
105-
![](doc/monitoring.gif)
106-
107-
`%%display_graph_for_last`
108-
109-
Shows the performance display for the last monitored cell.
110-
111-
`%%display_graph_for_index [index]`
112-
113-
Shows the performance display for the cell of the selected index.
114-
115-
`%%display_graph_for_all`
116-
117-
Shows the accumulated performance display for all monitored cells.
118-
119-
`%%perfdata_to_variable [varname]`
120-
121-
Exports the performance data to a variable
122-
123-
`%%perfdata_to_json [filename]`
124-
125-
Exports the performance data and the code to json files.
126-
12770
## Score-P Instrumentation
12871

12972
### Configuring Score-P in Jupyter
@@ -228,8 +171,6 @@ Stops the marking process and writes the marked cells in a Python script. Additi
228171

229172
# Presentation of Performance Data
230173

231-
For the monitoring data, use the build-in magic commands or build your own visualizations after exporting the data to a variable or json via the introduced magic commands.
232-
233174
To inspect the Score-P collected performance data, use tools as Vampir (Trace) or Cube (Profile).
234175

235176
# Limitations
@@ -249,14 +190,11 @@ When dealing with big data structures, there might be a big runtime overhead at
249190
## Logging Configuration
250191
To adjust logging and obtain more detailed output about the behavior of the JUmPER kernel, refer to the `src/logging_config.py` file.
251192

252-
This file contains configuration options for controlling the verbosity, format, and destination of log messages. You can customize it to suit your debugging or monitoring needs.
193+
This file contains configuration options for controlling the verbosity, format, and destination of log messages. You can customize it to suit your debugging needs.
253194

254195
# Future Work
255196

256-
The kernel is still under development. The following is on the agenda:
257-
258-
- Provide perfmonitors for multi node setups
259-
- Config for default perfmonitor to define collected metrics
197+
The kernel is still under development.
260198

261199
PRs are welcome.
262200

examples/ExampleMonitoring.ipynb

Lines changed: 0 additions & 824 deletions
This file was deleted.

pyproject.toml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ version='1.1.1'
1111
authors=[
1212
{name='Elias Werner',email='elias.werner@tu-dresden.de'},
1313
]
14-
description='This is a Jupyter Python Kernel for performance engineering. Beside performance data as CPU, GPU, memory utilization it supports performance data recording with Score-P.'
14+
description='This is a Jupyter Python Kernel for Score-P instrumentation. It supports performance data recording with Score-P for fine-grained performance analysis.'
1515
readme={ file='README.md', content-type="text/markdown"}
1616
license={ file="LICENSE" }
1717
requires-python = ">=3.8"
@@ -21,15 +21,9 @@ classifiers=[
2121

2222
dependencies = [
2323
"ipykernel",
24-
"ipywidgets",
25-
"ipympl",
2624
"jupyter-client",
2725
"astunparse",
28-
"dill",
29-
"itables",
30-
"matplotlib",
31-
"pandas",
32-
"pynvml" # we need that only for Nvidia GPU systems
26+
"dill"
3327
]
3428

3529
[project.urls]

0 commit comments

Comments
 (0)