本文整理汇总了Python中distarray.local.maps.Distribution类的典型用法代码示例。如果您正苦于以下问题:Python Distribution类的具体用法?Python Distribution怎么用?Python Distribution使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Distribution类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_add
def test_add(self):
"""See if binary ufunc works for a LocalArray."""
d = Distribution.from_shape(comm=self.comm, shape=(16, 16))
a = LocalArray(d, dtype='int32')
b = LocalArray(d, dtype='int32')
a.fill(1)
b.fill(1)
c = localarray.add(a, b)
self.assertTrue(np.all(c.ndarray == 2))
c = localarray.empty_like(a)
c = localarray.add(a, b, c)
self.assertTrue(np.all(c.ndarray == 2))
d0 = Distribution.from_shape(comm=self.comm, shape=(16, 16))
d1 = Distribution.from_shape(comm=self.comm, shape=(20, 20))
a = LocalArray(d0, dtype='int32')
b = LocalArray(d1, dtype='int32')
self.assertRaises(IncompatibleArrayError, localarray.add, a, b)
d0 = Distribution.from_shape(comm=self.comm, shape=(16, 16))
d1 = Distribution.from_shape(comm=self.comm, shape=(20, 20))
a = LocalArray(d0, dtype='int32')
b = LocalArray(d0, dtype='int32')
c = LocalArray(d1, dtype='int32')
self.assertRaises(IncompatibleArrayError, localarray.add, a, b, c)
示例2: setUp
def setUp(self):
self.dist_1d = Distribution.from_shape(comm=self.comm,
shape=(7,), grid_shape=(4,))
self.larr_1d = LocalArray(self.dist_1d, buf=None)
self.dist_2d = Distribution.from_shape(comm=self.comm,
shape=(16, 16), grid_shape=(4, 1))
self.larr_2d = LocalArray(self.dist_2d, buf=None)
示例3: test_arecompatible
def test_arecompatible(self):
"""Test if two DistArrays are compatible."""
d0 = Distribution.from_shape(comm=self.comm, shape=(16,16))
a = LocalArray(d0, dtype='int64')
b = LocalArray(d0, dtype='float32')
self.assertTrue(arecompatible(a,b))
da = Distribution.from_shape(comm=self.comm, shape=(16, 16), dist='c')
a = LocalArray(da, dtype='int64')
db = Distribution.from_shape(comm=self.comm, shape=(16, 16), dist='b')
b = LocalArray(db, dtype='float32')
self.assertFalse(arecompatible(a,b))
示例4: test_asdist_like
def test_asdist_like(self):
"""Test asdist_like for success and failure."""
d = Distribution.from_shape((16, 16), dist=('b', 'n'), comm=self.comm)
a = LocalArray(d)
b = LocalArray(d)
new_a = a.asdist_like(b)
self.assertEqual(id(a), id(new_a))
d2 = Distribution.from_shape((16, 16), dist=('n', 'b'), comm=self.comm)
a = LocalArray(d)
b = LocalArray(d2)
self.assertRaises(IncompatibleArrayError, a.asdist_like, b)
示例5: test_cart_coords
def test_cart_coords(self):
"""Test getting the cart_coords attribute."""
self.dist_1d = Distribution.from_shape(comm=self.comm, shape=(7,),
grid_shape=(4,))
actual_1d = self.dist_1d.cart_coords
expected_1d = tuple(self.dist_1d.comm.Get_coords(self.dist_1d.comm_rank))
self.assertEqual(actual_1d, expected_1d)
self.dist_2d = Distribution.from_shape(comm=self.comm, shape=(16, 16),
grid_shape=(4, 1))
actual_2d = self.dist_2d.cart_coords
expected_2d = tuple(self.dist_2d.comm.Get_coords(self.dist_2d.comm_rank))
self.assertEqual(actual_2d, expected_2d)
示例6: test_block
def test_block(self):
dim00 = {
"dist_type": 'b',
"size": 16,
"start": 0,
"stop": 8,
"proc_grid_rank": 0,
"proc_grid_size": 2,
}
dim01 = {
"dist_type": 'n',
"size": 16,
}
dd0 = (dim00, dim01)
dim10 = {
"dist_type": 'b',
"size": 16,
"start": 8,
"stop": 16,
"proc_grid_rank": 1,
"proc_grid_size": 2,
}
dim11 = {
"dist_type": 'n',
"size": 16,
}
dd1 = (dim10, dim11)
dim_data_per_rank = (dd0, dd1)
d0 = Distribution(comm=self.comm,
dim_data=dim_data_per_rank[self.comm.Get_rank()])
d1 = Distribution.from_shape(comm=self.comm, shape=(16, 16),
dist={0: 'b'}, grid_shape=(2, 1))
self.assert_alike(d0, d1)
示例7: test_fromndarray_like
def test_fromndarray_like(self):
"""Can we build an array using fromndarray_like?"""
d = Distribution.from_shape(comm=self.comm,
shape=(16, 16), dist=('c', 'b'))
la0 = LocalArray(d, dtype='int8')
la1 = localarray.fromndarray_like(la0.ndarray, la0)
assert_localarrays_equal(la0, la1, check_dtype=True)
示例8: test_view_bn
def test_view_bn(self):
d = Distribution.from_shape((16, 16), dist=('b', 'n'), comm=self.comm)
a = LocalArray(d, dtype=np.int32)
a.fill(11)
b = a.view()
assert_localarrays_equal(a, b)
self.assertEqual(id(a.local_data), id(b.local_data))
示例9: test_negative
def test_negative(self):
"""See if unary ufunc works for a LocalArray."""
d = Distribution.from_shape(comm=self.comm, shape=(16, 16))
a = LocalArray(d, dtype='int32')
a.fill(1)
b = localarray.negative(a)
self.assertTrue(np.all(a.ndarray == -b.ndarray))
b = localarray.empty_like(a)
b = localarray.negative(a, b)
self.assertTrue(np.all(a.ndarray == -b.ndarray))
d2 = Distribution.from_shape(comm=self.comm, shape=(20, 20))
a = LocalArray(d, dtype='int32')
b = LocalArray(d2, dtype='int32')
self.assertRaises(IncompatibleArrayError, localarray.negative, b, a)
示例10: test_crazy
def test_crazy(self):
"""Can we go from global to local indices and back for a complex case?"""
distribution = Distribution.from_shape(comm=self.comm,
shape=(10, 100, 20),
dist=('b', 'c', 'n'))
la = LocalArray(distribution)
self.round_trip(la)
示例11: test_copy_bn
def test_copy_bn(self):
distribution = Distribution.from_shape(comm=self.comm,
shape=(16, 16), dist=('b', 'n'))
a = LocalArray(distribution, dtype=np.int_)
a.fill(11)
b = a.copy()
assert_localarrays_equal(a, b, check_dtype=True)
示例12: test_cyclic_simple
def test_cyclic_simple(self):
"""Can we compute local indices for a cyclic distribution?"""
distribution = Distribution.from_shape(comm=self.comm,
shape=(10,), dist={0: 'c'})
la = LocalArray(distribution)
self.assertEqual(la.global_shape, (10,))
self.assertEqual(la.grid_shape, (4,))
if la.comm_rank == 0:
gis = (0, 4, 8)
self.assertEqual(la.local_shape, (3,))
calc_result = [la.local_from_global(gi) for gi in gis]
result = [(0,), (1,), (2,)]
elif la.comm_rank == 1:
gis = (1, 5, 9)
self.assertEqual(la.local_shape, (3,))
calc_result = [la.local_from_global(gi) for gi in gis]
result = [(0,), (1,), (2,)]
elif la.comm_rank == 2:
gis = (2, 6)
self.assertEqual(la.local_shape, (2,))
calc_result = [la.local_from_global(gi) for gi in gis]
result = [(0,), (1,)]
elif la.comm_rank == 3:
gis = (3, 7)
self.assertEqual(la.local_shape, (2,))
calc_result = [la.local_from_global(gi) for gi in gis]
result = [(0,), (1,)]
self.assertEqual(result, calc_result)
示例13: test_pack_unpack_index
def test_pack_unpack_index(self):
distribution = Distribution.from_shape(comm=self.comm,
shape=(16, 16, 2), dist=('c', 'b', 'n'))
a = LocalArray(distribution)
for global_inds, value in ndenumerate(a):
packed_ind = a.pack_index(global_inds)
self.assertEqual(global_inds, a.unpack_index(packed_ind))
示例14: test_ones
def test_ones(self):
size = self.comm_size
nrows = size * 3
d = Distribution.from_shape(comm=self.comm, shape=(nrows, 20))
a = localarray.ones(d)
expected = np.ones((nrows // size, 20))
assert_array_equal(a.ndarray, expected)
示例15: test_rank_coords
def test_rank_coords(self):
""" Test that we can go from rank to coords and back. """
d = Distribution.from_shape(comm=self.comm, shape=(4, 4))
la = LocalArray(d)
max_size = self.comm.Get_size()
for rank in range(max_size):
self.round_trip(la, rank=rank)