Hey Guys,
(1) Is there code to populate DistMatrix from a Matrix? Alternately, is there a way to populate a DistMatrix from another DistMatrix with a different grid/ communicator/ group?
(2) Would the folks here suggest using the [MC,MR] distribution as much as possible? Would many of the BLAS-2, BLAS-3, and LAPACK operations implicitly convert DistMatrices with other distributions into [MC,MR]?
I am trying to use Elemental to parallelize (quick and dirty) some operations in a MATLAB code-base. The only shared file system available is NFS, so there is not much point in setting up parallel IO. Right now, I am thinking of using HDF5 to go from MATLAB to C++. Any suggestions from folks who have faced a similar situation are welcome.
- Anju
--------------------------------------------
Prabhanjan Kambadur
Research Staff Member
Business Analytics and Mathematical Sciences
IBM TJ Watson Research Center
Room 30-229 A
(1) Is there code to populate DistMatrix from a Matrix? Alternately, is there a way to populate a DistMatrix from another DistMatrix with a different grid/ communicator/ group?
(2) Would the folks here suggest using the [MC,MR] distribution as much as possible? Would many of the BLAS-2, BLAS-3, and LAPACK operations implicitly convert DistMatrices with other distributions into [MC,MR]?
I am trying to use Elemental to parallelize (quick and dirty) some operations in a MATLAB code-base. The only shared file system available is NFS, so there is not much point in setting up parallel IO. Right now, I am thinking of using HDF5 to go from MATLAB to C++. Any suggestions from folks who have faced a similar situation are welcome.
Thanks for the comments, Jack. For simplicity, let us assume that rank-0 is the only one that has access to the file system. Even for the quick and dirty method, MPI_Broadcast is too expensive, so MPI_Scatterv might be best. However, here is where I would like some help:
In your code sample, you assume that ASeq has the elements that are locally needed by each process. Files are typically written in column-major order. It is easier to scatter this for a [*,VC] distribution. However, to take a single contiguous buffer and scatter it to suit [MC,MR] seems non-trivial. So, we could read the file in as a *permuted* [*,VC] DistMatrix and then use DistMatrix conversion. However, it would be nice to do it without that additional communication step and not require the column permutation.
In short, it would be great to go from:
(1) An un-partitioned column-major buffer/file to a DistMatrix<T,MC,MR>
(2) A 1D partitioned column-major buffer/file to a DistMatrix<T,MC,MR>. In this case, each process would own a *contiguous* set of columns.
Any thoughts?
- Anju
--------------------------------------------
Prabhanjan Kambadur
Research Staff Member
Business Analytics and Mathematical Sciences
IBM TJ Watson Research Center
Room 30-229 A
Jack Poulson ---05/06/2013 12:18:19 PM---Dear Anju, On Mon, May 6, 2013 at 8:10 AM, ANJU KAMBADUR <pkam...@us.ibm.com> wrote:
| Jack Poulson <jack.p...@gmail.com> |
| "elemen...@googlegroups.com" <elemen...@googlegroups.com> |
| 05/06/2013 12:18 PM |
| Re: [elemental] Populating DistMatrix<T,U1,V1> from file/Matrix<T>/DistMatrix<T,U2,V2> |
| elemen...@googlegroups.com |
--
You received this message because you are subscribed to the Google Groups "elemental-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to elemental-de...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Thanks for the comments, Jack. For simplicity, let us assume that rank-0 is the only one that has access to the file system. Even for the quick and dirty method, MPI_Broadcast is too expensive, so MPI_Scatterv might be best. However, here is where I would like some help:
In your code sample, you assume that ASeq has the elements that are locally needed by each process. Files are typically written in column-major order. It is easier to scatter this for a [*,VC] distribution. However, to take a single contiguous buffer and scatter it to suit [MC,MR] seems non-trivial. So, we could read the file in as a *permuted* [*,VC] DistMatrix and then use DistMatrix conversion. However, it would be nice to do it without that additional communication step and not require the column permutation.
In short, it would be great to go from:
(1) An un-partitioned column-major buffer/file to a DistMatrix<T,MC,MR>
(2) A 1D partitioned column-major buffer/file to a DistMatrix<T,MC,MR>. In this case, each process would own a *contiguous* set of columns.
Any thoughts?