I have an application where I am multiplying several large, complex PETSc matrices (that could be sparse) with each other.<div>This happens often enough during program execution that I am interested in looking for optimal solutions to this.<br clear="all">

<div>The usual algorithm followed is initializing a PETSc matrix with the required dimensionality and specifying the sparsity pattern.</div><div>They're then multiplied with each other.</div><div>So my questions are as follows:</div>

<div>1) Could specifying a matrix as full instead of sparse improve speed by reducing overhead involved in processing sparse matrices?</div><div>2) If not, should BLAS routines be called directly from the code instead of PETSc calling them, to improve performance?</div>

<div>Regards, </div>-- <br>Ganesh<br>
<br>
</div>