server_scripts 0.1.3.1 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|