[yt-svn] commit/yt: ngoldbaum: Merged in xarthisius/yt (pull request #2066)
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Wed Mar 23 13:56:13 PDT 2016
1 new commit in yt:
http://link.bitbucket.org/wf/click?upn=8USRlNyft-2BCzk2l4Ywl6gDx2lD2xxoS9E7MwXb2SMR-2BXcTD42YocdnOFkyGBVHOUgUfP6N6z0V5yyT-2F6jWYUN5wA8TkpYvOeGqIJvbOGL3o-3D_ll4ctv0L-2ByeRZFC1LslHcg6aJmnQ70VruLbmeLQr27A7FIe1fAU5MYdMhryppkuDD7vuGwrKhxlD16FONRY41f5Cm8LbS-2B9Zq2K0wmkb-2BoJz1kJXbFxSIHmFWTINz-2BPs5QzSBdP87YZltpGotwoikQYaEQBqL4ZVt50AkAUKeUiZmdvs1Qv1nd211yFQZgwBdnYZ212z8zZM8R-2FdUMm4b6GRUet10LYUYvbfq-2FB1ID4-3D
Changeset: ca40689574d6
Branch: yt
User: ngoldbaum
Date: 2016-03-23 20:56:04+00:00
Summary: Merged in xarthisius/yt (pull request #2066)
Ensure that mpi operations retain ImageArray type instead of downgrading to YTArray parent class
Affected #: 1 file
diff -r 7d98d561e68cde5957a324cf1c6d6e3d92b43674 -r ca40689574d6bfcb2ec7155906597da1e247ae40 yt/utilities/parallel_tools/parallel_analysis_interface.py
--- a/yt/utilities/parallel_tools/parallel_analysis_interface.py
+++ b/yt/utilities/parallel_tools/parallel_analysis_interface.py
@@ -28,6 +28,7 @@
ensure_list, iterable
from yt.config import ytcfg
+from yt.data_objects.image_array import ImageArray
import yt.utilities.logger
from yt.utilities.lib.quad_tree import \
QuadTree, merge_quadtrees
@@ -794,15 +795,25 @@
if self.comm.rank == root:
if isinstance(data, YTArray):
info = (data.shape, data.dtype, str(data.units), data.units.registry.lut)
+ if isinstance(data, ImageArray):
+ info += ('ImageArray',)
+ else:
+ info += ('YTArray',)
else:
info = (data.shape, data.dtype)
else:
info = ()
info = self.comm.bcast(info, root=root)
if self.comm.rank != root:
- if len(info) == 4:
+ if len(info) == 5:
registry = UnitRegistry(lut=info[3], add_default_symbols=False)
- data = YTArray(np.empty(info[0], dtype=info[1]), info[2], registry=registry)
+ if info[-1] == "ImageArray":
+ data = ImageArray(np.empty(info[0], dtype=info[1]),
+ input_units=info[2],
+ registry=registry)
+ else:
+ data = YTArray(np.empty(info[0], dtype=info[1]),
+ info[2], registry=registry)
else:
data = np.empty(info[0], dtype=info[1])
mpi_type = get_mpi_type(info[1])
@@ -1008,6 +1019,10 @@
# communicate type and shape and optionally units
if isinstance(arr, YTArray):
unit_metadata = (str(arr.units), arr.units.registry.lut)
+ if isinstance(arr, ImageArray):
+ unit_metadata += ('ImageArray',)
+ else:
+ unit_metadata += ('YTArray',)
else:
unit_metadata = ()
self.comm.send((arr.dtype.str, arr.shape) + unit_metadata, dest=dest, tag=tag)
@@ -1020,9 +1035,13 @@
if ne is None and dt is None:
return self.comm.recv(source=source, tag=tag)
arr = np.empty(ne, dtype=dt)
- if len(metadata) == 4:
+ if len(metadata) == 5:
registry = UnitRegistry(lut=metadata[3], add_default_symbols=False)
- arr = YTArray(arr, metadata[2], registry=registry)
+ if metadata[-1] == "ImageArray":
+ arr = ImageArray(arr, input_units=metadata[2],
+ registry=registry)
+ else:
+ arr = YTArray(arr, metadata[2], registry=registry)
tmp = arr.view(self.__tocast)
self.comm.Recv([tmp, MPI.CHAR], source=source, tag=tag)
return arr
@@ -1041,7 +1060,10 @@
if isinstance(send, YTArray):
# We assume send.units is consitent with the units
# on the receiving end.
- recv = YTArray(recv, send.units)
+ if isinstance(send, ImageArray):
+ recv = ImageArray(recv, input_units=send.units)
+ else:
+ recv = YTArray(recv, send.units)
recv[offset:offset+send.size] = send[:]
dtr = send.dtype.itemsize / tmp_send.dtype.itemsize # > 1
roff = [off * dtr for off in offsets]
Repository URL: http://link.bitbucket.org/wf/click?upn=8USRlNyft-2BCzk2l4Ywl6gDx2lD2xxoS9E7MwXb2SMR-2BI0v8SbQq-2B8-2FZaaHaJT85r_ll4ctv0L-2ByeRZFC1LslHcg6aJmnQ70VruLbmeLQr27A7FIe1fAU5MYdMhryppkuDD7vuGwrKhxlD16FONRY41RvhB2MI36rgB9n15x5BCXIpXS5-2FClg-2FrLd10jT4ESApkAUafj43UKsHxxu7CS-2FKq8t9mvxCvnwy7lT2taGQLXAsD2pwelq5wn8UUAXCG8FOg3r2ss-2BpQQd5k6t6qvMOZBjkVzUuYRXyV2rys-2F0Ne6k-3D
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.spacepope.org/pipermail/yt-svn-spacepope.org/attachments/20160323/a5e52eab/attachment.htm>
More information about the yt-svn
mailing list