1c4762a1bSJed Brown 2c4762a1bSJed Brown static char help[] = "Tests MatTranspose(), MatNorm(), MatAXPY() and MatAYPX().\n\n"; 3c4762a1bSJed Brown 4c4762a1bSJed Brown #include <petscmat.h> 5c4762a1bSJed Brown 6d71ae5a4SJacob Faibussowitsch static PetscErrorCode TransposeAXPY(Mat C, PetscScalar alpha, Mat mat, PetscErrorCode (*f)(Mat, Mat *)) 7d71ae5a4SJacob Faibussowitsch { 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)); 76*3ba16761SJacob Faibussowitsch PetscFunctionReturn(PETSC_SUCCESS); 77c4762a1bSJed Brown } 78c4762a1bSJed Brown 79d71ae5a4SJacob Faibussowitsch int main(int argc, char **argv) 80d71ae5a4SJacob Faibussowitsch { 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 88327415f7SBarry 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)); 969371c9d4SSatish Balay if (flg) { 979371c9d4SSatish Balay n += 2; 989371c9d4SSatish Balay rect = 1; 999371c9d4SSatish Balay } 1009566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-rectB", &flg)); 1019371c9d4SSatish Balay if (flg) { 1029371c9d4SSatish Balay n -= 2; 1039371c9d4SSatish Balay rect = 1; 1049371c9d4SSatish Balay } 105c4762a1bSJed Brown 106a5225ed3SStefano Zampini /* ------- Assemble matrix --------- */ 1079566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &mat)); 1089566063dSJacob Faibussowitsch PetscCall(MatSetSizes(mat, PETSC_DECIDE, PETSC_DECIDE, m, n)); 1099566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(mat)); 1109566063dSJacob Faibussowitsch PetscCall(MatSetUp(mat)); 1119566063dSJacob Faibussowitsch PetscCall(MatGetOwnershipRange(mat, &rstart, &rend)); 112c4762a1bSJed Brown for (i = rstart; i < rend; i++) { 113c4762a1bSJed Brown for (j = 0; j < n; j++) { 1148e160fb9SStefano Zampini v = 10.0 * i + j + 1.0; 1159566063dSJacob Faibussowitsch PetscCall(MatSetValues(mat, 1, &i, 1, &j, &v, INSERT_VALUES)); 116c4762a1bSJed Brown } 117c4762a1bSJed Brown } 1189566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(mat, MAT_FINAL_ASSEMBLY)); 1199566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(mat, MAT_FINAL_ASSEMBLY)); 120c4762a1bSJed Brown 121c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 1229566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_FROBENIUS, &normf)); 1239566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_1, &norm1)); 1249566063dSJacob Faibussowitsch PetscCall(MatNorm(mat, NORM_INFINITY, &normi)); 1259566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "original A: Frobenious norm = %g, one norm = %g, infinity norm = %g\n", (double)normf, (double)norm1, (double)normi)); 1269566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 127c4762a1bSJed Brown 128c4762a1bSJed Brown /* --------------- Test MatTranspose() -------------- */ 1299566063dSJacob Faibussowitsch PetscCall(PetscOptionsHasName(NULL, NULL, "-in_place", &flg)); 130c4762a1bSJed Brown if (!rect && flg) { 1319566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_REUSE_MATRIX, &mat)); /* in-place transpose */ 1328e160fb9SStefano Zampini tmat = mat; 1338e160fb9SStefano Zampini mat = NULL; 134c4762a1bSJed Brown } else { /* out-of-place transpose */ 1359566063dSJacob Faibussowitsch PetscCall(MatTranspose(mat, MAT_INITIAL_MATRIX, &tmat)); 136c4762a1bSJed Brown } 137c4762a1bSJed Brown 138c4762a1bSJed Brown /* ----------------- Test MatNorm() ----------------- */ 139c4762a1bSJed Brown /* Print info about transpose matrix */ 1409566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_FROBENIUS, &normf)); 1419566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_1, &norm1)); 1429566063dSJacob Faibussowitsch PetscCall(MatNorm(tmat, NORM_INFINITY, &normi)); 1439566063dSJacob 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)); 1449566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 145c4762a1bSJed Brown 146c4762a1bSJed Brown /* ----------------- Test MatAXPY(), MatAYPX() ----------------- */ 147c4762a1bSJed Brown if (mat && !rect) { 148c4762a1bSJed Brown alpha = 1.0; 1499566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetScalar(NULL, NULL, "-alpha", &alpha, NULL)); 1509566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: B = B + alpha * A\n")); 1519566063dSJacob Faibussowitsch PetscCall(MatAXPY(tmat, alpha, mat, DIFFERENT_NONZERO_PATTERN)); 1529566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 153c4762a1bSJed Brown 1549566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAYPX: B = alpha*B + A\n")); 1559566063dSJacob Faibussowitsch PetscCall(MatAYPX(tmat, alpha, mat, DIFFERENT_NONZERO_PATTERN)); 1569566063dSJacob Faibussowitsch PetscCall(MatView(tmat, PETSC_VIEWER_STDOUT_WORLD)); 157c4762a1bSJed Brown } 158c4762a1bSJed Brown 159c4762a1bSJed Brown { 160c4762a1bSJed Brown Mat C; 161c4762a1bSJed Brown alpha = 1.0; 1629566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: C = C + alpha * A, C=A, SAME_NONZERO_PATTERN\n")); 1639566063dSJacob Faibussowitsch PetscCall(MatDuplicate(mat, MAT_COPY_VALUES, &C)); 1649566063dSJacob Faibussowitsch PetscCall(MatAXPY(C, alpha, mat, SAME_NONZERO_PATTERN)); 1659566063dSJacob Faibussowitsch PetscCall(MatView(C, PETSC_VIEWER_STDOUT_WORLD)); 1669566063dSJacob Faibussowitsch PetscCall(MatDestroy(&C)); 1679566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C, alpha, mat, MatCreateTranspose)); 1689566063dSJacob Faibussowitsch PetscCall(TransposeAXPY(C, alpha, mat, MatCreateHermitianTranspose)); 169c4762a1bSJed Brown } 170c4762a1bSJed Brown 171c4762a1bSJed Brown { 172c4762a1bSJed Brown Mat matB; 173c4762a1bSJed Brown /* get matB that has nonzeros of mat in all even numbers of row and col */ 1749566063dSJacob Faibussowitsch PetscCall(MatCreate(PETSC_COMM_WORLD, &matB)); 1759566063dSJacob Faibussowitsch PetscCall(MatSetSizes(matB, PETSC_DECIDE, PETSC_DECIDE, m, n)); 1769566063dSJacob Faibussowitsch PetscCall(MatSetFromOptions(matB)); 1779566063dSJacob Faibussowitsch PetscCall(MatSetUp(matB)); 1789566063dSJacob Faibussowitsch PetscCall(MatGetOwnershipRange(matB, &rstart, &rend)); 179c4762a1bSJed Brown if (rstart % 2 != 0) rstart++; 180c4762a1bSJed Brown for (i = rstart; i < rend; i += 2) { 181c4762a1bSJed Brown for (j = 0; j < n; j += 2) { 1828e160fb9SStefano Zampini v = 10.0 * i + j + 1.0; 1839566063dSJacob Faibussowitsch PetscCall(MatSetValues(matB, 1, &i, 1, &j, &v, INSERT_VALUES)); 184c4762a1bSJed Brown } 185c4762a1bSJed Brown } 1869566063dSJacob Faibussowitsch PetscCall(MatAssemblyBegin(matB, MAT_FINAL_ASSEMBLY)); 1879566063dSJacob Faibussowitsch PetscCall(MatAssemblyEnd(matB, MAT_FINAL_ASSEMBLY)); 1889566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, " A: original matrix:\n")); 1899566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 1909566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, " B(a subset of A):\n")); 1919566063dSJacob Faibussowitsch PetscCall(MatView(matB, PETSC_VIEWER_STDOUT_WORLD)); 1929566063dSJacob Faibussowitsch PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatAXPY: B = B + alpha * A, SUBSET_NONZERO_PATTERN\n")); 1939566063dSJacob Faibussowitsch PetscCall(MatAXPY(mat, alpha, matB, SUBSET_NONZERO_PATTERN)); 1949566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 1959566063dSJacob Faibussowitsch PetscCall(MatDestroy(&matB)); 196c4762a1bSJed Brown } 197c4762a1bSJed Brown 198a5225ed3SStefano Zampini /* Test MatZeroRows */ 199a5225ed3SStefano Zampini j = rstart - 1; 200a5225ed3SStefano Zampini if (j < 0) j = m - 1; 2012f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatZeroRows:\n")); 2029566063dSJacob Faibussowitsch PetscCall(MatZeroRows(mat, 1, &j, 0.0, NULL, NULL)); 2039566063dSJacob Faibussowitsch PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 204a5225ed3SStefano Zampini 2052f605a99SJose E. Roman /* Test MatShift */ 2062f605a99SJose E. Roman PetscCall(PetscPrintf(PETSC_COMM_WORLD, "MatShift: B = B - 2*I\n")); 2072f605a99SJose E. Roman PetscCall(MatShift(mat, -2.0)); 2082f605a99SJose E. Roman PetscCall(MatView(mat, PETSC_VIEWER_STDOUT_WORLD)); 2092f605a99SJose E. Roman 2109566063dSJacob Faibussowitsch PetscCall(PetscViewerPopFormat(PETSC_VIEWER_STDOUT_WORLD)); 211c4762a1bSJed Brown /* Free data structures */ 2129566063dSJacob Faibussowitsch PetscCall(MatDestroy(&mat)); 2139566063dSJacob Faibussowitsch PetscCall(MatDestroy(&tmat)); 2149566063dSJacob Faibussowitsch PetscCall(PetscFinalize()); 215b122ec5aSJacob Faibussowitsch return 0; 216c4762a1bSJed Brown } 217c4762a1bSJed Brown 218c4762a1bSJed Brown /*TEST 219c4762a1bSJed Brown 220c4762a1bSJed Brown test: 221c4762a1bSJed Brown suffix: 11_A 222c4762a1bSJed Brown args: -mat_type seqaij -rectA 223c4762a1bSJed Brown filter: grep -v "Mat Object" 224c4762a1bSJed Brown 225c4762a1bSJed Brown test: 226c4762a1bSJed Brown suffix: 12_A 227c4762a1bSJed Brown args: -mat_type seqdense -rectA 228a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 229a5225ed3SStefano Zampini 230a5225ed3SStefano Zampini test: 231a5225ed3SStefano Zampini requires: cuda 232a5225ed3SStefano Zampini suffix: 12_A_cuda 233a5225ed3SStefano Zampini args: -mat_type seqdensecuda -rectA 234a5225ed3SStefano Zampini output_file: output/ex2_12_A.out 235a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 236c4762a1bSJed Brown 237c4762a1bSJed Brown test: 23824b337e5SStefano Zampini requires: kokkos_kernels 239d9265f21SStefano Zampini suffix: 12_A_kokkos 240dbdd8c31SJunchao Zhang args: -mat_type aijkokkos -rectA 241d9265f21SStefano Zampini output_file: output/ex2_12_A.out 242d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 243d9265f21SStefano Zampini 244d9265f21SStefano Zampini test: 245c4762a1bSJed Brown suffix: 11_B 246c4762a1bSJed Brown args: -mat_type seqaij -rectB 247c4762a1bSJed Brown filter: grep -v "Mat Object" 248c4762a1bSJed Brown 249c4762a1bSJed Brown test: 250c4762a1bSJed Brown suffix: 12_B 251c4762a1bSJed Brown args: -mat_type seqdense -rectB 252a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 253a5225ed3SStefano Zampini 254cc19c814SJunchao Zhang testset: 255cc19c814SJunchao Zhang args: -rectB 256cc19c814SJunchao Zhang output_file: output/ex2_12_B.out 257cc19c814SJunchao Zhang filter: grep -v type | grep -v "Mat Object" 258cc19c814SJunchao Zhang 259a5225ed3SStefano Zampini test: 260a5225ed3SStefano Zampini requires: cuda 261a5225ed3SStefano Zampini suffix: 12_B_cuda 262cc19c814SJunchao Zhang args: -mat_type {{seqdensecuda seqaijcusparse}} 263c4762a1bSJed Brown 264c4762a1bSJed Brown test: 26524b337e5SStefano Zampini requires: kokkos_kernels 266d9265f21SStefano Zampini suffix: 12_B_kokkos 267cc19c814SJunchao Zhang args: -mat_type aijkokkos 268d9265f21SStefano Zampini 269d9265f21SStefano Zampini test: 270cc19c814SJunchao Zhang suffix: 12_B_aij 271cc19c814SJunchao Zhang args: -mat_type aij 272cc19c814SJunchao Zhang test: 273c4762a1bSJed Brown suffix: 21 274c4762a1bSJed Brown args: -mat_type mpiaij 2758cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 276c4762a1bSJed Brown 277c4762a1bSJed Brown test: 278c4762a1bSJed Brown suffix: 22 279c4762a1bSJed Brown args: -mat_type mpidense 280a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 281a5225ed3SStefano Zampini 282a5225ed3SStefano Zampini test: 283a5225ed3SStefano Zampini requires: cuda 284a5225ed3SStefano Zampini suffix: 22_cuda 285a5225ed3SStefano Zampini output_file: output/ex2_22.out 286a5225ed3SStefano Zampini args: -mat_type mpidensecuda 287a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 288c4762a1bSJed Brown 289c4762a1bSJed Brown test: 29024b337e5SStefano Zampini requires: kokkos_kernels 291d9265f21SStefano Zampini suffix: 22_kokkos 292d9265f21SStefano Zampini output_file: output/ex2_22.out 293dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 294d9265f21SStefano Zampini filter: grep -v type | grep -v "Mat Object" 295d9265f21SStefano Zampini 296d9265f21SStefano Zampini test: 297c4762a1bSJed Brown suffix: 23 298c4762a1bSJed Brown nsize: 3 299c4762a1bSJed Brown args: -mat_type mpiaij 3008cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 301c4762a1bSJed Brown 302c4762a1bSJed Brown test: 303c4762a1bSJed Brown suffix: 24 304c4762a1bSJed Brown nsize: 3 305c4762a1bSJed Brown args: -mat_type mpidense 306a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 307a5225ed3SStefano Zampini 308a5225ed3SStefano Zampini test: 309a5225ed3SStefano Zampini requires: cuda 310a5225ed3SStefano Zampini suffix: 24_cuda 311a5225ed3SStefano Zampini nsize: 3 312a5225ed3SStefano Zampini output_file: output/ex2_24.out 313a5225ed3SStefano Zampini args: -mat_type mpidensecuda 314a5225ed3SStefano Zampini filter: grep -v type | grep -v "Mat Object" 315c4762a1bSJed Brown 316c4762a1bSJed Brown test: 317c4762a1bSJed Brown suffix: 2_aijcusparse_1 318c4762a1bSJed Brown args: -mat_type mpiaijcusparse 319a5225ed3SStefano Zampini output_file: output/ex2_21.out 320c4762a1bSJed Brown requires: cuda 3218cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 322c4762a1bSJed Brown 323c4762a1bSJed Brown test: 324629dcba7SJunchao Zhang suffix: 2_aijkokkos_1 325629dcba7SJunchao Zhang args: -mat_type aijkokkos 326629dcba7SJunchao Zhang output_file: output/ex2_21.out 327629dcba7SJunchao Zhang requires: kokkos_kernels 3288cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 329629dcba7SJunchao Zhang 330629dcba7SJunchao Zhang test: 331c4762a1bSJed Brown suffix: 2_aijcusparse_2 332c4762a1bSJed Brown nsize: 3 333c4762a1bSJed Brown args: -mat_type mpiaijcusparse 334c4762a1bSJed Brown output_file: output/ex2_23.out 335c4762a1bSJed Brown requires: cuda 3368cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 337c4762a1bSJed Brown 338c4762a1bSJed Brown test: 339d9265f21SStefano Zampini suffix: 2_aijkokkos_2 340d9265f21SStefano Zampini nsize: 3 341dbdd8c31SJunchao Zhang args: -mat_type aijkokkos 342d9265f21SStefano Zampini output_file: output/ex2_23.out 343629dcba7SJunchao Zhang # Turn off hip due to intermittent CI failures on hip.txcorp.com. Should re-enable this test when the machine is upgraded. 344dcfd994dSJunchao Zhang requires: !hip kokkos_kernels 345dcfd994dSJunchao Zhang filter: grep -v type | grep -v "MPI processes" 346d9265f21SStefano Zampini 347d9265f21SStefano Zampini test: 348c4762a1bSJed Brown suffix: 3 349c4762a1bSJed Brown nsize: 2 350c4762a1bSJed Brown args: -mat_type mpiaij -rectA 351c4762a1bSJed Brown 352c4762a1bSJed Brown test: 353c4762a1bSJed Brown suffix: 3_aijcusparse 354c4762a1bSJed Brown nsize: 2 355c4762a1bSJed Brown args: -mat_type mpiaijcusparse -rectA 356c4762a1bSJed Brown requires: cuda 357c4762a1bSJed Brown 358c4762a1bSJed Brown test: 359c4762a1bSJed Brown suffix: 4 360c4762a1bSJed Brown nsize: 2 361c4762a1bSJed Brown args: -mat_type mpidense -rectA 3628cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 363a5225ed3SStefano Zampini 364a5225ed3SStefano Zampini test: 365a5225ed3SStefano Zampini requires: cuda 366a5225ed3SStefano Zampini suffix: 4_cuda 367a5225ed3SStefano Zampini nsize: 2 368a5225ed3SStefano Zampini output_file: output/ex2_4.out 369a5225ed3SStefano Zampini args: -mat_type mpidensecuda -rectA 3708cc725e6SPierre Jolivet filter: grep -v type | grep -v " MPI process" 371c4762a1bSJed Brown 372c4762a1bSJed Brown test: 373c4762a1bSJed Brown suffix: aijcusparse_1 374c4762a1bSJed Brown args: -mat_type seqaijcusparse -rectA 375c4762a1bSJed Brown filter: grep -v "Mat Object" 376c4762a1bSJed Brown output_file: output/ex2_11_A_aijcusparse.out 377c4762a1bSJed Brown requires: cuda 378c4762a1bSJed Brown 379c4762a1bSJed Brown TEST*/ 380