Invalid argument! - not a permutation!

Hong Zhang hzhang at mcs.anl.gov
Thu Oct 25 15:57:29 CDT 2007


>>
>> Is this because the default LU factorisation routine isn't parallel...
>
>  Yes
>
>> I just
>> assumed parallel superlu would be picked up automatically (it is compiled into
>> my PETSc build) ?
>
>  No, in the current model you have to set the matrix type to MATSUPERLU_DIST
> to get it. Or MATAIJMUMPS for mumps etc.
>
>  Hong has suggested an alternative (better?) model, but .....

Petsc only provides sequential LU factorisation. To run parallel LU,
you must use one of the external packages, SUPERLU_DIS, MUMPS or spooles.
Simply install petsc with these packages, then
run your petsc code with the option '-mat_type superlu_dist'
'-mat_type aijmumps' or '-mat_type aijspooles'
or set the matrix type 'MATSUPERLU_DIST' in your code.

Note: all these packages support sequential implementation.
MUMPS sequential LU solver usually is the fastest. As matrix size 
increases, SUPERLU might catch up.

Let us know if you have trouble using them,

Hong
>
>  Barry
>
>>
>> Tim.
>>
>> Barry Smith wrote:
>>>   I have added this information to the error message that gets printed.
>>>
>>>    Barry
>>>
>>>
>>> On Thu, 25 Oct 2007, Matthew Knepley wrote:
>>>
>>>
>>>> I think you need to tell use that the IS is a permutation:
>>>>
>>>> http://www-unix.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-current/docs/manualpages/IS/ISSetPermutation.html
>>>>
>>>>    Matt
>>>>
>>>> On 10/25/07, Tim Stitt <timothy.stitt at ichec.ie> wrote:
>>>>
>>>>> Hi all,
>>>>>
>>>>> Following on from some help I got a few days ago with respect to
>>>>> MatLUFactorSymbolic() usage in Fortran...I think I now have all the
>>>>> parts in place but keep getting the following runtime error upon
>>>>> execution:
>>>>>
>>>>> [0]PETSC ERROR: --------------------- Error Message
>>>>> ------------------------------------
>>>>> [0]PETSC ERROR: Invalid argument!
>>>>> [0]PETSC ERROR: not a permutation!
>>>>> ...
>>>>> [0]PETSC ERROR:
>>>>> ------------------------------------------------------------------------
>>>>> [0]PETSC ERROR: ISInvertPermutation() line 183 in
>>>>> src/vec/is/interface/index.c
>>>>> [0]PETSC ERROR: MatLUFactorSymbolic_SeqAIJ() line 276 in
>>>>> src/mat/impls/aij/seq/aijfact.c
>>>>> [0]PETSC ERROR: MatLUFactorSymbolic() line 2178 in
>>>>> src/mat/interface/matrix.c
>>>>> [localhost.localdomain:24730] MPI_ABORT invoked on rank 0 in
>>>>> communicator MPI_COMM_WORLD with errorcode 62
>>>>>
>>>>> Here is the portion of  the offending code (I think):
>>>>>
>>>>>   call MatAssemblyBegin(A,MAT_FINAL_ASSEMBLY,error);CHKERRQ(error)
>>>>>   call MatAssemblyEnd(A,MAT_FINAL_ASSEMBLY,error);CHKERRQ(error)
>>>>>   call ISCreateGeneral(PETSC_COMM_WORLD,order,columnIndices,
>>>>> indexSet,error);CHKERRQ(error)
>>>>>   call MatFactorInfoInitialize(info,error);CHKERRQ(error)
>>>>>   call
>>>>> MatLUFactorSymbolic(A,indexSet,indexSet,info,factorMat,error);CHKERRQ(error)
>>>>>
>>>>> order - number of rows/columns in square matrix A
>>>>> columnIndices - 1D array containing values 0-->order-1
>>>>>
>>>>> All types are set correctly as far as I can tell.
>>>>>
>>>>> Can anyone suggest why the execution falls over during the
>>>>> MatLUFactorSymbolic() call?
>>>>>
>>>>> Thanks again,
>>>>>
>>>>> Tim.
>>>>>
>>>>> --
>>>>> Dr. Timothy Stitt <timothy_dot_stitt_at_ichec.ie>
>>>>> HPC Application Consultant - ICHEC (www.ichec.ie)
>>>>>
>>>>> Dublin Institute for Advanced Studies
>>>>> 5 Merrion Square - Dublin 2 - Ireland
>>>>>
>>>>> +353-1-6621333 (tel) / +353-1-6621477 (fax)
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>>
>
>




More information about the petsc-users mailing list