#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

#62 in Data structures

Download history 48/week @ 2018-06-09 325/week @ 2018-06-16 88/week @ 2018-06-23 140/week @ 2018-06-30 57/week @ 2018-07-07 91/week @ 2018-07-14 113/week @ 2018-07-21 157/week @ 2018-07-28 303/week @ 2018-08-04 96/week @ 2018-08-11 108/week @ 2018-08-18 93/week @ 2018-08-25 49/week @ 2018-09-01

556 downloads per month
Used in 2 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
~40K SLoC