Skip to content

Commit e2ef9dc

Browse files
authored
Merge branch 'main' into review/anirudh_manoj/2869
2 parents 3de8018 + 03a5d7d commit e2ef9dc

File tree

82 files changed

+1464
-12939
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+1464
-12939
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @rbuch

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Environment (please complete the following information):**
27+
- OS: [e.g. Linux, Windows]
28+
- Projections Version
29+
- Java Version
30+
- Charm++ Version
31+
32+
**Additional context**
33+
Add any other context about the problem here.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered, if applicable.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.

.github/workflows/test.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
name: Projections CI
2+
3+
on:
4+
pull_request: {}
5+
push:
6+
branches:
7+
- main
8+
schedule:
9+
- cron: '5 0 * * *'
10+
11+
jobs:
12+
build:
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
matrix:
16+
java: [8, 11, 15]
17+
os: [ubuntu-latest, macos-latest]
18+
steps:
19+
- uses: actions/checkout@v2
20+
- name: Set up JDK
21+
uses: actions/setup-java@v1
22+
with:
23+
java-version: ${{ matrix.java }}
24+
- name: Build with Gradle
25+
run: gradle build
26+
- name: Run test
27+
if: ${{ matrix.os == 'ubuntu-latest' }}
28+
run: xvfb-run -e /dev/stdout -a make test

.travis.yml

Lines changed: 0 additions & 1 deletion
This file was deleted.

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@ clean:
1111

1212
run: bin/projections.jar
1313
bin/projections test/hello.sts
14+
15+
test: bin/projections.jar
16+
bin/projections --exit test/hello.sts

README.md

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
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+
27

38
Projections is a tool to visusalize execution traces of Charm++ and AMPI applications.
49

5-
# Compiling Projections
10+
## Compiling Projections
611

712
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,
914
and your java and javac should be of the same version.
1015
You also need [`gradle`](https://gradle.org/) and, optionally,
1116
the GNU tool `make`.
@@ -21,11 +26,11 @@ Projections is a tool to visusalize execution traces of Charm++ and AMPI applica
2126
`projections.jar` : archive of all the java and image files
2227

2328

24-
# Running Projections
29+
## Running Projections
2530

2631
Run `$ ./bin/projections` from the root of the Projections directory.
2732

28-
# Using Projections
33+
## Using Projections
2934

3035
Projections is a visualization tool to help you understand and analyze what it
3136
happening in your parallel (Charm++) program. To use Projections, you first
@@ -73,9 +78,9 @@ data:
7378
18. Streaming CCS
7479
19. Memory Usage
7580

76-
## Tool descriptions
81+
### Tool descriptions
7782

78-
### 1. Timelines
83+
#### 1. Timelines
7984

8085
The Timelines window lets you look at what a specific processor is doing at
8186
each moment of the program.
@@ -183,7 +188,7 @@ The Timeline Window consists of two parts:
183188
into the selected area or reload the selected area.
184189

185190

186-
### 2. Usage Profile:
191+
#### 2. Usage Profile:
187192

188193
The Usage Profile window lets you see percentage-wise what each processor
189194
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
207212
item, what percent of the usage it has, and the processor it is on.
208213

209214

210-
### 3. Communication Per Processor:
215+
#### 3. Communication Per Processor:
211216

212217
This tool shows communication over the interval per selected
213218
PE. This view is in the processor domain. It can show the number of
214219
messages or bytes sent or received, depending on the option
215220
selected at the bottom of the window.
216221

217222

218-
### 4. Communication Over Time:
223+
#### 4. Communication Over Time:
219224

220225
This tool shows communication over time across all selected PEs.
221226
This view is in the time domain. It can show the number of messages
222227
or bytes sent or received, depending on the option selected at the
223228
bottom of the window.
224229

225230

226-
### 5. Call Table:
231+
#### 5. Call Table:
227232

228233
This tool shows all the entry methods invoked by other entry
229234
methods. The left aligned entry method name indicates the current
@@ -234,22 +239,22 @@ or the number of total messages received, bytes received, and
234239
statistics on the received bytes, respectively.
235240

236241

237-
### 6. View Log Files:
242+
#### 6. View Log Files:
238243

239244
This tool shows raw log files for the selected PEs and time
240245
interval. The log files are parsed by Projections and event types,
241246
entry method names, etc. are printed rather than the raw integers
242247
of the actual logs.
243248

244249

245-
### 7. Histograms:
250+
#### 7. Histograms:
246251

247252
This tool creates histograms for various properties of the program,
248253
execution time, accumulated execution time, message size, and idle
249254
percentage.
250255

251256

252-
### 8. Overview:
257+
#### 8. Overview:
253258

254259
This tool shows a high level overview of execution across the
255260
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
258263
same information as Timeline (see #1).
259264

260265

261-
### 9. Animations:
266+
#### 9. Animations:
262267

263268
This window animates the processor usage by displaying
264269
different colors for different amount of usage.
@@ -267,7 +272,7 @@ The left box allows you to select the real time between frames;
267272
the right box the processor time between frames.
268273

269274

270-
### 10. Time Profile:
275+
#### 10. Time Profile:
271276

272277
This tool shows execution across the selected PEs and time
273278
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
278283
Timeline (see #1).
279284

280285

281-
### 11. Performance Counters:
286+
#### 11. Performance Counters:
282287

283288
This tool shows the values of performance counters per entry point
284289
and PE. This option is disabled unless Charm++ was compiled with
285290
support for PAPI counters.
286291

287292

288-
### 12. User Events:
293+
#### 12. User Events:
289294

290295
This tool shows the summation of bracketed user events per PE
291296
across the selected PEs and time interval.
292297

293298

294-
### 13. User Stats Over Time:
299+
#### 13. User Stats Over Time:
295300

296301
This tool shows the values of user stats over the program execution
297302
across the selected PEs and time interval. This view is in the
298303
time domain.
299304

300305

301-
### 14. User Stats Per Processor:
306+
#### 14. User Stats Per Processor:
302307

303308
This tool shows the values of user stats per PE
304309
across the selected PEs and time interval. This view is in the
305310
PE domain.
306311

307312

308-
### 15. Extrema Analysis:
313+
#### 15. Extrema Analysis:
309314

310315
This tool identifies extreme clusters of particular attributes
311316
through the execution. The attribute, activity, extrema threshold,
312317
and number of clusters are customizable when selecting a time range.
313318

314319

315-
### 16. Multirun Analysis:
320+
#### 16. Multirun Analysis:
316321

317322
This tool compares multiple executions of a program to each other,
318323
showing how time spent in entry methods changes across the
319324
execution. Currently, this view only works with summary data due to
320325
memory constraints.
321326

322327

323-
### 17. Noise Miner:
328+
#### 17. Noise Miner:
324329

325330
This tool identifies abnormally long entry methods to detect
326331
symptoms consistent with computational noise. Long events are
327332
filtered and clustered to provide a summary of such occurrences.
328333

329334

330-
### 18. Streaming CCS:
335+
#### 18. Streaming CCS:
331336

332337
This tool uses the Converse Client Server feature of Charm++ to
333338
stream performance data from running programs. To use it, the
334339
Charm++ program must be compiled with `-tracemode utilization`, and
335340
executed with `++server ++server-port <port number>`.
336341

337342

338-
### 19. Memory Usage:
343+
#### 19. Memory Usage:
339344

340345
This tool provides a view of memory utilization in the application
341346
when it is linked with the memory tracing module.
342347

343348

344349

345-
# Notes
350+
## Notes
346351

347352
Charts in some tools are produced by JFreeChart.
348353
Image output is performed by FreeHEP.

bin/projections

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,24 @@
1-
#!/bin/sh
1+
#!/bin/bash
22

33
jarpath="`dirname $0`/projections.jar"
44

5+
if [[ ! -f $jarpath ]]; then
6+
echo "'$jarpath' is missing. Did you run 'make'?"
7+
exit 1
8+
fi
9+
510
if test -x /usr/bin/cygpath
6-
then
11+
then
712
if test "`uname -o`" = "Cygwin"
813
then
914
jarpath=`/usr/bin/cygpath -w -a $jarpath`
10-
fi
15+
fi
16+
fi
17+
18+
IS_WAYLAND=`env | grep -i wayland`
19+
if [ -n "$IS_WAYLAND" ]
20+
then
21+
export _JAVA_AWT_WM_NONREPARENTING=1
1122
fi
1223

1324
#java -Xms4G -Xmx4G -ms4G -mx4G -XX:+UseParallelGC -classpath $jarpath projections.analysis.ProjMain $*

build.gradle

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,21 @@ repositories {
66
}
77

88
dependencies {
9-
compile 'org.freehep:freehep-graphicsbase:2.4'
10-
compile 'org.freehep:freehep-graphics2d:2.4'
11-
compile 'org.freehep:freehep-graphicsio:2.4'
12-
compile 'org.freehep:freehep-graphicsio-pdf:2.4'
13-
compile 'org.freehep:freehep-graphicsio-svg:2.4'
14-
compile 'org.freehep:freehep-graphicsio-ps:2.4'
15-
compile 'org.freehep:freehep-vectorgraphics:2.4'
16-
17-
compile 'org.jfree:jcommon:1.0.23'
18-
compile 'org.jfree:jfreechart:1.0.19'
9+
implementation 'org.freehep:freehep-graphicsbase:2.4'
10+
implementation 'org.freehep:freehep-graphics2d:2.4'
11+
implementation 'org.freehep:freehep-graphicsio:2.4'
12+
implementation 'org.freehep:freehep-graphicsio-pdf:2.4'
13+
implementation 'org.freehep:freehep-graphicsio-svg:2.4'
14+
implementation 'org.freehep:freehep-graphicsio-ps:2.4'
15+
implementation 'org.freehep:freehep-vectorgraphics:2.4'
16+
17+
implementation 'org.jfree:jfreechart:1.5.0'
1918
}
2019

2120
mainClassName = 'projections.analysis.ProjMain'
2221
sourceCompatibility = 1.8
2322
targetCompatibility = 1.8
24-
version = '6.8.0'
23+
version = '6.10.0'
2524

2625
sourceSets {
2726
main {
@@ -34,10 +33,15 @@ sourceSets {
3433
task fatJar(type: Jar) {
3534
manifest {
3635
attributes 'Implementation-Title': 'Projections',
37-
'Implementation-Version': version
36+
'Implementation-Version': project.version
37+
}
38+
project.archivesBaseName = 'projections-all'
39+
duplicatesStrategy = DuplicatesStrategy.INCLUDE
40+
41+
from {
42+
configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
3843
}
39-
baseName = 'projections-all'
40-
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
44+
4145
into ('projections/images') {
4246
from('src/projections/images') {
4347
include '*'
@@ -58,3 +62,4 @@ task copyJarToBin(type: Copy) {
5862
into 'bin/'
5963
rename 'projections-all-' + version + '.jar', 'projections.jar'
6064
}
65+

0 commit comments

Comments
 (0)