1c4762a1bSJed Brown static char help[] = "Tests MatTranspose(), MatNorm(), MatAXPY() and MatAYPX().\n\n"; 2c4762a1bSJed Brown 3c4762a1bSJed Brown #include <petscmat.h> 4c4762a1bSJed Brown 5d71ae5a4SJacob Faibussowitsch static PetscErrorCode TransposeAXPY(Mat C, PetscScalar alpha, Mat mat, PetscErrorCode (*f)(Mat, Mat *)) 6d71ae5a4SJacob Faibussowitsch { 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)); 753ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 76c4762a1bSJed Brown } 77c4762a1bSJed Brown 78d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv) 79d71ae5a4SJacob Faibussowitsch { 80c4762a1bSJed Brown Mat mat, tmat = 0; 81c4762a1bSJed Brown PetscInt m = 7, n, i, j, rstart, rend, rect = 0; 82c4762a1bSJed Brown PetscMPIInt size, rank; 83c4762a1bSJed Brown PetscBool flg; 84c4762a1bSJed Brown PetscScalar v, alpha; 85c4762a1bSJed Brown PetscReal normf, normi, norm1; 86c4762a1bSJed Brown 87327415f7SBarry Smith PetscFunctionBeginUser; 88*c8025a54SPierre Jolivet PetscCall(PetscInitialize(&argc, &argv, NULL, help)); 899566063dSJacob Faibussowitsch PetscCall(PetscViewerPushFormat(PETSC_VIEWER_STDOUT_WORLD, PETSC_VIEWER_ASCII_COMMON)); 909566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-m", &m, NULL)); 919566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD, &rank)); 929566063dSJacob Faibussowitsch PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD, &size)); 93c4762a1bSJed Brown n = m; 949566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-rectA", &flg)); 959371c9d4SSatish Balay if (flg) { 969371c9d4SSatish Balay n += 2; 979371c9d4SSatish Balay rect = 1; 989371c9d4SSatish Balay } 999566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-rectB", &flg)); 1009371c9d4SSatish Balay if (flg) { 1019371c9d4SSatish Balay n -= 2; 1029371c9d4SSatish Balay rect = 1; 1039371c9d4SSatish Balay } 104c4762a1bSJed Brown 105a5225ed3SStefano Zampini /* ------- Assemble matrix --------- */ 1069566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &mat)); 1079566063dSJacob Faibussowitsch PetscCall(MatSetSizes(mat, PETSC_DECIDE, PETSC_DECIDE, m, n)); 1089566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(mat)); 1099566063dSJacob Faibussowitsch PetscCall(MatSetUp(mat)); 1109566063dSJacob Faibussowitsch PetscCall(MatGetOwnershipRange(mat, &rstart, &rend)); 111c4762a1bSJed Brown for (i = rstart; i < rend; i++) { 112c4762a1bSJed Brown for (j = 0; j < n; j++) { 1138e160fb9SStefano Zampini v = 10.0 * i + j + 1.0; 1149566063dSJacob Faibussowitsch PetscCall(MatSetValues(mat, 1, &i, 1, &j, &v, INSERT_VALUES)); 115c4762a1bSJed Brown } 116c4762a1bSJed Brown } 1179566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(mat, MAT_FINAL_ASSEMBLY)); 1189566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(mat, MAT_FINAL_ASSEMBLY)); 119c4762a1bSJed Brown 120c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 1219566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_FROBENIUS, &normf)); 1229566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_1, &norm1)); 1239566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_INFINITY, &normi)); 1242db2b1b2SPierre Jolivet PetscCall(PetscPrintf(PETSC_COMM_WORLD, "original A: Frobenius norm = %g, one norm = %g, infinity norm = %g\n", (double)normf, (double)norm1, (double)normi)); 1259566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 126c4762a1bSJed Brown 127c4762a1bSJed Brown /* --------------- Test MatTranspose() -------------- */ 1289566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-in_place", &flg)); 129c4762a1bSJed Brown if (!rect && flg) { 1309566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_REUSE_MATRIX, &mat)); /* in-place transpose */ 1318e160fb9SStefano Zampini tmat = mat; 1328e160fb9SStefano Zampini mat = NULL; 133c4762a1bSJed Brown } else { /* out-of-place transpose */ 1349566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_INITIAL_MATRIX, &tmat)); 135c4762a1bSJed Brown } 136c4762a1bSJed Brown 137c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 138c4762a1bSJed Brown /* Print info about transpose matrix */ 1399566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_FROBENIUS, &normf)); 1409566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_1, &norm1)); 1419566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_INFINITY, &normi)); 1422db2b1b2SPierre Jolivet PetscCall(PetscPrintf(PETSC_COMM_WORLD, "B = A^T: Frobenius norm = %g, one norm = %g, infinity norm = %g\n", (double)normf, (double)norm1, (double)normi)); 1439566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 144c4762a1bSJed Brown 145c4762a1bSJed Brown /* ----------------- Test MatAXPY(), MatAYPX() ----------------- */ 146c4762a1bSJed Brown if (mat && !rect) { 147c4762a1bSJed Brown alpha = 1.0; 1489566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetScalar(NULL, NULL, "-alpha", &alpha, NULL)); 1499566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: B = B + alpha * A\n")); 1509566063dSJacob Faibussowitsch PetscCall(MatAXPY(tmat, alpha, mat, DIFFERENT_NONZERO_PATTERN)); 1519566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 152c4762a1bSJed Brown 1539566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAYPX: B = alpha*B + A\n")); 1549566063dSJacob Faibussowitsch PetscCall(MatAYPX(tmat, alpha, mat, DIFFERENT_NONZERO_PATTERN)); 1559566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 156c4762a1bSJed Brown } 157c4762a1bSJed Brown 158c4762a1bSJed Brown { 159c4762a1bSJed Brown Mat C; 160c4762a1bSJed Brown alpha = 1.0; 1619566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: C = C + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 1629566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat, MAT_COPY_VALUES, &C)); 1639566063dSJacob Faibussowitsch PetscCall(MatAXPY(C, alpha, mat, SAME_NONZERO_PATTERN)); 1649566063dSJacob Faibussowitsch PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); 1659566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 1669566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C, alpha, mat, MatCreateTranspose)); 1679566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C, alpha, mat, MatCreateHermitianTranspose)); 168c4762a1bSJed Brown } 169c4762a1bSJed Brown 170c4762a1bSJed Brown { 171c4762a1bSJed Brown Mat matB; 172c4762a1bSJed Brown /* get matB that has nonzeros of mat in all even numbers of row and col */ 1739566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &matB)); 1749566063dSJacob Faibussowitsch PetscCall(MatSetSizes(matB, PETSC_DECIDE, PETSC_DECIDE, m, n)); 1759566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(matB)); 1769566063dSJacob Faibussowitsch PetscCall(MatSetUp(matB)); 1779566063dSJacob Faibussowitsch PetscCall(MatGetOwnershipRange(matB, &rstart, &rend)); 178c4762a1bSJed Brown if (rstart % 2 != 0) rstart++; 179c4762a1bSJed Brown for (i = rstart; i < rend; i += 2) { 180c4762a1bSJed Brown for (j = 0; j < n; j += 2) { 1818e160fb9SStefano Zampini v = 10.0 * i + j + 1.0; 1829566063dSJacob Faibussowitsch PetscCall(MatSetValues(matB, 1, &i, 1, &j, &v, INSERT_VALUES)); 183c4762a1bSJed Brown } 184c4762a1bSJed Brown } 1859566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(matB, MAT_FINAL_ASSEMBLY)); 1869566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(matB, MAT_FINAL_ASSEMBLY)); 1879566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, " A: original matrix:\n")); 1889566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 1899566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, " B(a subset of A):\n")); 1909566063dSJacob Faibussowitsch PetscCall(MatView(matB, PETSC_VIEWER_STDOUT_WORLD)); 1919566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: B = B + alpha * A, SUBSET_NONZERO_PATTERN\n")); 1929566063dSJacob Faibussowitsch PetscCall(MatAXPY(mat, alpha, matB, SUBSET_NONZERO_PATTERN)); 1939566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 1949566063dSJacob Faibussowitsch PetscCall(MatDestroy(&matB)); 195c4762a1bSJed Brown } 196c4762a1bSJed Brown 197a5225ed3SStefano Zampini /* Test MatZeroRows */ 198a5225ed3SStefano Zampini j = rstart - 1; 199a5225ed3SStefano Zampini if (j < 0) j = m - 1; 2002f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatZeroRows:\n")); 2019566063dSJacob Faibussowitsch PetscCall(MatZeroRows(mat, 1, &j, 0.0, NULL, NULL)); 2029566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 203a5225ed3SStefano Zampini 2042f605a99SJose E. Roman /* Test MatShift */ 2052f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatShift: B = B - 2*I\n")); 2062f605a99SJose E. Roman PetscCall(MatShift(mat, -2.0)); 2072f605a99SJose E. Roman PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 2082f605a99SJose E. Roman 2099566063dSJacob Faibussowitsch PetscCall(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD)); 210c4762a1bSJed Brown /* Free data structures */ 2119566063dSJacob Faibussowitsch PetscCall(MatDestroy(&mat)); 2129566063dSJacob Faibussowitsch PetscCall(MatDestroy(&tmat)); 2139566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 214b122ec5aSJacob Faibussowitsch return 0; 215c4762a1bSJed Brown } 216c4762a1bSJed Brown 217c4762a1bSJed Brown /*TEST 218c4762a1bSJed Brown 219c4762a1bSJed Brown test: 220c4762a1bSJed Brown suffix: 11_A 221c4762a1bSJed Brown args: -mat_type seqaij -rectA 222c4762a1bSJed Brown filter: grep -v "Mat Object" 223c4762a1bSJed Brown 224c4762a1bSJed Brown test: 225c4762a1bSJed Brown suffix: 12_A 226c4762a1bSJed Brown args: -mat_type seqdense -rectA 227a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 228a5225ed3SStefano Zampini 229a5225ed3SStefano Zampini test: 230a5225ed3SStefano Zampini requires: cuda 231a5225ed3SStefano Zampini suffix: 12_A_cuda 232a5225ed3SStefano Zampini args: -mat_type seqdensecuda -rectA 233a5225ed3SStefano Zampini output_file: output/ex2_12_A.out 234a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 235c4762a1bSJed Brown 236c4762a1bSJed Brown test: 23724b337e5SStefano Zampini requires: kokkos_kernels 238d9265f21SStefano Zampini suffix: 12_A_kokkos 239dbdd8c31SJunchao Zhang args: -mat_type aijkokkos -rectA 240d9265f21SStefano Zampini output_file: output/ex2_12_A.out 241d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 242d9265f21SStefano Zampini 243d9265f21SStefano Zampini test: 244c4762a1bSJed Brown suffix: 11_B 245c4762a1bSJed Brown args: -mat_type seqaij -rectB 246c4762a1bSJed Brown filter: grep -v "Mat Object" 247c4762a1bSJed Brown 248c4762a1bSJed Brown test: 249c4762a1bSJed Brown suffix: 12_B 250c4762a1bSJed Brown args: -mat_type seqdense -rectB 251a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 252a5225ed3SStefano Zampini 253cc19c814SJunchao Zhang testset: 254cc19c814SJunchao Zhang args: -rectB 255cc19c814SJunchao Zhang output_file: output/ex2_12_B.out 256cc19c814SJunchao Zhang filter: grep -v type | grep -v "Mat Object" 257cc19c814SJunchao Zhang 258a5225ed3SStefano Zampini test: 259a5225ed3SStefano Zampini requires: cuda 260a5225ed3SStefano Zampini suffix: 12_B_cuda 261cc19c814SJunchao Zhang args: -mat_type {{seqdensecuda seqaijcusparse}} 262c4762a1bSJed Brown 263c4762a1bSJed Brown test: 26424b337e5SStefano Zampini requires: kokkos_kernels 265d9265f21SStefano Zampini suffix: 12_B_kokkos 266cc19c814SJunchao Zhang args: -mat_type aijkokkos 267d9265f21SStefano Zampini 268d9265f21SStefano Zampini test: 269cc19c814SJunchao Zhang suffix: 12_B_aij 270cc19c814SJunchao Zhang args: -mat_type aij 271cc19c814SJunchao Zhang test: 272c4762a1bSJed Brown suffix: 21 273c4762a1bSJed Brown args: -mat_type mpiaij 2748cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 275c4762a1bSJed Brown 276c4762a1bSJed Brown test: 277c4762a1bSJed Brown suffix: 22 278c4762a1bSJed Brown args: -mat_type mpidense 279a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 280a5225ed3SStefano Zampini 281a5225ed3SStefano Zampini test: 282a5225ed3SStefano Zampini requires: cuda 283a5225ed3SStefano Zampini suffix: 22_cuda 284a5225ed3SStefano Zampini output_file: output/ex2_22.out 285a5225ed3SStefano Zampini args: -mat_type mpidensecuda 286a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 287c4762a1bSJed Brown 288c4762a1bSJed Brown test: 28924b337e5SStefano Zampini requires: kokkos_kernels 290d9265f21SStefano Zampini suffix: 22_kokkos 291d9265f21SStefano Zampini output_file: output/ex2_22.out 292dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 293d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 294d9265f21SStefano Zampini 295d9265f21SStefano Zampini test: 296c4762a1bSJed Brown suffix: 23 297c4762a1bSJed Brown nsize: 3 298c4762a1bSJed Brown args: -mat_type mpiaij 2998cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 300c4762a1bSJed Brown 301c4762a1bSJed Brown test: 302c4762a1bSJed Brown suffix: 24 303c4762a1bSJed Brown nsize: 3 304c4762a1bSJed Brown args: -mat_type mpidense 305a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 306a5225ed3SStefano Zampini 307a5225ed3SStefano Zampini test: 308a5225ed3SStefano Zampini requires: cuda 309a5225ed3SStefano Zampini suffix: 24_cuda 310a5225ed3SStefano Zampini nsize: 3 311a5225ed3SStefano Zampini output_file: output/ex2_24.out 312a5225ed3SStefano Zampini args: -mat_type mpidensecuda 313a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 314c4762a1bSJed Brown 315c4762a1bSJed Brown test: 316c4762a1bSJed Brown suffix: 2_aijcusparse_1 317c4762a1bSJed Brown args: -mat_type mpiaijcusparse 318a5225ed3SStefano Zampini output_file: output/ex2_21.out 319c4762a1bSJed Brown requires: cuda 3208cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 321c4762a1bSJed Brown 322c4762a1bSJed Brown test: 323629dcba7SJunchao Zhang suffix: 2_aijkokkos_1 324629dcba7SJunchao Zhang args: -mat_type aijkokkos 325629dcba7SJunchao Zhang output_file: output/ex2_21.out 326629dcba7SJunchao Zhang requires: kokkos_kernels 3278cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 328629dcba7SJunchao Zhang 329629dcba7SJunchao Zhang test: 330c4762a1bSJed Brown suffix: 2_aijcusparse_2 331c4762a1bSJed Brown nsize: 3 332c4762a1bSJed Brown args: -mat_type mpiaijcusparse 333c4762a1bSJed Brown output_file: output/ex2_23.out 334c4762a1bSJed Brown requires: cuda 3358cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 336c4762a1bSJed Brown 337c4762a1bSJed Brown test: 338d9265f21SStefano Zampini suffix: 2_aijkokkos_2 339d9265f21SStefano Zampini nsize: 3 340dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 341d9265f21SStefano Zampini output_file: output/ex2_23.out 342629dcba7SJunchao Zhang # Turn off hip due to intermittent CI failures on hip.txcorp.com. Should re-enable this test when the machine is upgraded. 343dcfd994dSJunchao Zhang requires: !hip kokkos_kernels 344dcfd994dSJunchao Zhang filter: grep -v type | grep -v "MPI processes" 345d9265f21SStefano Zampini 346d9265f21SStefano Zampini test: 347c4762a1bSJed Brown suffix: 3 348c4762a1bSJed Brown nsize: 2 349c4762a1bSJed Brown args: -mat_type mpiaij -rectA 350c4762a1bSJed Brown 351c4762a1bSJed Brown test: 352c4762a1bSJed Brown suffix: 3_aijcusparse 353c4762a1bSJed Brown nsize: 2 354c4762a1bSJed Brown args: -mat_type mpiaijcusparse -rectA 355c4762a1bSJed Brown requires: cuda 356c4762a1bSJed Brown 357c4762a1bSJed Brown test: 358c4762a1bSJed Brown suffix: 4 359c4762a1bSJed Brown nsize: 2 360c4762a1bSJed Brown args: -mat_type mpidense -rectA 3618cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 362a5225ed3SStefano Zampini 363a5225ed3SStefano Zampini test: 364a5225ed3SStefano Zampini requires: cuda 365a5225ed3SStefano Zampini suffix: 4_cuda 366a5225ed3SStefano Zampini nsize: 2 367a5225ed3SStefano Zampini output_file: output/ex2_4.out 368a5225ed3SStefano Zampini args: -mat_type mpidensecuda -rectA 3698cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 370c4762a1bSJed Brown 371c4762a1bSJed Brown test: 372c4762a1bSJed Brown suffix: aijcusparse_1 373c4762a1bSJed Brown args: -mat_type seqaijcusparse -rectA 374c4762a1bSJed Brown filter: grep -v "Mat Object" 375c4762a1bSJed Brown output_file: output/ex2_11_A_aijcusparse.out 376c4762a1bSJed Brown requires: cuda 377c4762a1bSJed Brown 378c4762a1bSJed Brown TEST*/ 379