Skip to content

Commit 9e2fd27

Browse files
committed
Merge pull request #491 from enthought/feature/release-0.4-notes
Draft release notes for 0.4.
2 parents dae21e4 + f9c90d6 commit 9e2fd27

File tree

1 file changed

+126
-0
lines changed

1 file changed

+126
-0
lines changed
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
==============================================================================
2+
DistArray 0.4 development release
3+
==============================================================================
4+
5+
**Documentation:** http://distarray.readthedocs.org
6+
7+
**License:** Three-clause BSD
8+
9+
**Python versions:** 2.7 and 3.3
10+
11+
**OS support:** \*nix and Mac OS X
12+
13+
What is DistArray?
14+
------------------
15+
16+
DistArray aims to bring the strengths of NumPy to data-parallel
17+
high-performance computing. It provides distributed multi-dimensional
18+
NumPy-like arrays and distributed ufuncs, distributed IO capabilities, and can
19+
integrate with external distributed libraries like Trilinos. DistArray works
20+
with NumPy and builds on top of it in a flexible and natural way.
21+
22+
0.4 Release
23+
-----------
24+
25+
This is the third development release.
26+
27+
Noteworthy improvements in 0.4 include:
28+
29+
* basic slicing support;
30+
* significant performance enhancements;
31+
* reduction methods now support boolean arrays;
32+
* an IPython notebook that demos basic functionality; and
33+
* many bug fixes, API improvements, and refactorings.
34+
35+
DistArray is nearly ready for real-world use. The project is evolving rapidly
36+
and input from the larger scientific-Python community is very valuable and
37+
helps drive development.
38+
39+
Existing features
40+
-----------------
41+
42+
DistArray:
43+
44+
* has a client-engine (or master-worker) process design -- data resides on the
45+
worker processes, and commands are initiated from master;
46+
* allows full control over what is executed on the worker processes and
47+
integrates transparently with the master process;
48+
* allows direct communication between workers, bypassing the master process
49+
for scalability;
50+
* integrates with IPython.parallel for interactive creation and exploration of
51+
distributed data;
52+
* supports distributed ufuncs (currently without broadcasting);
53+
* builds on and leverages MPI via MPI4Py in a transparent and user-friendly
54+
way;
55+
* supports NumPy-like multidimensional arrays;
56+
* has basic support for unstructured arrays;
57+
* supports user-controllable array distributions across workers (block,
58+
cyclic, block-cyclic, and unstructured) on a per-axis basis;
59+
* has a straightforward API to control how an array is distributed;
60+
* has basic plotting support for visualization of array distributions;
61+
* separates the array’s distribution from the array’s data -- useful for
62+
slicing, reductions, redistribution, broadcasting, and other operations;
63+
* implements distributed random arrays;
64+
* supports ``.npy``-like flat-file IO and hdf5 parallel IO (via ``h5py``);
65+
leverages MPI-based IO parallelism in an easy-to-use and transparent way;
66+
and
67+
* supports the distributed array protocol [protocol]_, which allows
68+
independently developed parallel libraries to share distributed arrays
69+
without copying, analogous to the PEP-3118 new buffer protocol.
70+
71+
Planned features and roadmap
72+
----------------------------
73+
74+
Near-term features and improvements include:
75+
76+
* MPI-only communication for performance and deployment on clusters and
77+
supercomputers;
78+
* array re-distribution capabilities;
79+
* interoperation with Trilinos [Trilinos]_;
80+
* expanded tutorials, examples, and other introductory material; and
81+
* distributed broadcasting support.
82+
83+
The longer-term roadmap includes:
84+
85+
* Lazy evaluation and deferred computation for latency hiding;
86+
* Integration with other packages [petsc]_ that subscribe to the distributed
87+
array protocol [protocol]_;
88+
* Distributed fancy indexing;
89+
* Out-of-core computations;
90+
* Support for distributed sorting and other non-trivial distributed
91+
algorithms; and
92+
* End-user control over communication and temporary array creation, and other
93+
performance aspects of distributed computations.
94+
95+
History and funding
96+
-------------------
97+
98+
Brian Granger started DistArray as a NASA-funded SBIR project in 2008.
99+
Enthought picked it up as part of a DOE Phase II SBIR [SBIR]_ to provide a
100+
generally useful distributed array package. It builds on NumPy, MPI, MPI4Py,
101+
IPython, IPython.parallel, and interfaces with the Trilinos suite of
102+
distributed HPC solvers (via PyTrilinos [Trilinos]_).
103+
104+
This material is based upon work supported by the Department of Energy under
105+
Award Number DE-SC0007699.
106+
107+
This report was prepared as an account of work sponsored by an agency of the
108+
United States Government. Neither the United States Government nor any agency
109+
thereof, nor any of their employees, makes any warranty, express or implied,
110+
or assumes any legal liability or responsibility for the accuracy,
111+
completeness, or usefulness of any information, apparatus, product, or process
112+
disclosed, or represents that its use would not infringe privately owned
113+
rights. Reference herein to any specific commercial product, process, or
114+
service by trade name, trademark, manufacturer, or otherwise does not
115+
necessarily constitute or imply its endorsement, recommendation, or favoring
116+
by the United States Government or any agency thereof. The views and opinions
117+
of authors expressed herein do not necessarily state or reflect those of the
118+
United States Government or any agency thereof.
119+
120+
121+
.. [protocol] http://distributed-array-protocol.readthedocs.org/en/rel-0.10.0/
122+
.. [Trilinos] http://trilinos.org/
123+
.. [petsc] http://www.mcs.anl.gov/petsc/
124+
.. [SBIR] http://www.sbir.gov/sbirsearch/detail/410257
125+
126+
.. vim:spell

0 commit comments

Comments
 (0)