server_scripts 0.1.3.1 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +16 -0
- data/bin/mem_monitor +0 -0
- data/lib/server_scripts/parser.rb +1 -0
- data/lib/server_scripts/parser/cubex.rb +42 -0
- data/lib/server_scripts/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0fd30e55721d13278b7d47cd976a8bd047fbe33dd9ebcaf49503f40f3ed5825b
|
4
|
+
data.tar.gz: a322d390fba4a2c2d2b5b841b91006af9452ee52f53eaa20005643e30107dfd5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9dcf94781e9d5ceb4497dceeeaba15dcc07825ed69cac0212787d2e1c6413945fbe1c042791f4a4061d42c545b3868ddbd4eb069c4886bbe77595f1842716d36
|
7
|
+
data.tar.gz: 99ce228f943d2bd3718e015003577b807918b2ff783ecbbe15a5ab5876cee5346672d59f231dee2de98139a9bf4890b01effa2edf1ce321e00be3b334bd50f07
|
data/README.md
CHANGED
@@ -162,3 +162,19 @@ puts parser.total_overhead_time
|
|
162
162
|
puts parser.time(event: :total_time, proc_id: 0, worker_id: 4)
|
163
163
|
puts parser.proc_time event: :exec_time, proc_id: 2
|
164
164
|
```
|
165
|
+
|
166
|
+
## CUBEX profiles
|
167
|
+
|
168
|
+
Parse data from profiles generated by scorep in `.cubex` file format.
|
169
|
+
|
170
|
+
### Usage for getting performance metrics
|
171
|
+
|
172
|
+
Use the `Parser::Cubex` class and provide it with a folder name. The folder should contain a `profile.cubex` file
|
173
|
+
that will be parsed for the output. Then use the `parse` method for obtaining various perf counters for any event:
|
174
|
+
|
175
|
+
``` ruby
|
176
|
+
parser = Parser::Cubex.new("test/artifacts/cubex")
|
177
|
+
puts parser.parse(counter: "PAPI_L3_TCM", event: "gemv")
|
178
|
+
```
|
179
|
+
|
180
|
+
|
data/bin/mem_monitor
CHANGED
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module ServerScripts
|
2
|
+
module Parser
|
3
|
+
class Cubex
|
4
|
+
# Supply the folder name of the cubex file. There should be a profile.cubex file
|
5
|
+
# inside this folder.
|
6
|
+
def initialize(fname)
|
7
|
+
['cube_stat', 'cube_info'].each do |cmd|
|
8
|
+
raise RuntimeError, "Must have #{cmd} installed." unless File.which(cmd)
|
9
|
+
end
|
10
|
+
@fname = "#{fname}/profile.cubex"
|
11
|
+
raise RuntimeError, "#{@fname} does not exist!" unless File.exists?(@fname)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Get the call tree of the file as a string.
|
15
|
+
def call_tree
|
16
|
+
`cube_info #{@fname}`
|
17
|
+
end
|
18
|
+
|
19
|
+
# Read the call tree and get the value for the given metric. Will return nil
|
20
|
+
# if the said metric does not exist for the given event.
|
21
|
+
def parse metric: , event:
|
22
|
+
tree = `cube_info -m #{metric} #{@fname}`
|
23
|
+
tree.each_line do |line|
|
24
|
+
if /\s+#{event}\s+/.match(line)
|
25
|
+
wo_space = line.gsub(" ", "")
|
26
|
+
value = (/\|(\d+\.?\d+?)\|/.match(wo_space)[1]).to_f
|
27
|
+
return value
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
nil
|
32
|
+
end
|
33
|
+
|
34
|
+
# Return an array of all the metrics available for the given cubex file.
|
35
|
+
def all_metrics
|
36
|
+
output = `cube_info #{@fname} -l`
|
37
|
+
output.split("\n")
|
38
|
+
end
|
39
|
+
end # class Cubex
|
40
|
+
end # module Parser
|
41
|
+
end # module ServerScripts
|
42
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: server_scripts
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sameer Deshmukh
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-04-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ptools
|
@@ -96,6 +96,7 @@ files:
|
|
96
96
|
- lib/server_scripts/memory_monitor.rb
|
97
97
|
- lib/server_scripts/node_type.rb
|
98
98
|
- lib/server_scripts/parser.rb
|
99
|
+
- lib/server_scripts/parser/cubex.rb
|
99
100
|
- lib/server_scripts/parser/itac.rb
|
100
101
|
- lib/server_scripts/parser/starpu_profile.rb
|
101
102
|
- lib/server_scripts/parser/vtune.rb
|
@@ -125,8 +126,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
126
|
- !ruby/object:Gem::Version
|
126
127
|
version: '0'
|
127
128
|
requirements: []
|
128
|
-
|
129
|
-
rubygems_version: 2.6.14
|
129
|
+
rubygems_version: 3.1.2
|
130
130
|
signing_key:
|
131
131
|
specification_version: 4
|
132
132
|
summary: Easily write scripts for submitted jobs to various machines.
|