Skip to content

Commit 17e5b2e

Browse files
authored
Merge pull request #289 from JuliaParallel/jps/storage
Add memory and storage awareness
2 parents b91acff + 239f8f4 commit 17e5b2e

20 files changed

+1028
-520
lines changed

Diff for: .buildkite/pipeline.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,22 @@
1414
arch: x86_64
1515
num_cpus: 16
1616
steps:
17-
- label: Julia 1.6
17+
- label: Julia 1.7
1818
timeout_in_minutes: 60
1919
<<: *test
2020
plugins:
2121
- JuliaCI/julia#v1:
22-
version: "1.6"
22+
version: "1.7"
2323
- JuliaCI/julia-test#v1:
2424
julia_args: "--threads=1"
2525
# - JuliaCI/julia-coverage#v1:
2626
# codecov: true
27-
- label: Julia 1.7
27+
- label: Julia 1.8
2828
timeout_in_minutes: 60
2929
<<: *test
3030
plugins:
3131
- JuliaCI/julia#v1:
32-
version: "1.7"
32+
version: "1.8"
3333
- JuliaCI/julia-test#v1:
3434
julia_args: "--threads=1"
3535
# - JuliaCI/julia-coverage#v1:
@@ -39,12 +39,12 @@ steps:
3939
<<: *test
4040
plugins:
4141
- JuliaCI/julia#v1:
42-
version: "1.8-nightly"
42+
version: "1.9-nightly"
4343
- JuliaCI/julia-test#v1:
4444
julia_args: "--threads=1"
4545
# - JuliaCI/julia-coverage#v1:
4646
# codecov: true
47-
- label: Julia 1.6 (macOS)
47+
- label: Julia 1.7 (macOS)
4848
timeout_in_minutes: 60
4949
<<: *test
5050
agents:
@@ -53,7 +53,7 @@ steps:
5353
arch: x86_64
5454
plugins:
5555
- JuliaCI/julia#v1:
56-
version: "1.6"
56+
version: "1.7"
5757
- JuliaCI/julia-test#v1:
5858
julia_args: "--threads=1"
5959
# - JuliaCI/julia-coverage#v1:

Diff for: .github/workflows/Documentation.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ jobs:
1414
- uses: actions/checkout@v2
1515
- uses: julia-actions/setup-julia@latest
1616
with:
17-
version: '1.6'
17+
version: '1.7'
1818
- name: Install dependencies
1919
run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
2020
- name: Build and deploy

Diff for: Project.toml

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ Colors = "5ae59095-9a9b-59fe-a467-6f913c188581"
77
ContextVariablesX = "6add18c4-b38d-439d-96f6-d6bc489c04c5"
88
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"
99
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
10+
MacroTools = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09"
1011
MemPool = "f9f48841-c794-520a-933b-121f7ba6ed94"
1112
Profile = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79"
1213
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
@@ -21,10 +22,10 @@ UUIDs = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
2122
[compat]
2223
Colors = "0.10, 0.11, 0.12"
2324
ContextVariablesX = "0.1"
24-
MemPool = "0.3.5, 0.4"
25+
MemPool = "0.4"
2526
Requires = "1"
2627
StatsBase = "0.28, 0.29, 0.30, 0.31, 0.32, 0.33"
27-
julia = "1.6"
28+
julia = "1.7"
2829

2930
[extras]
3031
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

Diff for: appveyor.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
environment:
22
matrix:
3-
- julia_version: 1.6
3+
- julia_version: 1.7
44
- julia_version: nightly
55

66
platform:

Diff for: benchmarks/analysis.jl

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
path = ARGS[1]
2+
start, finish = parse.(UInt64, ARGS[2:3])
3+
4+
using DataFrames, BenchmarkTools, Dagger, Serialization
5+
6+
logs = deserialize(path)["logs"]
7+
8+
"""
9+
spans(logs::DataFrame) -> DataFrame
10+
11+
Combines start and finish event pairs, and computes their timespan.
12+
"""
13+
function spans(logs)
14+
df = Any[]
15+
evs = Dict{Symbol,Dict{Any,Any}}()
16+
for log in eachrow(logs)
17+
_evs = get!(evs, log.core.category) do
18+
Dict{Any,Any}()
19+
end
20+
if log.core.kind == :finish
21+
if haskey(_evs, log.id)
22+
start = pop!(_evs, log.id)
23+
ev = merge(log, (;span=(start.core.timestamp, log.core.timestamp)))
24+
push!(df, ev)
25+
else
26+
@warn "Dropped :finish for $(log.core.category)"
27+
end
28+
elseif log.core.kind == :start
29+
_evs[log.id] = log
30+
end
31+
end
32+
DataFrame(df)
33+
end
34+
35+
# Combine, select target range, and filter out `take`
36+
tgt = subset(spans(logs), :core=>ByRow(x->start <= x.timestamp <= finish),
37+
:core=>ByRow(x->x.category != :take))
38+
39+
# Sort by largest time contribution
40+
tgt_sort = DataFrame(sort(eachrow(tgt), by=r->r.span[2] - r.span[1], rev=true))
41+
transform!(tgt_sort, :span=>ByRow(s->(s[2]-s[1]) / (1000^3))=>:span_s)
42+
println("Total: $((finish-start) / (1000^3))")
43+
foreach(println, zip(map(c->c.category, tgt_sort.core), tgt_sort.span_s))

0 commit comments

Comments
 (0)