On Apr 26, 2009, at 4:30 PM, Yixun Liu wrote:

> Hi,
> I want to make my code run on 1 or multiple processors. The code,  
> which
> can run on multiple processors is like the following,
>
> MatCreate(PETSC_COMM_WORLD, &A);
>   MatSetSizes(A, 3*numOfVerticesOfOneProcessor,
> 3*numOfVerticesOfOneProcessor, systemSize, systemSize);
>   MatSetFromOptions(A);
>   MatMPIAIJSetPreallocation(A, 50, PETSC_NULL, 50, PETSC_NULL);
>
> However if I want to run on 1 processor I have to change the last  
> code to:
> MatSeqAIJSetPreallocation(A,1000,PETSC_NULL);
>
> How to avoid changing code?

   Just leave BOTH lines in the code.

    PETSc has the unique feature that it ignores optional function  
calls that are not
appropriate for the particular situation. So for runs with one process  
the MPI version is
ignored and for runs with multiple processors the Seq version is  
ignored.

    Barry

>
>
> Thanks.
>
> Yixun

Reply via email to