How many MPI ranks do you use? The following line is suspicious. I guess you do not want a vector of global length 1. 66 VecSetSizes(b,PETSC_DECIDE,1);
--Junchao Zhang On Wed, Apr 24, 2019 at 4:14 PM Karl Lin via petsc-users <[email protected]<mailto:[email protected]>> wrote: Hi, there I have been trying to get a simple program run with the following code: 12 int main(int argc,char **args) 13 { 14 PetscErrorCode ierr; 15 Mat A; 16 Mat AT; 17 Mat N; 18 char name[1024]; 19 char vname[1024]; 20 char pass[1024]; 21 PetscBool flg; 22 Vec b,x,u,Ab,Au; 23 PetscViewer viewer; /* viewer */ 24 PetscMPIInt rank,size; 25 26 KSP QRsolver; 27 PC pc; 28 PetscInt its; 29 PetscReal norm; 30 31 PetscInt n1, n2, n3, np1, np2, np3, p, jj; 32 33 PetscInt *cols, *dnz, *onz; 34 PetscScalar *vals; 35 36 ierr = PetscInitialize(&argc,&args,0,help);if (ierr) return ierr; 37 38 ierr = MPI_Comm_size(PETSC_COMM_WORLD,&size);CHKERRQ(ierr); 39 ierr = MPI_Comm_rank(PETSC_COMM_WORLD,&rank);CHKERRQ(ierr); 40 41 PetscMalloc1(1, &dnz); 42 PetscMalloc1(1, &onz); 43 44 dnz[0]=2; 45 onz[0]=1; 46 47 MatCreateMPIAIJMKL(PETSC_COMM_WORLD, 1, 2, 1, 2, 2, dnz, 2, onz, &A); CHKERRQ(ierr); 48 49 PetscMalloc1(2, &cols); 50 PetscMalloc1(2, &vals); 51 52 jj = rank; 53 cols[0]=0; cols[1]=1; 54 vals[0]=1.0;vals[1]=1.0; 55 56 MatSetValues(A, 1, &jj, 2, cols, vals, INSERT_VALUES); 57 58 MatAssemblyBegin(A, MAT_FINAL_ASSEMBLY); 59 MatAssemblyEnd(A, MAT_FINAL_ASSEMBLY); 60 61 VecCreate(PETSC_COMM_WORLD,&x); 62 VecSetSizes(x,PETSC_DECIDE,2); 63 VecSetFromOptions(x); 64 65 VecCreate(PETSC_COMM_WORLD,&b); 66 VecSetSizes(b,PETSC_DECIDE,1); 67 VecSetFromOptions(b); 68 69 VecCreate(PETSC_COMM_WORLD,&u); 70 VecSetSizes(u,PETSC_DECIDE,1); 71 VecSetFromOptions(u); 72 73 VecSet(b, 2.0); 74 VecSet(u, 0.0); 75 VecSet(x, 0.0); 76 77 MatMult(A, x, u); 78 79 VecView(x, PETSC_VIEWER_STDOUT_WORLD); 80 VecView(b, PETSC_VIEWER_STDOUT_WORLD); 81 VecView(u, PETSC_VIEWER_STDOUT_WORLD); 82 83 VecAXPY(u,-1.0,b); However, it always crashes at line 83 even with single process saying: [0]PETSC ERROR: ------------------------------------------------------------------------ [0]PETSC ERROR: Caught signal number 11 SEGV: Segmentation Violation, probably memory access out of range [0]PETSC ERROR: Try option -start_in_debugger or -on_error_attach_debugger [0]PETSC ERROR: or see http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind [0]PETSC ERROR: or try http://valgrind.org on GNU/linux and Apple Mac OS X to find memory corruption errors [0]PETSC ERROR: configure using --with-debugging=yes, recompile, link, and run [0]PETSC ERROR: to get more information on the crash. [0]PETSC ERROR: --------------------- Error Message -------------------------------------------------------------- [0]PETSC ERROR: Signal received [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for trouble shooting. [0]PETSC ERROR: Petsc Release Version 3.10.4, Feb, 26, 2019 I can't figure out why this would happen. The printout from VecView shows every vec value is correct. I will greatly appreciate any tips. Regards, Karl
