Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Full MatrixMarket support for read_mtx() #466

Merged
merged 2 commits into from
Sep 16, 2019

Conversation

brian-kelley
Copy link
Contributor

  • read_mtx now supports pattern, complex, array, Hermitian, symmetric,
    and skew-symmetric (the full MatrixMarket specification). Before, it just
    supported "matrix coordinate real general".
  • support Kokkos::complex scalar type in write_graph_mtx()
  • support non-host accessible views in write_kokkos_crst_matrix, by
    getting a host mirror

There are no tests that use the matrix IO, so the spot check doesn't help evaluate these changes. However, once we migrate to CMake for testing, a "copy files to binary dir" will make it easy to test each possible format/field/symmetry combination for read_mtx.

For now, I tested the I/O manually by running the following matrices from the SuiteSparse collection through the SPGEMM testing driver:

  • 130bit (pattern, general)
  • aa01 (pattern, general)
  • can_73 (pattern, symmetric)
  • mhd1280b (complex, Hermitian)
  • plsk1919 (real, skew-symmetric)

- read_mtx now supports pattern, complex, array, Hermitian, symmetric,
and skew-symmetric (the full MatrixMarket specification). Before, it just
supported "matrix coordinate real general".
- support Kokkos::complex scalar type in write_graph_mtx()
- support non-host accessible views in write_kokkos_crst_matrix, by
getting a host mirror
@srajama1 srajama1 self-requested a review September 12, 2019 03:47
Copy link
Contributor

@srajama1 srajama1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@brian-kelley : Thanks for fixing this quickly. One comment, see below.

src/common/KokkosKernels_IOUtils.hpp Show resolved Hide resolved
@srajama1
Copy link
Contributor

Thanks, @brian-kelley : We can merge if spot check passes.

@brian-kelley
Copy link
Contributor Author

@srajama1 Running them now.

@brian-kelley
Copy link
Contributor Author

@srajama1 It's a good thing I ran the spot check because there was a build error. But it works now :)

kokkos-dev spot-check:
#######################################################
PASSED TESTS
#######################################################
clang-4.0.1-Pthread_Serial-hwloc-release build_time=717 run_time=368
clang-4.0.1-Pthread_Serial-release build_time=737 run_time=588
cuda-8.0.44-Cuda_OpenMP-release build_time=1209 run_time=337
gcc-5.3.0-Serial-hwloc-release build_time=499 run_time=192
gcc-5.3.0-Serial-release build_time=497 run_time=199
gcc-7.2.0-Serial-hwloc-release build_time=439 run_time=179
gcc-7.2.0-Serial-release build_time=430 run_time=168
intel-17.0.1-OpenMP-hwloc-release build_time=963 run_time=164
intel-17.0.1-OpenMP-release build_time=937 run_time=118
#######################################################
FAILED TESTS
#######################################################

White spot-check:
#######################################################
PASSED TESTS
#######################################################
cuda-10.0.130-Cuda_Serial-release build_time=1132 run_time=367
cuda-9.2.88-Cuda_OpenMP-release build_time=1102 run_time=306
gcc-6.4.0-OpenMP_Serial-release build_time=618 run_time=306
gcc-7.2.0-OpenMP-release build_time=368 run_time=150
gcc-7.2.0-OpenMP_Serial-release build_time=753 run_time=372
gcc-7.2.0-Serial-release build_time=271 run_time=174
ibm-16.1.0-Serial-release build_time=1438 run_time=270
#######################################################
FAILED TESTS
#######################################################

@srajama1
Copy link
Contributor

I assume bowman is fine as well ?

@brian-kelley
Copy link
Contributor Author

@srajama1 Yes:
#######################################################
PASSED TESTS
#######################################################
intel-16.4.258-Pthread-release build_time=1520 run_time=583
intel-16.4.258-Pthread_Serial-release build_time=2488 run_time=1262
intel-16.4.258-Serial-release build_time=1476 run_time=617
intel-17.2.174-OpenMP-release build_time=1979 run_time=386
intel-17.2.174-OpenMP_Serial-release build_time=2881 run_time=1169
intel-17.2.174-Pthread-release build_time=1331 run_time=629
intel-17.2.174-Pthread_Serial-release build_time=2425 run_time=1265
intel-17.2.174-Serial-release build_time=1391 run_time=654
intel-18.2.199-OpenMP-release build_time=1599 run_time=433
intel-18.2.199-OpenMP_Serial-release build_time=2747 run_time=1055
intel-18.2.199-Pthread-release build_time=1208 run_time=632
intel-18.2.199-Pthread_Serial-release build_time=2364 run_time=1218
intel-18.2.199-Serial-release build_time=1212 run_time=667
#######################################################
FAILED TESTS
#######################################################

@srajama1
Copy link
Contributor

@brian-kelley Thanks a lot ! Merging it.

@srajama1 srajama1 merged commit 4f251f2 into kokkos:develop Sep 16, 2019
@brian-kelley
Copy link
Contributor Author

@srajama1 Thanks! Bowman takes way longer than the other two so I get impatient and post them first :)

@brian-kelley brian-kelley deleted the FeaturePatternParsing branch September 16, 2019 15:25
@srajama1
Copy link
Contributor

Thank @brian-kelley, understood ! I hope I am not annoying you by asking for these in multiple PRs. We have to move to an automated PR testing next year and hopefully that will resolve this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants