Hi Francesco,

please consider the following:

a) run your code through valgrind to locate the segmentation fault. Maybe there is already a memory access problem in the sequential version.

 b) send any error messages as well as the stack trace.

c) what is you intent with "do in = nnod_loc"? Isn't nnoc_loc the number of local elements?

Best regards,
Karli



On 04/19/2017 12:26 PM, Francesco Migliorini wrote:
Hello!

I have an MPI code in which a linear system is created and solved with
PETSc. It works in sequential run but when I use multiple cores the
VecAssemblyBegin/End give segmentation fault. Here's a sample of my code:

call PetscInitialize(PETSC_NULL_CHARACTER,perr)

      ind(1) = 3*nnod_loc*max_time_deg
      call VecCreate(PETSC_COMM_WORLD,feP,perr)
      call VecSetSizes(feP,PETSC_DECIDE,ind,perr)
      call VecSetFromOptions(feP,perr)

      do in = nnod_loc
do jt = 1,mm
ind(1) = 3*((in -1)*max_time_deg + (jt-1))
fval(1) = fe(3*((in -1)*max_time_deg + (jt-1)) +1)
call VecSetValues(feP,1,ind,fval(1),INSERT_VALUES,perr)
ind(1) = 3*((in -1)*max_time_deg + (jt-1)) +1
fval(1) = fe(3*((in -1)*max_time_deg + (jt-1)) +2)
call VecSetValues(feP,1,ind,fval(1),INSERT_VALUES,perr)
ind(1) = 3*((in -1)*max_time_deg + (jt-1)) +2
fval(1) = fe(3*((in -1)*max_time_deg + (jt-1)) +3)
call VecSetValues(feP,1,ind,fval(1),INSERT_VALUES,perr)
 enddo
         enddo
      enddo
      call VecAssemblyBegin(feP,perr)
      call VecAssemblyEnd(feP,perr)

The vector has 640.000 elements more or less but I am running on a high
performing computer so there shouldn't be memory issues. Does anyone
know where is the problem and how can I fix it?

Thank you,
Francesco Migliorini

Reply via email to