Ejemplo n.º 1
0
def test_make(env):
    for dtype in detail.scalars() + detail.complex_scalars():
        for vector_t, dist_vector_t in [(dt.ElColumnVector,
                                         dt.ElDistColumnVector),
                                        (dt.ElRowVector, dt.ElDistRowVector)]:
            vec_np = np.asarray(np.arange(env.n), order='F', dtype=dtype)
            vec_el = vector_t.view_from_numpy(vec_np)

            dvec_el = dist_vector_t.make_view(env.grid, vec_el)
            assert isinstance(dvec_el, dist_vector_t)

            assert dvec_el.length() == env.n
Ejemplo n.º 2
0
def test_ctor_complex(env):
    for dtype in detail.complex_scalars():
        mat_np = np.asarray(np.arange(env.m*env.n).reshape(env.m, env.n), order='F', dtype=dtype)
        mat_el = dt.ElMatrix.view_from_numpy(mat_np)
        mat_np2 = mat_el.view_to_numpy()

        mat_np2[1, 3] = 1337 + 42j
        assert mat_np[1, 3] == 1337 + 42j

        logging.debug(str(mat_np2))
        logging.debug(mat_np2.flags)
        logging.debug(mat_np2.dtype)
Ejemplo n.º 3
0
def test_make_view(env):
    for dtype in detail.scalars() + detail.complex_scalars():
        mat_np = np.asarray(np.arange(env.m*env.n).reshape(env.m, env.n), order='F', dtype=dtype)
        mat_el = dt.ElMatrix.view_from_numpy(mat_np)

        dist_el = dt.MatrixDistribution.make(
            dt.ElDist.STAR, dt.ElDist.STAR, dt.ElDistWrap.ELEMENT)
        dmat_el = dt.ElDistMatrix.make_view(env.grid, mat_el, dist_el)
        assert isinstance(dmat_el, dt.ElDistMatrix)

        assert dmat_el.size().m == env.m
        assert dmat_el.size().n == env.n
Ejemplo n.º 4
0
def test_ctor_complex(env):
    for dtype in detail.complex_scalars():
        for vector_t in [dt.ElColumnVector, dt.ElRowVector]:
            vec_np = np.asarray(np.arange(env.n), order='F', dtype=dtype)
            vec_el = vector_t.view_from_numpy(vec_np)
            vec_np2 = vec_el.view_to_numpy()

            vec_np2[3] = 1337 + 42j
            assert vec_np[3] == 1337 + 42j

            logging.debug(str(vec_np2))
            logging.debug(vec_np2.flags)
            logging.debug(vec_np2.dtype)
Ejemplo n.º 5
0
def test_copy_redist(env):
    for dtype in detail.scalars() + detail.complex_scalars():
        mat_np = np.asarray(np.arange(env.m*env.n).reshape(env.m, env.n), order='F', dtype=dtype)
        assert mat_np[1, 3] == 2*env.m+3
        mat_el = dt.ElMatrix.view_from_numpy(mat_np)

        dist_star_star_el = dt.MatrixDistribution.make(dt.ElDist.STAR, dt.ElDist.STAR, dt.ElDistWrap.ELEMENT)
        dist_mc_mr_el = dt.MatrixDistribution.make(dt.ElDist.MC, dt.ElDist.MR, dt.ElDistWrap.ELEMENT)
        dist_circ_circ_el = dt.MatrixDistribution.make(dt.ElDist.CIRC, dt.ElDist.CIRC, dt.ElDistWrap.ELEMENT)
        dist_vc_star_el = dt.MatrixDistribution.make(dt.ElDist.VC, dt.ElDist.STAR, dt.ElDistWrap.ELEMENT)

        dmat_star_star_el = dt.ElDistMatrix.make_view(env.grid, mat_el, dist_star_star_el)
        dmat_mc_mr_el = dmat_star_star_el.copy(dist_mc_mr_el)
        dmat_vc_star_el = dmat_mc_mr_el.copy(dist_vc_star_el)
        dmat_circ_circ_el = dmat_vc_star_el.copy(dist_circ_circ_el)

        lcl_star_star_el = dmat_star_star_el.local()
        lcl_mc_mr_el = dmat_mc_mr_el.local()
        lcl_vc_star_el = dmat_vc_star_el.local()
        lcl_circ_circ_el = dmat_circ_circ_el.local()

        assert dmat_star_star_el.size().m == env.m
        assert dmat_star_star_el.size().n == env.n
        assert dmat_mc_mr_el.size().m == env.m
        assert dmat_mc_mr_el.size().n == env.n
        assert dmat_vc_star_el.size().m == env.m
        assert dmat_vc_star_el.size().n == env.n
        assert dmat_circ_circ_el.size().m == env.m
        assert dmat_circ_circ_el.size().n == env.n

        if env.size > 1:
            assert lcl_vc_star_el.size().m < lcl_star_star_el.size().m
            assert lcl_vc_star_el.size().n == lcl_star_star_el.size().n

        lcl_star_star_np = lcl_star_star_el.view_to_numpy()
        lcl_mc_mr_np = lcl_mc_mr_el.view_to_numpy() # noqa F841 # TODO: Add assert
        lcl_vc_star_np = lcl_vc_star_el.view_to_numpy() # noqa F841 # TODO: Add assert
        lcl_circ_circ_np = lcl_circ_circ_el.view_to_numpy()

        if env.rank == 0:
            # If this assertion fails due to zeros in the upper matrix indices, then you may try
            # to use a different MPI point-to-point management layer, e.g. ob1 instead of ucx.
            # To do so, set and export the OMPI_MCA_pml variable before executing the unit tests:
            #  export OMPI_MCA_pml=ob1
            assert np.array_equal(lcl_star_star_np, lcl_circ_circ_np)
Ejemplo n.º 6
0
def test_copy_redist(env):
    for dtype in detail.scalars() + detail.complex_scalars():
        for vector_t, dist_vector_t in [(dt.ElColumnVector,
                                         dt.ElDistColumnVector),
                                        (dt.ElRowVector, dt.ElDistRowVector)]:
            vec_np = np.asarray(np.arange(env.n), order='F', dtype=dtype)
            assert vec_np[3] == 3
            vec_el = vector_t.view_from_numpy(vec_np)

            dist_star_star_el = dt.MatrixDistribution.make(
                dt.ElDist.STAR, dt.ElDist.STAR, dt.ElDistWrap.ELEMENT)
            dist_mc_mr_el = dt.MatrixDistribution.make(dt.ElDist.MC,
                                                       dt.ElDist.MR,
                                                       dt.ElDistWrap.ELEMENT)
            dist_circ_circ_el = dt.MatrixDistribution.make(
                dt.ElDist.CIRC, dt.ElDist.CIRC, dt.ElDistWrap.ELEMENT)
            dist_vc_star_el = dt.MatrixDistribution.make(
                dt.ElDist.VC, dt.ElDist.STAR, dt.ElDistWrap.ELEMENT)

            dvec_star_star_el = dist_vector_t.make_view(
                env.grid, vec_el, dist_star_star_el)
            dvec_mc_mr_el = dvec_star_star_el.copy(dist_mc_mr_el)
            dvec_vc_star_el = dvec_mc_mr_el.copy(dist_vc_star_el)
            dvec_circ_circ_el = dvec_vc_star_el.copy(dist_circ_circ_el)
            dvec_star_star_el2 = dvec_circ_circ_el.copy(dist_star_star_el)

            lcl_star_star_el = dvec_star_star_el.local()
            lcl_star_star_el2 = dvec_star_star_el2.local()

            assert dvec_star_star_el.length() == env.n
            assert dvec_mc_mr_el.length() == env.n
            assert dvec_vc_star_el.length() == env.n
            assert dvec_circ_circ_el.length() == env.n
            assert dvec_star_star_el2.length() == env.n

            lcl_star_star_np = lcl_star_star_el.view_to_numpy()
            lcl_star_star_np2 = lcl_star_star_el2.view_to_numpy()

            assert np.array_equal(lcl_star_star_np, lcl_star_star_np2)