<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div dir="ltr">
<div dir="ltr"><br>
</div>
Ian,
<div>I would suggest start using AIJ format.</div>
<div><br>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I am Ian. I trying to implement a solver which involves a sparse symmetric matrix A multiplied by a dense matrix X. And because of the nature of the problem, the bandwidth of the matrix A would be kind of large.For A*X, I am thinking using reverse Cuthill-Mckee
 algorithm to reduce the bandwidth.<br>
<br>
Are the following approach reasonable, or do you have a better advice?<br>
<br>
1. Use MatGetOrdering to get a MATORDERINGRCM ordering, and MatPermute to create a new with it.<br>
</blockquote>
<div>SBAIJ may not support some orderings. Matrix ordering for sbaij matrix is limited to symmetric ordering and requires restructuring the matrix. </div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
2. What’s the difference by using MATAIJ and MATBAIJ in terms of the entry insertion and computation and MPI efficiency for a sparse-dense matrix multiplication? Would it be better to use MATSBAIJ in terms of the computational efficiency?<br>
</blockquote>
<div>SBAIJ stores upper triangular part of matrix, thus saves approximately half memory of a sparse matrix. However, it requires more data communications for y=A*x in general. in your case, C=A*X is a dense matrix, saving half of storage for sparse A may not
 be worth trading communication cost and functionalities. </div>
<div><br>
</div>
<div>Hong</div>
</div>
</div>
</div>
</body>
</html>