Skip to content

Commit fb6ea8c

Browse files
committed
quick parallelism for tracywidomlis
1 parent 3949d43 commit fb6ea8c

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

demos/book/2/tracywidomlis.jl

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,27 @@ n = 6^6 # length of permutations
1111
dx = 1/6 # bin size
1212

1313
## Experiment
14-
include("patiencesort.jl")
14+
require("patiencesort.jl")
1515
function tracywidomlis(t, n, dx)
16-
v = zeros(t) # samples
17-
for i=1:t
18-
v[i] = patiencesort(randperm(n))
19-
end
16+
## single processor: 1x speed
17+
#v = [patiencesort(randperm(n)) for i = 1:t]
18+
19+
## simple parallelism: Nx speed * 130%
20+
v = pmap((i)->patiencesort(randperm(n)), 1:t)
21+
22+
## maximum parallelism: Nx speed
23+
#grouped = floor(t/(nprocs()-2))
24+
#println(grouped)
25+
#v = vcat(pmap((i)->[patiencesort(randperm(n)) for j = 1:grouped], 1:t/grouped)...)
26+
2027
w = (v-2sqrt(n))/n^(1/6)
2128
return hist(w, -5:dx:2)
2229
end
23-
grid, count = tracywidomlis(t, n, dx)
30+
@time grid, count = tracywidomlis(t, n, dx)
2431

2532
## Plot
33+
using Winston
34+
p = FramedPlot()
2635
h = Histogram(count/(t*dx), step(grid))
2736
h.x0 = first(grid)
2837
include("../1/tracywidom.jl")

demos/book/2/unitarylis.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,4 @@ function unitarylis(t, n, k)
2727
return (z, c)
2828
end
2929

30-
unitarylis(t, n, k)
30+
println(unitarylis(t, n, k))

0 commit comments

Comments
 (0)