1
- [ ![ Build Status] ( https://travis-ci.org/UIUC-PPL/projections.svg?branch=master )] ( https://travis-ci.org/UIUC-PPL/projections )
1
+ # Projections
2
+
3
+ ![ Projections CI] ( https://github.com/UIUC-PPL/projections/workflows/Projections%20CI/badge.svg?event=push )
4
+ [ ![ Documentation Status] ( https://readthedocs.org/projects/charm/badge/?version=latest )] ( https://charm.readthedocs.io/en/latest/projections/manual.html )
5
+ [ ![ DOI] ( https://zenodo.org/badge/86751036.svg )] ( https://zenodo.org/badge/latestdoi/86751036 )
6
+
2
7
3
8
Projections is a tool to visusalize execution traces of Charm++ and AMPI applications.
4
9
5
- # Compiling Projections
10
+ ## Compiling Projections
6
11
7
12
1 ) Make sure the JDK commands ` java ` , ` javac ` and ` jar `
8
- are in your path. You should use at least Java version 1.6 ,
13
+ are in your path. You should use at least Java version 8 ,
9
14
and your java and javac should be of the same version.
10
15
You also need [ ` gradle ` ] ( https://gradle.org/ ) and, optionally,
11
16
the GNU tool ` make ` .
@@ -21,11 +26,11 @@ Projections is a tool to visusalize execution traces of Charm++ and AMPI applica
21
26
` projections.jar ` : archive of all the java and image files
22
27
23
28
24
- # Running Projections
29
+ ## Running Projections
25
30
26
31
Run ` $ ./bin/projections ` from the root of the Projections directory.
27
32
28
- # Using Projections
33
+ ## Using Projections
29
34
30
35
Projections is a visualization tool to help you understand and analyze what it
31
36
happening in your parallel (Charm++) program. To use Projections, you first
73
78
18 . Streaming CCS
74
79
19 . Memory Usage
75
80
76
- ## Tool descriptions
81
+ ### Tool descriptions
77
82
78
- ### 1. Timelines
83
+ #### 1. Timelines
79
84
80
85
The Timelines window lets you look at what a specific processor is doing at
81
86
each moment of the program.
@@ -183,7 +188,7 @@ The Timeline Window consists of two parts:
183
188
into the selected area or reload the selected area.
184
189
185
190
186
- ### 2. Usage Profile:
191
+ #### 2. Usage Profile:
187
192
188
193
The Usage Profile window lets you see percentage-wise what each processor
189
194
spends its time on during a specified period.
@@ -207,23 +212,23 @@ portion of the bar, a pop-up window will appear telling you the name of the
207
212
item, what percent of the usage it has, and the processor it is on.
208
213
209
214
210
- ### 3. Communication Per Processor:
215
+ #### 3. Communication Per Processor:
211
216
212
217
This tool shows communication over the interval per selected
213
218
PE. This view is in the processor domain. It can show the number of
214
219
messages or bytes sent or received, depending on the option
215
220
selected at the bottom of the window.
216
221
217
222
218
- ### 4. Communication Over Time:
223
+ #### 4. Communication Over Time:
219
224
220
225
This tool shows communication over time across all selected PEs.
221
226
This view is in the time domain. It can show the number of messages
222
227
or bytes sent or received, depending on the option selected at the
223
228
bottom of the window.
224
229
225
230
226
- ### 5. Call Table:
231
+ #### 5. Call Table:
227
232
228
233
This tool shows all the entry methods invoked by other entry
229
234
methods. The left aligned entry method name indicates the current
@@ -234,22 +239,22 @@ or the number of total messages received, bytes received, and
234
239
statistics on the received bytes, respectively.
235
240
236
241
237
- ### 6. View Log Files:
242
+ #### 6. View Log Files:
238
243
239
244
This tool shows raw log files for the selected PEs and time
240
245
interval. The log files are parsed by Projections and event types,
241
246
entry method names, etc. are printed rather than the raw integers
242
247
of the actual logs.
243
248
244
249
245
- ### 7. Histograms:
250
+ #### 7. Histograms:
246
251
247
252
This tool creates histograms for various properties of the program,
248
253
execution time, accumulated execution time, message size, and idle
249
254
percentage.
250
255
251
256
252
- ### 8. Overview:
257
+ #### 8. Overview:
253
258
254
259
This tool shows a high level overview of execution across the
255
260
selected PEs and time interval. It displays a dense, quantized view
@@ -258,7 +263,7 @@ or utilization. Essentially, it provides a coarser view of the
258
263
same information as Timeline (see #1 ).
259
264
260
265
261
- ### 9. Animations:
266
+ #### 9. Animations:
262
267
263
268
This window animates the processor usage by displaying
264
269
different colors for different amount of usage.
@@ -267,7 +272,7 @@ The left box allows you to select the real time between frames;
267
272
the right box the processor time between frames.
268
273
269
274
270
- ### 10. Time Profile:
275
+ #### 10. Time Profile:
271
276
272
277
This tool shows execution across the selected PEs and time
273
278
interval. This view is in the time domain. This tool shows a high
@@ -278,71 +283,71 @@ Essentially, it provides a coarser view of the same information as
278
283
Timeline (see #1 ).
279
284
280
285
281
- ### 11. Performance Counters:
286
+ #### 11. Performance Counters:
282
287
283
288
This tool shows the values of performance counters per entry point
284
289
and PE. This option is disabled unless Charm++ was compiled with
285
290
support for PAPI counters.
286
291
287
292
288
- ### 12. User Events:
293
+ #### 12. User Events:
289
294
290
295
This tool shows the summation of bracketed user events per PE
291
296
across the selected PEs and time interval.
292
297
293
298
294
- ### 13. User Stats Over Time:
299
+ #### 13. User Stats Over Time:
295
300
296
301
This tool shows the values of user stats over the program execution
297
302
across the selected PEs and time interval. This view is in the
298
303
time domain.
299
304
300
305
301
- ### 14. User Stats Per Processor:
306
+ #### 14. User Stats Per Processor:
302
307
303
308
This tool shows the values of user stats per PE
304
309
across the selected PEs and time interval. This view is in the
305
310
PE domain.
306
311
307
312
308
- ### 15. Extrema Analysis:
313
+ #### 15. Extrema Analysis:
309
314
310
315
This tool identifies extreme clusters of particular attributes
311
316
through the execution. The attribute, activity, extrema threshold,
312
317
and number of clusters are customizable when selecting a time range.
313
318
314
319
315
- ### 16. Multirun Analysis:
320
+ #### 16. Multirun Analysis:
316
321
317
322
This tool compares multiple executions of a program to each other,
318
323
showing how time spent in entry methods changes across the
319
324
execution. Currently, this view only works with summary data due to
320
325
memory constraints.
321
326
322
327
323
- ### 17. Noise Miner:
328
+ #### 17. Noise Miner:
324
329
325
330
This tool identifies abnormally long entry methods to detect
326
331
symptoms consistent with computational noise. Long events are
327
332
filtered and clustered to provide a summary of such occurrences.
328
333
329
334
330
- ### 18. Streaming CCS:
335
+ #### 18. Streaming CCS:
331
336
332
337
This tool uses the Converse Client Server feature of Charm++ to
333
338
stream performance data from running programs. To use it, the
334
339
Charm++ program must be compiled with ` -tracemode utilization ` , and
335
340
executed with ` ++server ++server-port <port number> ` .
336
341
337
342
338
- ### 19. Memory Usage:
343
+ #### 19. Memory Usage:
339
344
340
345
This tool provides a view of memory utilization in the application
341
346
when it is linked with the memory tracing module.
342
347
343
348
344
349
345
- # Notes
350
+ ## Notes
346
351
347
352
Charts in some tools are produced by JFreeChart.
348
353
Image output is performed by FreeHEP.
0 commit comments