1c4762a1bSJed Brown 2c4762a1bSJed Brown static char help[] = "Tests MatTranspose(), MatNorm(), MatAXPY() and MatAYPX().\n\n"; 3c4762a1bSJed Brown 4c4762a1bSJed Brown #include <petscmat.h> 5c4762a1bSJed Brown 69371c9d4SSatish Balay static PetscErrorCode TransposeAXPY(Mat C, PetscScalar alpha, Mat mat, PetscErrorCode (*f)(Mat, Mat *)) { 7c4762a1bSJed Brown Mat D, E, F, G; 88e160fb9SStefano Zampini MatType mtype; 9c4762a1bSJed Brown 10c4762a1bSJed Brown PetscFunctionBegin; 119566063dSJacob Faibussowitsch PetscCall(MatGetType(mat, &mtype)); 12c4762a1bSJed Brown if (f == MatCreateTranspose) { 139566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\nMatAXPY: (C^T)^T = (C^T)^T + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 14c4762a1bSJed Brown } else { 159566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "\nMatAXPY: (C^H)^H = (C^H)^H + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 16c4762a1bSJed Brown } 179566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat, MAT_COPY_VALUES, &C)); 189566063dSJacob Faibussowitsch PetscCall(f(C, &D)); 199566063dSJacob Faibussowitsch PetscCall(f(D, &E)); 209566063dSJacob Faibussowitsch PetscCall(MatAXPY(E, alpha, mat, SAME_NONZERO_PATTERN)); 219566063dSJacob Faibussowitsch PetscCall(MatConvert(E, mtype, MAT_INPLACE_MATRIX, &E)); 229566063dSJacob Faibussowitsch PetscCall(MatView(E, PETSC_VIEWER_STDOUT_WORLD)); 239566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 249566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 259566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 26c4762a1bSJed Brown if (f == MatCreateTranspose) { 279566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: C = C + alpha * (A^T)^T, C=A, SAME_NONZERO_PATTERN\n")); 28c4762a1bSJed Brown } else { 299566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: C = C + alpha * (A^H)^H, C=A, SAME_NONZERO_PATTERN\n")); 30c4762a1bSJed Brown } 31c4762a1bSJed Brown if (f == MatCreateTranspose) { 329566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_INITIAL_MATRIX, &D)); 33c4762a1bSJed Brown } else { 349566063dSJacob Faibussowitsch PetscCall(MatHermitianTranspose(mat, MAT_INITIAL_MATRIX, &D)); 35c4762a1bSJed Brown } 369566063dSJacob Faibussowitsch PetscCall(f(D, &E)); 379566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat, MAT_COPY_VALUES, &C)); 389566063dSJacob Faibussowitsch PetscCall(MatAXPY(C, alpha, E, SAME_NONZERO_PATTERN)); 399566063dSJacob Faibussowitsch PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); 409566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 419566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 429566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 43c4762a1bSJed Brown if (f == MatCreateTranspose) { 449566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: (C^T)^T = (C^T)^T + alpha * (A^T)^T, C=A, SAME_NONZERO_PATTERN\n")); 45c4762a1bSJed Brown } else { 469566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: (C^H)^H = (C^H)^H + alpha * (A^H)^H, C=A, SAME_NONZERO_PATTERN\n")); 47c4762a1bSJed Brown } 489566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat, MAT_COPY_VALUES, &C)); 499566063dSJacob Faibussowitsch PetscCall(f(C, &D)); 509566063dSJacob Faibussowitsch PetscCall(f(D, &E)); 519566063dSJacob Faibussowitsch PetscCall(f(mat, &F)); 529566063dSJacob Faibussowitsch PetscCall(f(F, &G)); 539566063dSJacob Faibussowitsch PetscCall(MatAXPY(E, alpha, G, SAME_NONZERO_PATTERN)); 549566063dSJacob Faibussowitsch PetscCall(MatConvert(E, mtype, MAT_INPLACE_MATRIX, &E)); 559566063dSJacob Faibussowitsch PetscCall(MatView(E, PETSC_VIEWER_STDOUT_WORLD)); 569566063dSJacob Faibussowitsch PetscCall(MatDestroy(&G)); 579566063dSJacob Faibussowitsch PetscCall(MatDestroy(&F)); 589566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 599566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 609566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 618e160fb9SStefano Zampini 628e160fb9SStefano Zampini /* Call f on a matrix that does not implement the transposition */ 639566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: Now without the transposition operation\n")); 649566063dSJacob Faibussowitsch PetscCall(MatConvert(mat, MATSHELL, MAT_INITIAL_MATRIX, &C)); 659566063dSJacob Faibussowitsch PetscCall(f(C, &D)); 669566063dSJacob Faibussowitsch PetscCall(f(D, &E)); 678e160fb9SStefano Zampini /* XXX cannot use MAT_INPLACE_MATRIX, it leaks mat */ 689566063dSJacob Faibussowitsch PetscCall(MatConvert(E, mtype, MAT_INITIAL_MATRIX, &F)); 699566063dSJacob Faibussowitsch PetscCall(MatAXPY(F, alpha, mat, SAME_NONZERO_PATTERN)); 709566063dSJacob Faibussowitsch PetscCall(MatView(F, PETSC_VIEWER_STDOUT_WORLD)); 719566063dSJacob Faibussowitsch PetscCall(MatDestroy(&F)); 729566063dSJacob Faibussowitsch PetscCall(MatDestroy(&E)); 739566063dSJacob Faibussowitsch PetscCall(MatDestroy(&D)); 749566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 75c4762a1bSJed Brown PetscFunctionReturn(0); 76c4762a1bSJed Brown } 77c4762a1bSJed Brown 789371c9d4SSatish Balay int main(int argc, char **argv) { 79c4762a1bSJed Brown Mat mat, tmat = 0; 80c4762a1bSJed Brown PetscInt m = 7, n, i, j, rstart, rend, rect = 0; 81c4762a1bSJed Brown PetscMPIInt size, rank; 82c4762a1bSJed Brown PetscBool flg; 83c4762a1bSJed Brown PetscScalar v, alpha; 84c4762a1bSJed Brown PetscReal normf, normi, norm1; 85c4762a1bSJed Brown 86327415f7SBarry Smith PetscFunctionBeginUser; 879566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, (char *)0, help)); 889566063dSJacob Faibussowitsch PetscCall(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_ASCII_COMMON)); 899566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-m", &m, NULL)); 909566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD, &rank)); 919566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD, &size)); 92c4762a1bSJed Brown n = m; 939566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-rectA", &flg)); 949371c9d4SSatish Balay if (flg) { 959371c9d4SSatish Balay n += 2; 969371c9d4SSatish Balay rect = 1; 979371c9d4SSatish Balay } 989566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-rectB", &flg)); 999371c9d4SSatish Balay if (flg) { 1009371c9d4SSatish Balay n -= 2; 1019371c9d4SSatish Balay rect = 1; 1029371c9d4SSatish Balay } 103c4762a1bSJed Brown 104a5225ed3SStefano Zampini /* ------- Assemble matrix --------- */ 1059566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &mat)); 1069566063dSJacob Faibussowitsch PetscCall(MatSetSizes(mat, PETSC_DECIDE, PETSC_DECIDE, m, n)); 1079566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(mat)); 1089566063dSJacob Faibussowitsch PetscCall(MatSetUp(mat)); 1099566063dSJacob Faibussowitsch PetscCall(MatGetOwnershipRange(mat, &rstart, &rend)); 110c4762a1bSJed Brown for (i = rstart; i < rend; i++) { 111c4762a1bSJed Brown for (j = 0; j < n; j++) { 1128e160fb9SStefano Zampini v = 10.0 * i + j + 1.0; 1139566063dSJacob Faibussowitsch PetscCall(MatSetValues(mat, 1, &i, 1, &j, &v, INSERT_VALUES)); 114c4762a1bSJed Brown } 115c4762a1bSJed Brown } 1169566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(mat, MAT_FINAL_ASSEMBLY)); 1179566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(mat, MAT_FINAL_ASSEMBLY)); 118c4762a1bSJed Brown 119c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 1209566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_FROBENIUS, &normf)); 1219566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_1, &norm1)); 1229566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_INFINITY, &normi)); 1239566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "original A: Frobenious norm = %g, one norm = %g, infinity norm = %g\n", (double)normf, (double)norm1, (double)normi)); 1249566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 125c4762a1bSJed Brown 126c4762a1bSJed Brown /* --------------- Test MatTranspose() -------------- */ 1279566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-in_place", &flg)); 128c4762a1bSJed Brown if (!rect && flg) { 1299566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_REUSE_MATRIX, &mat)); /* in-place transpose */ 1308e160fb9SStefano Zampini tmat = mat; 1318e160fb9SStefano Zampini mat = NULL; 132c4762a1bSJed Brown } else { /* out-of-place transpose */ 1339566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_INITIAL_MATRIX, &tmat)); 134c4762a1bSJed Brown } 135c4762a1bSJed Brown 136c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 137c4762a1bSJed Brown /* Print info about transpose matrix */ 1389566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_FROBENIUS, &normf)); 1399566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_1, &norm1)); 1409566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_INFINITY, &normi)); 1419566063dSJacob 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)); 1429566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 143c4762a1bSJed Brown 144c4762a1bSJed Brown /* ----------------- Test MatAXPY(), MatAYPX() ----------------- */ 145c4762a1bSJed Brown if (mat && !rect) { 146c4762a1bSJed Brown alpha = 1.0; 1479566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetScalar(NULL, NULL, "-alpha", &alpha, NULL)); 1489566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: B = B + alpha * A\n")); 1499566063dSJacob Faibussowitsch PetscCall(MatAXPY(tmat, alpha, mat, DIFFERENT_NONZERO_PATTERN)); 1509566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 151c4762a1bSJed Brown 1529566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAYPX: B = alpha*B + A\n")); 1539566063dSJacob Faibussowitsch PetscCall(MatAYPX(tmat, alpha, mat, DIFFERENT_NONZERO_PATTERN)); 1549566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 155c4762a1bSJed Brown } 156c4762a1bSJed Brown 157c4762a1bSJed Brown { 158c4762a1bSJed Brown Mat C; 159c4762a1bSJed Brown alpha = 1.0; 1609566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: C = C + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 1619566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat, MAT_COPY_VALUES, &C)); 1629566063dSJacob Faibussowitsch PetscCall(MatAXPY(C, alpha, mat, SAME_NONZERO_PATTERN)); 1639566063dSJacob Faibussowitsch PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); 1649566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 1659566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C, alpha, mat, MatCreateTranspose)); 1669566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C, alpha, mat, MatCreateHermitianTranspose)); 167c4762a1bSJed Brown } 168c4762a1bSJed Brown 169c4762a1bSJed Brown { 170c4762a1bSJed Brown Mat matB; 171c4762a1bSJed Brown /* get matB that has nonzeros of mat in all even numbers of row and col */ 1729566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &matB)); 1739566063dSJacob Faibussowitsch PetscCall(MatSetSizes(matB, PETSC_DECIDE, PETSC_DECIDE, m, n)); 1749566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(matB)); 1759566063dSJacob Faibussowitsch PetscCall(MatSetUp(matB)); 1769566063dSJacob Faibussowitsch PetscCall(MatGetOwnershipRange(matB, &rstart, &rend)); 177c4762a1bSJed Brown if (rstart % 2 != 0) rstart++; 178c4762a1bSJed Brown for (i = rstart; i < rend; i += 2) { 179c4762a1bSJed Brown for (j = 0; j < n; j += 2) { 1808e160fb9SStefano Zampini v = 10.0 * i + j + 1.0; 1819566063dSJacob Faibussowitsch PetscCall(MatSetValues(matB, 1, &i, 1, &j, &v, INSERT_VALUES)); 182c4762a1bSJed Brown } 183c4762a1bSJed Brown } 1849566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(matB, MAT_FINAL_ASSEMBLY)); 1859566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(matB, MAT_FINAL_ASSEMBLY)); 1869566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, " A: original matrix:\n")); 1879566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 1889566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, " B(a subset of A):\n")); 1899566063dSJacob Faibussowitsch PetscCall(MatView(matB, PETSC_VIEWER_STDOUT_WORLD)); 1909566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: B = B + alpha * A, SUBSET_NONZERO_PATTERN\n")); 1919566063dSJacob Faibussowitsch PetscCall(MatAXPY(mat, alpha, matB, SUBSET_NONZERO_PATTERN)); 1929566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 1939566063dSJacob Faibussowitsch PetscCall(MatDestroy(&matB)); 194c4762a1bSJed Brown } 195c4762a1bSJed Brown 196a5225ed3SStefano Zampini /* Test MatZeroRows */ 197a5225ed3SStefano Zampini j = rstart - 1; 198a5225ed3SStefano Zampini if (j < 0) j = m - 1; 1992f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatZeroRows:\n")); 2009566063dSJacob Faibussowitsch PetscCall(MatZeroRows(mat, 1, &j, 0.0, NULL, NULL)); 2019566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 202a5225ed3SStefano Zampini 2032f605a99SJose E. Roman /* Test MatShift */ 2042f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatShift: B = B - 2*I\n")); 2052f605a99SJose E. Roman PetscCall(MatShift(mat, -2.0)); 2062f605a99SJose E. Roman PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 2072f605a99SJose E. Roman 2089566063dSJacob Faibussowitsch PetscCall(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD)); 209c4762a1bSJed Brown /* Free data structures */ 2109566063dSJacob Faibussowitsch PetscCall(MatDestroy(&mat)); 2119566063dSJacob Faibussowitsch PetscCall(MatDestroy(&tmat)); 2129566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 213b122ec5aSJacob Faibussowitsch return 0; 214c4762a1bSJed Brown } 215c4762a1bSJed Brown 216c4762a1bSJed Brown /*TEST 217c4762a1bSJed Brown 218c4762a1bSJed Brown test: 219c4762a1bSJed Brown suffix: 11_A 220c4762a1bSJed Brown args: -mat_type seqaij -rectA 221c4762a1bSJed Brown filter: grep -v "Mat Object" 222c4762a1bSJed Brown 223c4762a1bSJed Brown test: 224c4762a1bSJed Brown suffix: 12_A 225c4762a1bSJed Brown args: -mat_type seqdense -rectA 226a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 227a5225ed3SStefano Zampini 228a5225ed3SStefano Zampini test: 229a5225ed3SStefano Zampini requires: cuda 230a5225ed3SStefano Zampini suffix: 12_A_cuda 231a5225ed3SStefano Zampini args: -mat_type seqdensecuda -rectA 232a5225ed3SStefano Zampini output_file: output/ex2_12_A.out 233a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 234c4762a1bSJed Brown 235c4762a1bSJed Brown test: 23624b337e5SStefano Zampini requires: kokkos_kernels 237d9265f21SStefano Zampini suffix: 12_A_kokkos 238dbdd8c31SJunchao Zhang args: -mat_type aijkokkos -rectA 239d9265f21SStefano Zampini output_file: output/ex2_12_A.out 240d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 241d9265f21SStefano Zampini 242d9265f21SStefano Zampini test: 243c4762a1bSJed Brown suffix: 11_B 244c4762a1bSJed Brown args: -mat_type seqaij -rectB 245c4762a1bSJed Brown filter: grep -v "Mat Object" 246c4762a1bSJed Brown 247c4762a1bSJed Brown test: 248c4762a1bSJed Brown suffix: 12_B 249c4762a1bSJed Brown args: -mat_type seqdense -rectB 250a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 251a5225ed3SStefano Zampini 252cc19c814SJunchao Zhang testset: 253cc19c814SJunchao Zhang args: -rectB 254cc19c814SJunchao Zhang output_file: output/ex2_12_B.out 255cc19c814SJunchao Zhang filter: grep -v type | grep -v "Mat Object" 256cc19c814SJunchao Zhang 257a5225ed3SStefano Zampini test: 258a5225ed3SStefano Zampini requires: cuda 259a5225ed3SStefano Zampini suffix: 12_B_cuda 260cc19c814SJunchao Zhang args: -mat_type {{seqdensecuda seqaijcusparse}} 261c4762a1bSJed Brown 262c4762a1bSJed Brown test: 26324b337e5SStefano Zampini requires: kokkos_kernels 264d9265f21SStefano Zampini suffix: 12_B_kokkos 265cc19c814SJunchao Zhang args: -mat_type aijkokkos 266d9265f21SStefano Zampini 267d9265f21SStefano Zampini test: 268cc19c814SJunchao Zhang suffix: 12_B_aij 269cc19c814SJunchao Zhang args: -mat_type aij 270cc19c814SJunchao Zhang test: 271c4762a1bSJed Brown suffix: 21 272c4762a1bSJed Brown args: -mat_type mpiaij 2738cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 274c4762a1bSJed Brown 275c4762a1bSJed Brown test: 276c4762a1bSJed Brown suffix: 22 277c4762a1bSJed Brown args: -mat_type mpidense 278a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 279a5225ed3SStefano Zampini 280a5225ed3SStefano Zampini test: 281a5225ed3SStefano Zampini requires: cuda 282a5225ed3SStefano Zampini suffix: 22_cuda 283a5225ed3SStefano Zampini output_file: output/ex2_22.out 284a5225ed3SStefano Zampini args: -mat_type mpidensecuda 285a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 286c4762a1bSJed Brown 287c4762a1bSJed Brown test: 28824b337e5SStefano Zampini requires: kokkos_kernels 289d9265f21SStefano Zampini suffix: 22_kokkos 290d9265f21SStefano Zampini output_file: output/ex2_22.out 291dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 292d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 293d9265f21SStefano Zampini 294d9265f21SStefano Zampini test: 295c4762a1bSJed Brown suffix: 23 296c4762a1bSJed Brown nsize: 3 297c4762a1bSJed Brown args: -mat_type mpiaij 2988cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 299c4762a1bSJed Brown 300c4762a1bSJed Brown test: 301c4762a1bSJed Brown suffix: 24 302c4762a1bSJed Brown nsize: 3 303c4762a1bSJed Brown args: -mat_type mpidense 304a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 305a5225ed3SStefano Zampini 306a5225ed3SStefano Zampini test: 307a5225ed3SStefano Zampini requires: cuda 308a5225ed3SStefano Zampini suffix: 24_cuda 309a5225ed3SStefano Zampini nsize: 3 310a5225ed3SStefano Zampini output_file: output/ex2_24.out 311a5225ed3SStefano Zampini args: -mat_type mpidensecuda 312a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 313c4762a1bSJed Brown 314c4762a1bSJed Brown test: 315c4762a1bSJed Brown suffix: 2_aijcusparse_1 316c4762a1bSJed Brown args: -mat_type mpiaijcusparse 317a5225ed3SStefano Zampini output_file: output/ex2_21.out 318c4762a1bSJed Brown requires: cuda 3198cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 320c4762a1bSJed Brown 321c4762a1bSJed Brown test: 322629dcba7SJunchao Zhang suffix: 2_aijkokkos_1 323629dcba7SJunchao Zhang args: -mat_type aijkokkos 324629dcba7SJunchao Zhang output_file: output/ex2_21.out 325629dcba7SJunchao Zhang requires: kokkos_kernels 3268cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 327629dcba7SJunchao Zhang 328629dcba7SJunchao Zhang test: 329c4762a1bSJed Brown suffix: 2_aijcusparse_2 330c4762a1bSJed Brown nsize: 3 331c4762a1bSJed Brown args: -mat_type mpiaijcusparse 332c4762a1bSJed Brown output_file: output/ex2_23.out 333c4762a1bSJed Brown requires: cuda 3348cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 335c4762a1bSJed Brown 336c4762a1bSJed Brown test: 337d9265f21SStefano Zampini suffix: 2_aijkokkos_2 338d9265f21SStefano Zampini nsize: 3 339dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 340d9265f21SStefano Zampini output_file: output/ex2_23.out 341629dcba7SJunchao Zhang # Turn off hip due to intermittent CI failures on hip.txcorp.com. Should re-enable this test when the machine is upgraded. 342*dcfd994dSJunchao Zhang requires: !hip kokkos_kernels 343*dcfd994dSJunchao Zhang filter: grep -v type | grep -v "MPI processes" 344d9265f21SStefano Zampini 345d9265f21SStefano Zampini test: 346c4762a1bSJed Brown suffix: 3 347c4762a1bSJed Brown nsize: 2 348c4762a1bSJed Brown args: -mat_type mpiaij -rectA 349c4762a1bSJed Brown 350c4762a1bSJed Brown test: 351c4762a1bSJed Brown suffix: 3_aijcusparse 352c4762a1bSJed Brown nsize: 2 353c4762a1bSJed Brown args: -mat_type mpiaijcusparse -rectA 354c4762a1bSJed Brown requires: cuda 355c4762a1bSJed Brown 356c4762a1bSJed Brown test: 357c4762a1bSJed Brown suffix: 4 358c4762a1bSJed Brown nsize: 2 359c4762a1bSJed Brown args: -mat_type mpidense -rectA 3608cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 361a5225ed3SStefano Zampini 362a5225ed3SStefano Zampini test: 363a5225ed3SStefano Zampini requires: cuda 364a5225ed3SStefano Zampini suffix: 4_cuda 365a5225ed3SStefano Zampini nsize: 2 366a5225ed3SStefano Zampini output_file: output/ex2_4.out 367a5225ed3SStefano Zampini args: -mat_type mpidensecuda -rectA 3688cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 369c4762a1bSJed Brown 370c4762a1bSJed Brown test: 371c4762a1bSJed Brown suffix: aijcusparse_1 372c4762a1bSJed Brown args: -mat_type seqaijcusparse -rectA 373c4762a1bSJed Brown filter: grep -v "Mat Object" 374c4762a1bSJed Brown output_file: output/ex2_11_A_aijcusparse.out 375c4762a1bSJed Brown requires: cuda 376c4762a1bSJed Brown 377c4762a1bSJed Brown TEST*/ 378