diff --git a/.github/workflows/CI-CPU.yml b/.github/workflows/CI-CPU.yml index 4efc362..a9848a3 100644 --- a/.github/workflows/CI-CPU.yml +++ b/.github/workflows/CI-CPU.yml @@ -31,15 +31,27 @@ jobs: - ubuntu-latest - macOS-latest - windows-latest + - macOS-13 arch: - x64 - x86 + - aarch64 env: - JULIA_NUM_THREADS: 1 - JULIA_NUM_THREADS: 2 exclude: + - os: macOS-13 + arch: x86 + - os: macOS-13 + arch: aarch64 - os: macOS-latest arch: x86 + - os: macOS-latest + arch: x64 + - os: ubuntu-latest + arch: aarch64 + - os: windows-latest + arch: aarch64 steps: - uses: actions/checkout@v4 - uses: julia-actions/setup-julia@v2 @@ -49,6 +61,8 @@ jobs: - uses: julia-actions/cache@v2 - uses: julia-actions/julia-buildpkg@v1 - uses: julia-actions/julia-runtest@v1 + env: + JULIA_NUM_THREADS: ${{ matrix.env.JULIA_NUM_THREADS }} docs: name: Documentation runs-on: ubuntu-latest @@ -58,4 +72,4 @@ jobs: - uses: julia-actions/julia-docdeploy@latest env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} \ No newline at end of file + DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }} diff --git a/src/reduce/reduce.jl b/src/reduce/reduce.jl index 88e535b..06d775b 100644 --- a/src/reduce/reduce.jl +++ b/src/reduce/reduce.jl @@ -274,12 +274,12 @@ function _mapreduce_impl( if num_tasks <= 1 return Base.mapreduce(f, op, src; init=init) end - return OMT.tmapreduce( - f, op, src, init=init, + return op(init, OMT.tmapreduce( + f, op, src; init=neutral, scheduler=scheduler, outputtype=typeof(init), nchunks=num_tasks, - ) + )) else # FIXME: waiting on OhMyThreads.jl for n-dimensional reduction return Base.mapreduce(f, op, src; init=init, dims=dims)