#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

#52 in Concurrency

Download history 129/week @ 2019-01-22 98/week @ 2019-01-29 135/week @ 2019-02-05 188/week @ 2019-02-12 133/week @ 2019-02-19 243/week @ 2019-02-26 171/week @ 2019-03-05 155/week @ 2019-03-12 350/week @ 2019-03-19 541/week @ 2019-03-26 772/week @ 2019-04-02 463/week @ 2019-04-09 337/week @ 2019-04-16 253/week @ 2019-04-23 203/week @ 2019-04-30

556 downloads per month
Used in 13 crates (7 directly)

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

~2.5MB
~44K SLoC