#data-structure #multidimensional #parallel #concurrent

ndarray-parallel

Parallelization for ndarray (using rayon)

11 releases (breaking)

0.9.0 Sep 1, 2018
0.8.0 Feb 15, 2018
0.7.0 Dec 29, 2017
0.6.0 Nov 14, 2017
0.2.0 Mar 2, 2017

#58 in Data structures

Download history 34/week @ 2018-09-11 15/week @ 2018-09-18 28/week @ 2018-09-25 70/week @ 2018-10-02 54/week @ 2018-10-09 111/week @ 2018-10-16 86/week @ 2018-10-23 119/week @ 2018-10-30 172/week @ 2018-11-06 106/week @ 2018-11-13 126/week @ 2018-11-20 113/week @ 2018-11-27 61/week @ 2018-12-04

556 downloads per month
Used in 4 crates

MIT/Apache

24KB
444 lines

ndarray-parallel

ndarray-parallel integrates ndarray with rayon for simple parallelization.

Please read the API documentation here

build_status crates

Highlights

  • Parallel Zip

  • Parallel elementwise (no order) iterator

  • Parallel .axis_iter() (and _mut)

  • .par_map_inplace() for arrays.

Status and Lookout

  • Still iterating on and evolving the crate

    • A separate crate is less convenient (doesn't use rayon IntoParallelIterator trait, but a separate trait) but allows rapid iteration and we can follow the evolution of rayon's internals. This crate is double pace: For every ndarray or rayon major version, this crate goes up one major version.

  • Performance:

    • TBD. Tell me about your experience.

    • You'll need a big chunk of data (or an expensive operation per data point) to gain from parallelization.

How to use with cargo:

[dependencies]
ndarray-parallel = "0.4"

Recent Changes (ndarray-parallel)

  • 0.9.0

    • Upgrade for ndarray 0.12.0

  • 0.8.0

    • Upgrade for rayon 1.0!

  • 0.7.0

    • Upgrade for ndarray 0.11.0

  • 0.6.0

    • Upgrade for rayon 0.9.0 by @cuviper

    • Fix unused mut warning when using par_azip!()

  • 0.5.0

    • Upgrade for ndarray 0.10.0

    • Add par_azip!() macro by @msiglreith

  • 0.4.0

    • Update Rayon dependency to 0.8.2

  • 0.3.0

    • ParallelIterator for Zip, including .par_apply.

    • .par_map_inplace and .par_mav_inplace for arrays

    • Require ndarray 0.9 and rayon 0.7

    • Fix bug with array par_iter()'s .collect()

  • 0.2.0

    • Require for ndarray 0.8

  • 0.1.1

    • Clarify docs

    • Add categories

  • 0.1.0

    • Initial release

    • Elementwise parallel iterator (no order) and parallel axis iterators.

License

Dual-licensed to be compatible with the Rust project.

Licensed under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0 or the MIT license http://opensource.org/licenses/MIT, at your option. This file may not be copied, modified, or distributed except according to those terms.

Dependencies

~2MB
~42K SLoC