1c4762a1bSJed Brown 2c4762a1bSJed Brown static char help[] = "Tests MatTranspose(), MatNorm(), MatAXPY() and MatAYPX().\n\n"; 3c4762a1bSJed Brown 4c4762a1bSJed Brown #include <petscmat.h> 5c4762a1bSJed Brown 6c4762a1bSJed Brown static PetscErrorCode TransposeAXPY(Mat C,PetscScalar alpha,Mat mat,PetscErrorCode (*f)(Mat,Mat*)) 7c4762a1bSJed Brown { 8c4762a1bSJed Brown Mat D,E,F,G; 98e160fb9SStefano Zampini MatType mtype; 10c4762a1bSJed Brown 11c4762a1bSJed Brown PetscFunctionBegin; 12*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatGetType(mat,&mtype)); 13c4762a1bSJed Brown if (f == MatCreateTranspose) { 14*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"\nMatAXPY: (C^T)^T = (C^T)^T + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 15c4762a1bSJed Brown } else { 16*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"\nMatAXPY: (C^H)^H = (C^H)^H + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 17c4762a1bSJed Brown } 18*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 19*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(C,&D)); 20*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(D,&E)); 21*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(E,alpha,mat,SAME_NONZERO_PATTERN)); 22*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatConvert(E,mtype,MAT_INPLACE_MATRIX,&E)); 23*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(E,PETSC_VIEWER_STDOUT_WORLD)); 24*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&E)); 25*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&D)); 26*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&C)); 27c4762a1bSJed Brown if (f == MatCreateTranspose) { 28*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: C = C + alpha * (A^T)^T, C=A, SAME_NONZERO_PATTERN\n")); 29c4762a1bSJed Brown } else { 30*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: C = C + alpha * (A^H)^H, C=A, SAME_NONZERO_PATTERN\n")); 31c4762a1bSJed Brown } 32c4762a1bSJed Brown if (f == MatCreateTranspose) { 33*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatTranspose(mat,MAT_INITIAL_MATRIX,&D)); 34c4762a1bSJed Brown } else { 35*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatHermitianTranspose(mat,MAT_INITIAL_MATRIX,&D)); 36c4762a1bSJed Brown } 37*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(D,&E)); 38*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 39*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(C,alpha,E,SAME_NONZERO_PATTERN)); 40*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(C,PETSC_VIEWER_STDOUT_WORLD)); 41*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&E)); 42*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&D)); 43*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&C)); 44c4762a1bSJed Brown if (f == MatCreateTranspose) { 45*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: (C^T)^T = (C^T)^T + alpha * (A^T)^T, C=A, SAME_NONZERO_PATTERN\n")); 46c4762a1bSJed Brown } else { 47*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: (C^H)^H = (C^H)^H + alpha * (A^H)^H, C=A, SAME_NONZERO_PATTERN\n")); 48c4762a1bSJed Brown } 49*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 50*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(C,&D)); 51*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(D,&E)); 52*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(mat,&F)); 53*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(F,&G)); 54*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(E,alpha,G,SAME_NONZERO_PATTERN)); 55*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatConvert(E,mtype,MAT_INPLACE_MATRIX,&E)); 56*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(E,PETSC_VIEWER_STDOUT_WORLD)); 57*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&G)); 58*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&F)); 59*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&E)); 60*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&D)); 61*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&C)); 628e160fb9SStefano Zampini 638e160fb9SStefano Zampini /* Call f on a matrix that does not implement the transposition */ 64*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: Now without the transposition operation\n")); 65*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatConvert(mat,MATSHELL,MAT_INITIAL_MATRIX,&C)); 66*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(C,&D)); 67*5f80ce2aSJacob Faibussowitsch CHKERRQ(f(D,&E)); 688e160fb9SStefano Zampini /* XXX cannot use MAT_INPLACE_MATRIX, it leaks mat */ 69*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatConvert(E,mtype,MAT_INITIAL_MATRIX,&F)); 70*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(F,alpha,mat,SAME_NONZERO_PATTERN)); 71*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(F,PETSC_VIEWER_STDOUT_WORLD)); 72*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&F)); 73*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&E)); 74*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&D)); 75*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&C)); 76c4762a1bSJed Brown PetscFunctionReturn(0); 77c4762a1bSJed Brown } 78c4762a1bSJed Brown 79c4762a1bSJed Brown int main(int argc,char **argv) 80c4762a1bSJed Brown { 81c4762a1bSJed Brown Mat mat,tmat = 0; 82c4762a1bSJed Brown PetscInt m = 7,n,i,j,rstart,rend,rect = 0; 83c4762a1bSJed Brown PetscErrorCode ierr; 84c4762a1bSJed Brown PetscMPIInt size,rank; 85c4762a1bSJed Brown PetscBool flg; 86c4762a1bSJed Brown PetscScalar v, alpha; 87c4762a1bSJed Brown PetscReal normf,normi,norm1; 88c4762a1bSJed Brown 89c4762a1bSJed Brown ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 90*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD,PETSC_VIEWER_ASCII_COMMON)); 91*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscOptionsGetInt(NULL,NULL,"-m",&m,NULL)); 92*5f80ce2aSJacob Faibussowitsch CHKERRMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); 93*5f80ce2aSJacob Faibussowitsch CHKERRMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); 94c4762a1bSJed Brown n = m; 95*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscOptionsHasName(NULL,NULL,"-rectA",&flg)); 96c4762a1bSJed Brown if (flg) {n += 2; rect = 1;} 97*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscOptionsHasName(NULL,NULL,"-rectB",&flg)); 98c4762a1bSJed Brown if (flg) {n -= 2; rect = 1;} 99c4762a1bSJed Brown 100a5225ed3SStefano Zampini /* ------- Assemble matrix --------- */ 101*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatCreate(PETSC_COMM_WORLD,&mat)); 102*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetSizes(mat,PETSC_DECIDE,PETSC_DECIDE,m,n)); 103*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetFromOptions(mat)); 104*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetUp(mat)); 105*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatGetOwnershipRange(mat,&rstart,&rend)); 106c4762a1bSJed Brown for (i=rstart; i<rend; i++) { 107c4762a1bSJed Brown for (j=0; j<n; j++) { 1088e160fb9SStefano Zampini v = 10.0*i+j+1.0; 109*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetValues(mat,1,&i,1,&j,&v,INSERT_VALUES)); 110c4762a1bSJed Brown } 111c4762a1bSJed Brown } 112*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyBegin(mat,MAT_FINAL_ASSEMBLY)); 113*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyEnd(mat,MAT_FINAL_ASSEMBLY)); 114c4762a1bSJed Brown 115c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 116*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatNorm(mat,NORM_FROBENIUS,&normf)); 117*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatNorm(mat,NORM_1,&norm1)); 118*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatNorm(mat,NORM_INFINITY,&normi)); 119*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"original A: Frobenious norm = %g, one norm = %g, infinity norm = %g\n",(double)normf,(double)norm1,(double)normi)); 120*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 121c4762a1bSJed Brown 122c4762a1bSJed Brown /* --------------- Test MatTranspose() -------------- */ 123*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscOptionsHasName(NULL,NULL,"-in_place",&flg)); 124c4762a1bSJed Brown if (!rect && flg) { 125*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatTranspose(mat,MAT_REUSE_MATRIX,&mat)); /* in-place transpose */ 1268e160fb9SStefano Zampini tmat = mat; 1278e160fb9SStefano Zampini mat = NULL; 128c4762a1bSJed Brown } else { /* out-of-place transpose */ 129*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatTranspose(mat,MAT_INITIAL_MATRIX,&tmat)); 130c4762a1bSJed Brown } 131c4762a1bSJed Brown 132c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 133c4762a1bSJed Brown /* Print info about transpose matrix */ 134*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatNorm(tmat,NORM_FROBENIUS,&normf)); 135*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatNorm(tmat,NORM_1,&norm1)); 136*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatNorm(tmat,NORM_INFINITY,&normi)); 137*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"B = A^T: Frobenious norm = %g, one norm = %g, infinity norm = %g\n",(double)normf,(double)norm1,(double)normi)); 138*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(tmat,PETSC_VIEWER_STDOUT_WORLD)); 139c4762a1bSJed Brown 140c4762a1bSJed Brown /* ----------------- Test MatAXPY(), MatAYPX() ----------------- */ 141c4762a1bSJed Brown if (mat && !rect) { 142c4762a1bSJed Brown alpha = 1.0; 143*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscOptionsGetScalar(NULL,NULL,"-alpha",&alpha,NULL)); 144*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: B = B + alpha * A\n")); 145*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(tmat,alpha,mat,DIFFERENT_NONZERO_PATTERN)); 146*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(tmat,PETSC_VIEWER_STDOUT_WORLD)); 147c4762a1bSJed Brown 148*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAYPX: B = alpha*B + A\n")); 149*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAYPX(tmat,alpha,mat,DIFFERENT_NONZERO_PATTERN)); 150*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(tmat,PETSC_VIEWER_STDOUT_WORLD)); 151c4762a1bSJed Brown } 152c4762a1bSJed Brown 153c4762a1bSJed Brown { 154c4762a1bSJed Brown Mat C; 155c4762a1bSJed Brown alpha = 1.0; 156*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: C = C + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 157*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 158*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(C,alpha,mat,SAME_NONZERO_PATTERN)); 159*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(C,PETSC_VIEWER_STDOUT_WORLD)); 160*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&C)); 161*5f80ce2aSJacob Faibussowitsch CHKERRQ(TransposeAXPY(C,alpha,mat,MatCreateTranspose)); 162*5f80ce2aSJacob Faibussowitsch CHKERRQ(TransposeAXPY(C,alpha,mat,MatCreateHermitianTranspose)); 163c4762a1bSJed Brown } 164c4762a1bSJed Brown 165c4762a1bSJed Brown { 166c4762a1bSJed Brown Mat matB; 167c4762a1bSJed Brown /* get matB that has nonzeros of mat in all even numbers of row and col */ 168*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatCreate(PETSC_COMM_WORLD,&matB)); 169*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetSizes(matB,PETSC_DECIDE,PETSC_DECIDE,m,n)); 170*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetFromOptions(matB)); 171*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetUp(matB)); 172*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatGetOwnershipRange(matB,&rstart,&rend)); 173c4762a1bSJed Brown if (rstart % 2 != 0) rstart++; 174c4762a1bSJed Brown for (i=rstart; i<rend; i += 2) { 175c4762a1bSJed Brown for (j=0; j<n; j += 2) { 1768e160fb9SStefano Zampini v = 10.0*i+j+1.0; 177*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatSetValues(matB,1,&i,1,&j,&v,INSERT_VALUES)); 178c4762a1bSJed Brown } 179c4762a1bSJed Brown } 180*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyBegin(matB,MAT_FINAL_ASSEMBLY)); 181*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAssemblyEnd(matB,MAT_FINAL_ASSEMBLY)); 182*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD," A: original matrix:\n")); 183*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 184*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD," B(a subset of A):\n")); 185*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(matB,PETSC_VIEWER_STDOUT_WORLD)); 186*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: B = B + alpha * A, SUBSET_NONZERO_PATTERN\n")); 187*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatAXPY(mat,alpha,matB,SUBSET_NONZERO_PATTERN)); 188*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 189*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&matB)); 190c4762a1bSJed Brown } 191c4762a1bSJed Brown 192a5225ed3SStefano Zampini /* Test MatZeroRows */ 193a5225ed3SStefano Zampini j = rstart - 1; 194a5225ed3SStefano Zampini if (j < 0) j = m-1; 195*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatZeroRows(mat,1,&j,0.0,NULL,NULL)); 196*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 197a5225ed3SStefano Zampini 198*5f80ce2aSJacob Faibussowitsch CHKERRQ(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD)); 199c4762a1bSJed Brown /* Free data structures */ 200*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&mat)); 201*5f80ce2aSJacob Faibussowitsch CHKERRQ(MatDestroy(&tmat)); 202c4762a1bSJed Brown ierr = PetscFinalize(); 203c4762a1bSJed Brown return ierr; 204c4762a1bSJed Brown } 205c4762a1bSJed Brown 206c4762a1bSJed Brown /*TEST 207c4762a1bSJed Brown 208c4762a1bSJed Brown test: 209c4762a1bSJed Brown suffix: 11_A 210c4762a1bSJed Brown args: -mat_type seqaij -rectA 211c4762a1bSJed Brown filter: grep -v "Mat Object" 212c4762a1bSJed Brown 213c4762a1bSJed Brown test: 214c4762a1bSJed Brown suffix: 12_A 215c4762a1bSJed Brown args: -mat_type seqdense -rectA 216a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 217a5225ed3SStefano Zampini 218a5225ed3SStefano Zampini test: 219a5225ed3SStefano Zampini requires: cuda 220a5225ed3SStefano Zampini suffix: 12_A_cuda 221a5225ed3SStefano Zampini args: -mat_type seqdensecuda -rectA 222a5225ed3SStefano Zampini output_file: output/ex2_12_A.out 223a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 224c4762a1bSJed Brown 225c4762a1bSJed Brown test: 22624b337e5SStefano Zampini requires: kokkos_kernels 227d9265f21SStefano Zampini suffix: 12_A_kokkos 228dbdd8c31SJunchao Zhang args: -mat_type aijkokkos -rectA 229d9265f21SStefano Zampini output_file: output/ex2_12_A.out 230d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 231d9265f21SStefano Zampini 232d9265f21SStefano Zampini test: 233c4762a1bSJed Brown suffix: 11_B 234c4762a1bSJed Brown args: -mat_type seqaij -rectB 235c4762a1bSJed Brown filter: grep -v "Mat Object" 236c4762a1bSJed Brown 237c4762a1bSJed Brown test: 238c4762a1bSJed Brown suffix: 12_B 239c4762a1bSJed Brown args: -mat_type seqdense -rectB 240a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 241a5225ed3SStefano Zampini 242a5225ed3SStefano Zampini test: 243a5225ed3SStefano Zampini requires: cuda 244a5225ed3SStefano Zampini suffix: 12_B_cuda 245a5225ed3SStefano Zampini args: -mat_type seqdensecuda -rectB 246a5225ed3SStefano Zampini output_file: output/ex2_12_B.out 247a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 248c4762a1bSJed Brown 249c4762a1bSJed Brown test: 25024b337e5SStefano Zampini requires: kokkos_kernels 251d9265f21SStefano Zampini suffix: 12_B_kokkos 252dbdd8c31SJunchao Zhang args: -mat_type aijkokkos -rectB 253d9265f21SStefano Zampini output_file: output/ex2_12_B.out 254d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 255d9265f21SStefano Zampini 256d9265f21SStefano Zampini test: 257c4762a1bSJed Brown suffix: 21 258c4762a1bSJed Brown args: -mat_type mpiaij 259a5225ed3SStefano Zampini filter: grep -v type | grep -v "MPI processes" 260c4762a1bSJed Brown 261c4762a1bSJed Brown test: 262c4762a1bSJed Brown suffix: 22 263c4762a1bSJed Brown args: -mat_type mpidense 264a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 265a5225ed3SStefano Zampini 266a5225ed3SStefano Zampini test: 267a5225ed3SStefano Zampini requires: cuda 268a5225ed3SStefano Zampini suffix: 22_cuda 269a5225ed3SStefano Zampini output_file: output/ex2_22.out 270a5225ed3SStefano Zampini args: -mat_type mpidensecuda 271a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 272c4762a1bSJed Brown 273c4762a1bSJed Brown test: 27424b337e5SStefano Zampini requires: kokkos_kernels 275d9265f21SStefano Zampini suffix: 22_kokkos 276d9265f21SStefano Zampini output_file: output/ex2_22.out 277dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 278d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 279d9265f21SStefano Zampini 280d9265f21SStefano Zampini test: 281c4762a1bSJed Brown suffix: 23 282c4762a1bSJed Brown nsize: 3 283c4762a1bSJed Brown args: -mat_type mpiaij 284c4762a1bSJed Brown filter: grep -v type | grep -v "MPI processes" 285c4762a1bSJed Brown 286c4762a1bSJed Brown test: 287c4762a1bSJed Brown suffix: 24 288c4762a1bSJed Brown nsize: 3 289c4762a1bSJed Brown args: -mat_type mpidense 290a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 291a5225ed3SStefano Zampini 292a5225ed3SStefano Zampini test: 293a5225ed3SStefano Zampini requires: cuda 294a5225ed3SStefano Zampini suffix: 24_cuda 295a5225ed3SStefano Zampini nsize: 3 296a5225ed3SStefano Zampini output_file: output/ex2_24.out 297a5225ed3SStefano Zampini args: -mat_type mpidensecuda 298a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 299c4762a1bSJed Brown 300c4762a1bSJed Brown test: 301c4762a1bSJed Brown suffix: 2_aijcusparse_1 302c4762a1bSJed Brown args: -mat_type mpiaijcusparse 303a5225ed3SStefano Zampini output_file: output/ex2_21.out 304c4762a1bSJed Brown requires: cuda 305c4762a1bSJed Brown filter: grep -v type | grep -v "MPI processes" 306c4762a1bSJed Brown 307c4762a1bSJed Brown test: 308629dcba7SJunchao Zhang suffix: 2_aijkokkos_1 309629dcba7SJunchao Zhang args: -mat_type aijkokkos 310629dcba7SJunchao Zhang output_file: output/ex2_21.out 311629dcba7SJunchao Zhang requires: kokkos_kernels 312629dcba7SJunchao Zhang filter: grep -v type | grep -v "MPI processes" 313629dcba7SJunchao Zhang 314629dcba7SJunchao Zhang test: 315c4762a1bSJed Brown suffix: 2_aijcusparse_2 316c4762a1bSJed Brown nsize: 3 317c4762a1bSJed Brown args: -mat_type mpiaijcusparse 318c4762a1bSJed Brown output_file: output/ex2_23.out 319c4762a1bSJed Brown requires: cuda 320c4762a1bSJed Brown filter: grep -v type | grep -v "MPI processes" 321c4762a1bSJed Brown 322c4762a1bSJed Brown test: 323d9265f21SStefano Zampini suffix: 2_aijkokkos_2 324d9265f21SStefano Zampini nsize: 3 325dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 326d9265f21SStefano Zampini output_file: output/ex2_23.out 327629dcba7SJunchao Zhang # Turn off hip due to intermittent CI failures on hip.txcorp.com. Should re-enable this test when the machine is upgraded. 328629dcba7SJunchao Zhang requires: !sycl !hip kokkos_kernels 329d9265f21SStefano Zampini filter: grep -v type | grep -v "MPI processes" 330d9265f21SStefano Zampini 331d9265f21SStefano Zampini test: 332c4762a1bSJed Brown suffix: 3 333c4762a1bSJed Brown nsize: 2 334c4762a1bSJed Brown args: -mat_type mpiaij -rectA 335c4762a1bSJed Brown 336c4762a1bSJed Brown test: 337c4762a1bSJed Brown suffix: 3_aijcusparse 338c4762a1bSJed Brown nsize: 2 339c4762a1bSJed Brown args: -mat_type mpiaijcusparse -rectA 340c4762a1bSJed Brown requires: cuda 341c4762a1bSJed Brown 342c4762a1bSJed Brown test: 343c4762a1bSJed Brown suffix: 4 344c4762a1bSJed Brown nsize: 2 345c4762a1bSJed Brown args: -mat_type mpidense -rectA 346a5225ed3SStefano Zampini filter: grep -v type | grep -v "MPI processes" 347a5225ed3SStefano Zampini 348a5225ed3SStefano Zampini test: 349a5225ed3SStefano Zampini requires: cuda 350a5225ed3SStefano Zampini suffix: 4_cuda 351a5225ed3SStefano Zampini nsize: 2 352a5225ed3SStefano Zampini output_file: output/ex2_4.out 353a5225ed3SStefano Zampini args: -mat_type mpidensecuda -rectA 354a5225ed3SStefano Zampini filter: grep -v type | grep -v "MPI processes" 355c4762a1bSJed Brown 356c4762a1bSJed Brown test: 357c4762a1bSJed Brown suffix: aijcusparse_1 358c4762a1bSJed Brown args: -mat_type seqaijcusparse -rectA 359c4762a1bSJed Brown filter: grep -v "Mat Object" 360c4762a1bSJed Brown output_file: output/ex2_11_A_aijcusparse.out 361c4762a1bSJed Brown requires: cuda 362c4762a1bSJed Brown 363c4762a1bSJed Brown test: 364c4762a1bSJed Brown suffix: aijcusparse_2 365c4762a1bSJed Brown args: -mat_type seqaijcusparse -rectB 366c4762a1bSJed Brown filter: grep -v "Mat Object" 367c4762a1bSJed Brown output_file: output/ex2_11_B_aijcusparse.out 368c4762a1bSJed Brown requires: cuda 369c4762a1bSJed Brown 370c4762a1bSJed Brown TEST*/ 371