Skip to content

Commit 8e41a1a

Browse files
committed
Add extrema implementation
Cleanup imports
1 parent 8f5af29 commit 8e41a1a

File tree

3 files changed

+15
-6
lines changed

3 files changed

+15
-6
lines changed

src/DistributedArrays.jl

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
1-
__precompile__(true)
1+
__precompile__()
22

33
module DistributedArrays
44

5-
using Primes
6-
using Primes: factor
7-
85
importall Base
96
import Base.Callable
107
import Base.BLAS: axpy!
118

9+
using Primes
10+
using Primes: factor
11+
1212
# DArray exports
13-
export (.+), (.-), (.*), (./), (.%), (.<<), (.>>), div, mod, rem, (&), (|), ($)
1413
export DArray, SubDArray, SubOrDArray, @DArray
15-
export dzeros, dones, dfill, drand, drandn, distribute, localpart, localindexes, ppeval, samedist
14+
export dzeros, dones, dfill, drand, drandn, distribute, localpart, localindexes, ppeval
1615

1716
# non-array distributed data
1817
export ddata, gather

src/mapreduce.jl

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,15 @@ for (fn, fr) in ((:sum, :+),
150150
@eval (Base.$fn)(d::DArray) = reduce($fr, d)
151151
end
152152

153+
function Base.extrema(d::DArray)
154+
r = asyncmap(procs(d)) do p
155+
remotecall_fetch(p) do
156+
extrema(localpart(d))
157+
end
158+
end
159+
return reduce((t,s) -> (min(t[1], s[1]), max(t[2], s[2])), r)
160+
end
161+
153162
# mapreduce like
154163
for (fn, fr1, fr2) in ((:maxabs, :abs, :max),
155164
(:minabs, :abs, :min),

test/darray.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,6 +368,7 @@ check_leaks()
368368
@test minimum(abs, d) == minimum(abs, a)
369369
@test sum(abs, d) == sum(abs, a)
370370
@test sum(abs2, d) == sum(abs2, a)
371+
@test extrema(d) == extrema(a)
371372
close(d)
372373
end
373374

0 commit comments

Comments
 (0)