#data-structure #multidimensional #parallel #concurrent

ndarray-parallel

Parallelization for ndarray using rayon. (Deprecated - use ndarray with rayon directly.)

12 releases (breaking)

Uses old Rust 2015

0.9.1 Sep 23, 2019
0.9.0 Sep 1, 2018
0.8.0 Feb 15, 2018
0.7.0 Dec 29, 2017
0.2.0 Mar 2, 2017

#16 in #multidimensional

Download history 84/week @ 2021-04-04 97/week @ 2021-04-11 51/week @ 2021-04-18 87/week @ 2021-04-25 63/week @ 2021-05-02 36/week @ 2021-05-09 60/week @ 2021-05-16 59/week @ 2021-05-23 87/week @ 2021-05-30 100/week @ 2021-06-06 64/week @ 2021-06-13 34/week @ 2021-06-20 47/week @ 2021-06-27 62/week @ 2021-07-04 57/week @ 2021-07-11 58/week @ 2021-07-18

321 downloads per month
Used in less than 7 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.1
    • Mark crate as deprecated, replaced by direct support in ndarray.
  • 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

~3MB
~54K SLoC