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; 129566063dSJacob Faibussowitsch PetscCall(MatGetType(mat,&mtype)); 13c4762a1bSJed Brown if (f == MatCreateTranspose) { 149566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"\nMatAXPY: (C^T)^T = (C^T)^T + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 15c4762a1bSJed Brown } else { 169566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"\nMatAXPY: (C^H)^H = (C^H)^H + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 17c4762a1bSJed Brown } 189566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 199566063dSJacob Faibussowitsch PetscCall(f(C,&D)); 209566063dSJacob Faibussowitsch PetscCall(f(D,&E)); 219566063dSJacob Faibussowitsch PetscCall(MatAXPY(E,alpha,mat,SAME_NONZERO_PATTERN)); 229566063dSJacob Faibussowitsch PetscCall(MatConvert(E,mtype,MAT_INPLACE_MATRIX,&E)); 239566063dSJacob Faibussowitsch PetscCall(MatView(E,PETSC_VIEWER_STDOUT_WORLD)); 249566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 259566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 269566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 27c4762a1bSJed Brown if (f == MatCreateTranspose) { 289566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: C = C + alpha * (A^T)^T, C=A, SAME_NONZERO_PATTERN\n")); 29c4762a1bSJed Brown } else { 309566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: C = C + alpha * (A^H)^H, C=A, SAME_NONZERO_PATTERN\n")); 31c4762a1bSJed Brown } 32c4762a1bSJed Brown if (f == MatCreateTranspose) { 339566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat,MAT_INITIAL_MATRIX,&D)); 34c4762a1bSJed Brown } else { 359566063dSJacob Faibussowitsch PetscCall(MatHermitianTranspose(mat,MAT_INITIAL_MATRIX,&D)); 36c4762a1bSJed Brown } 379566063dSJacob Faibussowitsch PetscCall(f(D,&E)); 389566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 399566063dSJacob Faibussowitsch PetscCall(MatAXPY(C,alpha,E,SAME_NONZERO_PATTERN)); 409566063dSJacob Faibussowitsch PetscCall(MatView(C,PETSC_VIEWER_STDOUT_WORLD)); 419566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 429566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 439566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 44c4762a1bSJed Brown if (f == MatCreateTranspose) { 459566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: (C^T)^T = (C^T)^T + alpha * (A^T)^T, C=A, SAME_NONZERO_PATTERN\n")); 46c4762a1bSJed Brown } else { 479566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: (C^H)^H = (C^H)^H + alpha * (A^H)^H, C=A, SAME_NONZERO_PATTERN\n")); 48c4762a1bSJed Brown } 499566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 509566063dSJacob Faibussowitsch PetscCall(f(C,&D)); 519566063dSJacob Faibussowitsch PetscCall(f(D,&E)); 529566063dSJacob Faibussowitsch PetscCall(f(mat,&F)); 539566063dSJacob Faibussowitsch PetscCall(f(F,&G)); 549566063dSJacob Faibussowitsch PetscCall(MatAXPY(E,alpha,G,SAME_NONZERO_PATTERN)); 559566063dSJacob Faibussowitsch PetscCall(MatConvert(E,mtype,MAT_INPLACE_MATRIX,&E)); 569566063dSJacob Faibussowitsch PetscCall(MatView(E,PETSC_VIEWER_STDOUT_WORLD)); 579566063dSJacob Faibussowitsch PetscCall(MatDestroy(&G)); 589566063dSJacob Faibussowitsch PetscCall(MatDestroy(&F)); 599566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 609566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 619566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 628e160fb9SStefano Zampini 638e160fb9SStefano Zampini /* Call f on a matrix that does not implement the transposition */ 649566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: Now without the transposition operation\n")); 659566063dSJacob Faibussowitsch PetscCall(MatConvert(mat,MATSHELL,MAT_INITIAL_MATRIX,&C)); 669566063dSJacob Faibussowitsch PetscCall(f(C,&D)); 679566063dSJacob Faibussowitsch PetscCall(f(D,&E)); 688e160fb9SStefano Zampini /* XXX cannot use MAT_INPLACE_MATRIX, it leaks mat */ 699566063dSJacob Faibussowitsch PetscCall(MatConvert(E,mtype,MAT_INITIAL_MATRIX,&F)); 709566063dSJacob Faibussowitsch PetscCall(MatAXPY(F,alpha,mat,SAME_NONZERO_PATTERN)); 719566063dSJacob Faibussowitsch PetscCall(MatView(F,PETSC_VIEWER_STDOUT_WORLD)); 729566063dSJacob Faibussowitsch PetscCall(MatDestroy(&F)); 739566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 749566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 759566063dSJacob Faibussowitsch PetscCall(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 PetscMPIInt size,rank; 84c4762a1bSJed Brown PetscBool flg; 85c4762a1bSJed Brown PetscScalar v, alpha; 86c4762a1bSJed Brown PetscReal normf,normi,norm1; 87c4762a1bSJed Brown 88*327415f7SBarry Smith PetscFunctionBeginUser; 899566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc,&argv,(char*)0,help)); 909566063dSJacob Faibussowitsch PetscCall(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD,PETSC_VIEWER_ASCII_COMMON)); 919566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL,NULL,"-m",&m,NULL)); 929566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); 939566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); 94c4762a1bSJed Brown n = m; 959566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL,NULL,"-rectA",&flg)); 96c4762a1bSJed Brown if (flg) {n += 2; rect = 1;} 979566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL,NULL,"-rectB",&flg)); 98c4762a1bSJed Brown if (flg) {n -= 2; rect = 1;} 99c4762a1bSJed Brown 100a5225ed3SStefano Zampini /* ------- Assemble matrix --------- */ 1019566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD,&mat)); 1029566063dSJacob Faibussowitsch PetscCall(MatSetSizes(mat,PETSC_DECIDE,PETSC_DECIDE,m,n)); 1039566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(mat)); 1049566063dSJacob Faibussowitsch PetscCall(MatSetUp(mat)); 1059566063dSJacob Faibussowitsch PetscCall(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; 1099566063dSJacob Faibussowitsch PetscCall(MatSetValues(mat,1,&i,1,&j,&v,INSERT_VALUES)); 110c4762a1bSJed Brown } 111c4762a1bSJed Brown } 1129566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(mat,MAT_FINAL_ASSEMBLY)); 1139566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(mat,MAT_FINAL_ASSEMBLY)); 114c4762a1bSJed Brown 115c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 1169566063dSJacob Faibussowitsch PetscCall(MatNorm(mat,NORM_FROBENIUS,&normf)); 1179566063dSJacob Faibussowitsch PetscCall(MatNorm(mat,NORM_1,&norm1)); 1189566063dSJacob Faibussowitsch PetscCall(MatNorm(mat,NORM_INFINITY,&normi)); 1199566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"original A: Frobenious norm = %g, one norm = %g, infinity norm = %g\n",(double)normf,(double)norm1,(double)normi)); 1209566063dSJacob Faibussowitsch PetscCall(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 121c4762a1bSJed Brown 122c4762a1bSJed Brown /* --------------- Test MatTranspose() -------------- */ 1239566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL,NULL,"-in_place",&flg)); 124c4762a1bSJed Brown if (!rect && flg) { 1259566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat,MAT_REUSE_MATRIX,&mat)); /* in-place transpose */ 1268e160fb9SStefano Zampini tmat = mat; 1278e160fb9SStefano Zampini mat = NULL; 128c4762a1bSJed Brown } else { /* out-of-place transpose */ 1299566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat,MAT_INITIAL_MATRIX,&tmat)); 130c4762a1bSJed Brown } 131c4762a1bSJed Brown 132c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 133c4762a1bSJed Brown /* Print info about transpose matrix */ 1349566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat,NORM_FROBENIUS,&normf)); 1359566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat,NORM_1,&norm1)); 1369566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat,NORM_INFINITY,&normi)); 1379566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"B = A^T: Frobenious norm = %g, one norm = %g, infinity norm = %g\n",(double)normf,(double)norm1,(double)normi)); 1389566063dSJacob Faibussowitsch PetscCall(MatView(tmat,PETSC_VIEWER_STDOUT_WORLD)); 139c4762a1bSJed Brown 140c4762a1bSJed Brown /* ----------------- Test MatAXPY(), MatAYPX() ----------------- */ 141c4762a1bSJed Brown if (mat && !rect) { 142c4762a1bSJed Brown alpha = 1.0; 1439566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetScalar(NULL,NULL,"-alpha",&alpha,NULL)); 1449566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: B = B + alpha * A\n")); 1459566063dSJacob Faibussowitsch PetscCall(MatAXPY(tmat,alpha,mat,DIFFERENT_NONZERO_PATTERN)); 1469566063dSJacob Faibussowitsch PetscCall(MatView(tmat,PETSC_VIEWER_STDOUT_WORLD)); 147c4762a1bSJed Brown 1489566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAYPX: B = alpha*B + A\n")); 1499566063dSJacob Faibussowitsch PetscCall(MatAYPX(tmat,alpha,mat,DIFFERENT_NONZERO_PATTERN)); 1509566063dSJacob Faibussowitsch PetscCall(MatView(tmat,PETSC_VIEWER_STDOUT_WORLD)); 151c4762a1bSJed Brown } 152c4762a1bSJed Brown 153c4762a1bSJed Brown { 154c4762a1bSJed Brown Mat C; 155c4762a1bSJed Brown alpha = 1.0; 1569566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: C = C + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 1579566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat,MAT_COPY_VALUES,&C)); 1589566063dSJacob Faibussowitsch PetscCall(MatAXPY(C,alpha,mat,SAME_NONZERO_PATTERN)); 1599566063dSJacob Faibussowitsch PetscCall(MatView(C,PETSC_VIEWER_STDOUT_WORLD)); 1609566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 1619566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C,alpha,mat,MatCreateTranspose)); 1629566063dSJacob Faibussowitsch PetscCall(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 */ 1689566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD,&matB)); 1699566063dSJacob Faibussowitsch PetscCall(MatSetSizes(matB,PETSC_DECIDE,PETSC_DECIDE,m,n)); 1709566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(matB)); 1719566063dSJacob Faibussowitsch PetscCall(MatSetUp(matB)); 1729566063dSJacob Faibussowitsch PetscCall(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; 1779566063dSJacob Faibussowitsch PetscCall(MatSetValues(matB,1,&i,1,&j,&v,INSERT_VALUES)); 178c4762a1bSJed Brown } 179c4762a1bSJed Brown } 1809566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(matB,MAT_FINAL_ASSEMBLY)); 1819566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(matB,MAT_FINAL_ASSEMBLY)); 1829566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD," A: original matrix:\n")); 1839566063dSJacob Faibussowitsch PetscCall(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 1849566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD," B(a subset of A):\n")); 1859566063dSJacob Faibussowitsch PetscCall(MatView(matB,PETSC_VIEWER_STDOUT_WORLD)); 1869566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatAXPY: B = B + alpha * A, SUBSET_NONZERO_PATTERN\n")); 1879566063dSJacob Faibussowitsch PetscCall(MatAXPY(mat,alpha,matB,SUBSET_NONZERO_PATTERN)); 1889566063dSJacob Faibussowitsch PetscCall(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 1899566063dSJacob Faibussowitsch PetscCall(MatDestroy(&matB)); 190c4762a1bSJed Brown } 191c4762a1bSJed Brown 192a5225ed3SStefano Zampini /* Test MatZeroRows */ 193a5225ed3SStefano Zampini j = rstart - 1; 194a5225ed3SStefano Zampini if (j < 0) j = m-1; 1952f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatZeroRows:\n")); 1969566063dSJacob Faibussowitsch PetscCall(MatZeroRows(mat,1,&j,0.0,NULL,NULL)); 1979566063dSJacob Faibussowitsch PetscCall(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 198a5225ed3SStefano Zampini 1992f605a99SJose E. Roman /* Test MatShift */ 2002f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD,"MatShift: B = B - 2*I\n")); 2012f605a99SJose E. Roman PetscCall(MatShift(mat,-2.0)); 2022f605a99SJose E. Roman PetscCall(MatView(mat,PETSC_VIEWER_STDOUT_WORLD)); 2032f605a99SJose E. Roman 2049566063dSJacob Faibussowitsch PetscCall(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD)); 205c4762a1bSJed Brown /* Free data structures */ 2069566063dSJacob Faibussowitsch PetscCall(MatDestroy(&mat)); 2079566063dSJacob Faibussowitsch PetscCall(MatDestroy(&tmat)); 2089566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 209b122ec5aSJacob Faibussowitsch return 0; 210c4762a1bSJed Brown } 211c4762a1bSJed Brown 212c4762a1bSJed Brown /*TEST 213c4762a1bSJed Brown 214c4762a1bSJed Brown test: 215c4762a1bSJed Brown suffix: 11_A 216c4762a1bSJed Brown args: -mat_type seqaij -rectA 217c4762a1bSJed Brown filter: grep -v "Mat Object" 218c4762a1bSJed Brown 219c4762a1bSJed Brown test: 220c4762a1bSJed Brown suffix: 12_A 221c4762a1bSJed Brown args: -mat_type seqdense -rectA 222a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 223a5225ed3SStefano Zampini 224a5225ed3SStefano Zampini test: 225a5225ed3SStefano Zampini requires: cuda 226a5225ed3SStefano Zampini suffix: 12_A_cuda 227a5225ed3SStefano Zampini args: -mat_type seqdensecuda -rectA 228a5225ed3SStefano Zampini output_file: output/ex2_12_A.out 229a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 230c4762a1bSJed Brown 231c4762a1bSJed Brown test: 23224b337e5SStefano Zampini requires: kokkos_kernels 233d9265f21SStefano Zampini suffix: 12_A_kokkos 234dbdd8c31SJunchao Zhang args: -mat_type aijkokkos -rectA 235d9265f21SStefano Zampini output_file: output/ex2_12_A.out 236d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 237d9265f21SStefano Zampini 238d9265f21SStefano Zampini test: 239c4762a1bSJed Brown suffix: 11_B 240c4762a1bSJed Brown args: -mat_type seqaij -rectB 241c4762a1bSJed Brown filter: grep -v "Mat Object" 242c4762a1bSJed Brown 243c4762a1bSJed Brown test: 244c4762a1bSJed Brown suffix: 12_B 245c4762a1bSJed Brown args: -mat_type seqdense -rectB 246a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 247a5225ed3SStefano Zampini 248cc19c814SJunchao Zhang testset: 249cc19c814SJunchao Zhang args: -rectB 250cc19c814SJunchao Zhang output_file: output/ex2_12_B.out 251cc19c814SJunchao Zhang filter: grep -v type | grep -v "Mat Object" 252cc19c814SJunchao Zhang 253a5225ed3SStefano Zampini test: 254a5225ed3SStefano Zampini requires: cuda 255a5225ed3SStefano Zampini suffix: 12_B_cuda 256cc19c814SJunchao Zhang args: -mat_type {{seqdensecuda seqaijcusparse}} 257c4762a1bSJed Brown 258c4762a1bSJed Brown test: 25924b337e5SStefano Zampini requires: kokkos_kernels 260d9265f21SStefano Zampini suffix: 12_B_kokkos 261cc19c814SJunchao Zhang args: -mat_type aijkokkos 262d9265f21SStefano Zampini 263d9265f21SStefano Zampini test: 264cc19c814SJunchao Zhang suffix: 12_B_aij 265cc19c814SJunchao Zhang args: -mat_type aij 266cc19c814SJunchao Zhang test: 267c4762a1bSJed Brown suffix: 21 268c4762a1bSJed Brown args: -mat_type mpiaij 2698cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 270c4762a1bSJed Brown 271c4762a1bSJed Brown test: 272c4762a1bSJed Brown suffix: 22 273c4762a1bSJed Brown args: -mat_type mpidense 274a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 275a5225ed3SStefano Zampini 276a5225ed3SStefano Zampini test: 277a5225ed3SStefano Zampini requires: cuda 278a5225ed3SStefano Zampini suffix: 22_cuda 279a5225ed3SStefano Zampini output_file: output/ex2_22.out 280a5225ed3SStefano Zampini args: -mat_type mpidensecuda 281a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 282c4762a1bSJed Brown 283c4762a1bSJed Brown test: 28424b337e5SStefano Zampini requires: kokkos_kernels 285d9265f21SStefano Zampini suffix: 22_kokkos 286d9265f21SStefano Zampini output_file: output/ex2_22.out 287dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 288d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 289d9265f21SStefano Zampini 290d9265f21SStefano Zampini test: 291c4762a1bSJed Brown suffix: 23 292c4762a1bSJed Brown nsize: 3 293c4762a1bSJed Brown args: -mat_type mpiaij 2948cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 295c4762a1bSJed Brown 296c4762a1bSJed Brown test: 297c4762a1bSJed Brown suffix: 24 298c4762a1bSJed Brown nsize: 3 299c4762a1bSJed Brown args: -mat_type mpidense 300a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 301a5225ed3SStefano Zampini 302a5225ed3SStefano Zampini test: 303a5225ed3SStefano Zampini requires: cuda 304a5225ed3SStefano Zampini suffix: 24_cuda 305a5225ed3SStefano Zampini nsize: 3 306a5225ed3SStefano Zampini output_file: output/ex2_24.out 307a5225ed3SStefano Zampini args: -mat_type mpidensecuda 308a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 309c4762a1bSJed Brown 310c4762a1bSJed Brown test: 311c4762a1bSJed Brown suffix: 2_aijcusparse_1 312c4762a1bSJed Brown args: -mat_type mpiaijcusparse 313a5225ed3SStefano Zampini output_file: output/ex2_21.out 314c4762a1bSJed Brown requires: cuda 3158cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 316c4762a1bSJed Brown 317c4762a1bSJed Brown test: 318629dcba7SJunchao Zhang suffix: 2_aijkokkos_1 319629dcba7SJunchao Zhang args: -mat_type aijkokkos 320629dcba7SJunchao Zhang output_file: output/ex2_21.out 321629dcba7SJunchao Zhang requires: kokkos_kernels 3228cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 323629dcba7SJunchao Zhang 324629dcba7SJunchao Zhang test: 325c4762a1bSJed Brown suffix: 2_aijcusparse_2 326c4762a1bSJed Brown nsize: 3 327c4762a1bSJed Brown args: -mat_type mpiaijcusparse 328c4762a1bSJed Brown output_file: output/ex2_23.out 329c4762a1bSJed Brown requires: cuda 3308cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 331c4762a1bSJed Brown 332c4762a1bSJed Brown test: 333d9265f21SStefano Zampini suffix: 2_aijkokkos_2 334d9265f21SStefano Zampini nsize: 3 335dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 336d9265f21SStefano Zampini output_file: output/ex2_23.out 337629dcba7SJunchao Zhang # Turn off hip due to intermittent CI failures on hip.txcorp.com. Should re-enable this test when the machine is upgraded. 338629dcba7SJunchao Zhang requires: !sycl !hip kokkos_kernels 3398cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 340d9265f21SStefano Zampini 341d9265f21SStefano Zampini test: 342c4762a1bSJed Brown suffix: 3 343c4762a1bSJed Brown nsize: 2 344c4762a1bSJed Brown args: -mat_type mpiaij -rectA 345c4762a1bSJed Brown 346c4762a1bSJed Brown test: 347c4762a1bSJed Brown suffix: 3_aijcusparse 348c4762a1bSJed Brown nsize: 2 349c4762a1bSJed Brown args: -mat_type mpiaijcusparse -rectA 350c4762a1bSJed Brown requires: cuda 351c4762a1bSJed Brown 352c4762a1bSJed Brown test: 353c4762a1bSJed Brown suffix: 4 354c4762a1bSJed Brown nsize: 2 355c4762a1bSJed Brown args: -mat_type mpidense -rectA 3568cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 357a5225ed3SStefano Zampini 358a5225ed3SStefano Zampini test: 359a5225ed3SStefano Zampini requires: cuda 360a5225ed3SStefano Zampini suffix: 4_cuda 361a5225ed3SStefano Zampini nsize: 2 362a5225ed3SStefano Zampini output_file: output/ex2_4.out 363a5225ed3SStefano Zampini args: -mat_type mpidensecuda -rectA 3648cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 365c4762a1bSJed Brown 366c4762a1bSJed Brown test: 367c4762a1bSJed Brown suffix: aijcusparse_1 368c4762a1bSJed Brown args: -mat_type seqaijcusparse -rectA 369c4762a1bSJed Brown filter: grep -v "Mat Object" 370c4762a1bSJed Brown output_file: output/ex2_11_A_aijcusparse.out 371c4762a1bSJed Brown requires: cuda 372c4762a1bSJed Brown 373c4762a1bSJed Brown TEST*/ 374