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

Issue 395 -- Filenames are too long #424

Merged

Conversation

akhilpotla
Copy link
Contributor

@akhilpotla akhilpotla commented May 15, 2019

@srajama1
Issue: #395

Realized there are some errors in this, I have final exams this week. I will have this corrected over the weekend. Apologize for the premature PR.

On Ubuntu 16.04 I get a failure when cloning this repository since some the file names are too long.
The problematic files are:

KokkosSparse_gauss_seidel_apply_eti_spec_inst_Kokkos_complex_double__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_complex_double__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_complex_double__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_complex_float__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_complex_float__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_complex_double__int_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_complex_double__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_complex_double__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_complex_float__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_complex_float__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp

The longest of these files has a name of 147 characters. Linux typically restricts filename length to 255 characters, but if your hard drive is encrypted (which is a lot of Linux users) this goes down to 143.

I abbreviated a few of the words in the filenames:
double --> dbl
float --> f
complex --> cmplx

After my changes the new names are:

KokkosSparse_gauss_seidel_apply_eti_spec_inst_Kokkos_cmplx_dbl__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_cmplx_dbl__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_cmplx_dbl__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_cmplx_f__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_numeric_eti_spec_inst_Kokkos_cmplx_f__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_cmplx_dbl__int_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_cmplx_dbl__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_cmplx_dbl__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
kkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_cmplx_dbl__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_cmplx_f__size_t_int64_t_LayoutLeft_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp
KokkosSparse_gauss_seidel_symbolic_eti_spec_inst_Kokkos_cmplx_f__size_t_int64_t_LayoutRight_Cuda_CudaHostPinnedSpace_CudaHostPinnedSpace.cpp

@akhilpotla akhilpotla changed the title Issue 395 -- Filenames are too long [WIP] -- Issue 395 -- Filenames are too long May 15, 2019
@akhilpotla
Copy link
Contributor Author

akhilpotla commented May 15, 2019

@srajama1
I was way more excited about this than I was for my final exam, so I ended up working on this instead.

I made the changes that I needed too.

These are the files that I modified directly:
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization.bash
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization_function.bash
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization_function_sparse.bash
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization_function_sparse_ml.bash
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization_type.bash
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization_type_sparse.bash
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/scripts/generate_specialization_type_sparse_ml.bash
https://github.com/akhilPotla97/kokkos-kernels/tree/generated_specializations_too_long/src
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/src/CMakeLists.txt
https://github.com/akhilPotla97/kokkos-kernels/blob/generated_specializations_too_long/Makefile.kokkos-kernels

I don't know how to run the unit tests, the README indicates the don't seem to be working, so do I need to run them locally?

@akhilpotla akhilpotla changed the title [WIP] -- Issue 395 -- Filenames are too long Issue 395 -- Filenames are too long May 15, 2019
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.

There are some odd changes here. Please see below.

Thanks for contributing but finals are important :)

@crtrott
Copy link
Member

crtrott commented May 15, 2019

How about abreviating the Space names instead?
Like CudaSpace -> CudaS
CudaHostPinnedSpace -> CudaHPS
CudaUVMSpace -> CudaUS
in the file names.

@srajama1
Copy link
Contributor

Yeah, when we are doing this we could also abbreviate the spaces.

@akhilpotla
Copy link
Contributor Author

akhilpotla commented May 15, 2019

Some of the comments you have made are outdated. I think I might have pushed my change when you were in middle of your review. I seem to have resolved most of them.

I will work on abbreviating the spaces.
Should I return the scalars to their original names? dbl --> double?

I will update my work this weekend, after my finals 😄.

@srajama1
Copy link
Contributor

I am ok with having dbl and flt, in addition to the space names @crtrott suggested. Yes, I found some of the changes unexplainable. You might have have cleaned it up already.

@akhilpotla
Copy link
Contributor Author

I have made an update, I think this is ready for another review. I have abbreviated the space names in the filenames as @crtrott suggested, and I have changed f -> flt as you said @srajama1.

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.

Thanks for fixing these, please see below for two main questions

@akhilpotla
Copy link
Contributor Author

akhilpotla commented Jun 1, 2019

@srajama1

I fixed the issues in the review that you pointed out. The issue was that I forgot to add a conditional to see whether the MemSpace needed to be abbreviated or not; therefore, if it didn't need to be abbreviated the MemSpace would not be printed in the filename. I added a conditional to allow the unabbreviated MemSpace names to be printed, so git now knows those files were only renamed.

In addition, I had to delete the original files that were too long on Github's website because they couldn't be cloned on my computer, so each one of those deletions forced me to make a commit. I tried rebasing and squashing locally, but that wasn't possible because the names of the files were too long causing my computer to error out.

Also I would like to thank you for your quick responses and also your patience. This is my first open source contribution, so I really appreciate your guidance. Also if there are any issues you think I could tackle please assign them to me. I would be happy to dedicate part of my time to working on those!

@akhilpotla
Copy link
Contributor Author

Also I am curious how have y'all not experience this issue? I am assumed you guys use linux machines. Do you use a custom OS that allow longer filename lengths for encrypted hard drives?

@akhilpotla
Copy link
Contributor Author

@srajama1

Could you please take a look?

@srajama1
Copy link
Contributor

@akhilpotla : Our spotchecking is broken because of an inadvertent change. We will get this in as soon as we fix the spotchecks and test this one.

@ndellingwood
Copy link
Contributor

I'll start a spot-check
@akhilpotla - thanks for working on this, can you rebase to squash the commits down to a single commit for this PR (will require a force push to update the PR)? I can provide some instructions if that would help, or I can try and submit a PR to your branch. This touches many files, if for some reason we have to back out the PR it would be much easier off a single commit.

@ndellingwood ndellingwood changed the base branch from master to develop September 4, 2019 16:46
@ndellingwood
Copy link
Contributor

I changed the base of the PR to submit to develop instead of master.

@srajama1
Copy link
Contributor

@ndellingwood : Spot check works ? Also, can you or @akhilpotla squash it to one commit ?

@ndellingwood
Copy link
Contributor

@srajama1 here's spot-check results, sorry for delay in posting

bash-4.2$ ../../scripts/test_all_sandia --spot-check
Running on machine: white
Going to test compilers:  gcc/6.4.0 gcc/7.2.0 ibm/16.1.0 cuda/9.2.88
Testing compiler gcc/6.4.0
Testing compiler gcc/7.2.0
  Starting job gcc-7.2.0-OpenMP-release
  Starting job gcc-6.4.0-OpenMP_Serial-release
  PASSED gcc-7.2.0-OpenMP-release
  Starting job gcc-7.2.0-Serial-release
  PASSED gcc-6.4.0-OpenMP_Serial-release
  PASSED gcc-7.2.0-Serial-release
Testing compiler ibm/16.1.0
Testing compiler cuda/9.2.88
  Starting job gcc-7.2.0-OpenMP_Serial-release
  Starting job ibm-16.1.0-Serial-release
  PASSED gcc-7.2.0-OpenMP_Serial-release
  PASSED ibm-16.1.0-Serial-release
  Starting job cuda-9.2.88-Cuda_OpenMP-release
  PASSED cuda-9.2.88-Cuda_OpenMP-release
#######################################################
PASSED TESTS
#######################################################
cuda-9.2.88-Cuda_OpenMP-release build_time=884 run_time=631
gcc-6.4.0-OpenMP_Serial-release build_time=426 run_time=964
gcc-7.2.0-OpenMP-release build_time=288 run_time=273
gcc-7.2.0-OpenMP_Serial-release build_time=515 run_time=943
gcc-7.2.0-Serial-release build_time=206 run_time=622
ibm-16.1.0-Serial-release build_time=978 run_time=849
#######################################################
FAILED TESTS
#######################################################

@srajama1
Copy link
Contributor

srajama1 commented Sep 17, 2019

@ndellingwood : can you squash the commit too ? I am assuming kokk-dev and bowman are coming soon. I will commit as soon as you give green light.

@akhilpotla akhilpotla force-pushed the generated_specializations_too_long branch from d1fa75f to 319839a Compare October 3, 2019 03:54
@akhilpotla
Copy link
Contributor Author

akhilpotla commented Oct 3, 2019

@srajama1, sorry for the slow response. I was moving.

I squashed the commits. Now there is one commit titled "Abbreviated spacenames and types in filenames".

I see there are some failing tests. Were those tests expected to break?

@srajama1
Copy link
Contributor

@akhilpotla I don't think any tests are failing. @ndellingwood : Is this ready to be pushed ?

@ndellingwood
Copy link
Contributor

@srajama1 Yes, this is ready. We shouldn't mark the issue as InDevelop since newer capabilities are coming into develop for 3.0 that will need the same file renaming treatment (sptrsv, spiluk)

@akhilpotla akhilpotla requested a review from srajama1 October 25, 2019 16:59
ndellingwood added a commit that referenced this pull request Nov 18, 2019
Follow-on to PR #424 for issue #395
@ndellingwood
Copy link
Contributor

Ready to get this merged in. The conflicts with the CMake system updates are listed in PR #491 and I'll clean those up when updating with the develop branch. sptrsv and spiluk were added after this PR, so I'll put in a PR immediately after with updates to rename those files. I tested this branch with a merge of develop and the sptrsv + spiluk file renaming and all looks good.

Running on machine: kokkos-dev-2
Going to test compilers:  gcc/7.3.0 gcc/9.1 intel/18.0.5 clang/8.0 cuda/10.1
Testing compiler gcc/7.3.0
Testing compiler gcc/9.1
  Starting job gcc-7.3.0-OpenMP-release
  Starting job gcc-7.3.0-Pthread-release
  PASSED gcc-7.3.0-OpenMP-release
  Starting job gcc-9.1-OpenMP-release
  PASSED gcc-7.3.0-Pthread-release
Testing compiler intel/18.0.5
  Starting job gcc-9.1-Serial-release
  PASSED gcc-9.1-OpenMP-release
Testing compiler clang/8.0
  Starting job intel-18.0.5-OpenMP-release
  PASSED gcc-9.1-Serial-release
  Starting job clang-8.0-Cuda_OpenMP-release
  PASSED intel-18.0.5-OpenMP-release
Testing compiler cuda/10.1
  Starting job clang-8.0-Pthread_Serial-release
  PASSED clang-8.0-Cuda_OpenMP-release
  PASSED clang-8.0-Pthread_Serial-release
  Starting job cuda-10.1-Cuda_OpenMP-release
  PASSED cuda-10.1-Cuda_OpenMP-release
#######################################################
PASSED TESTS
#######################################################
clang-8.0-Cuda_OpenMP-release build_time=524 run_time=209
clang-8.0-Pthread_Serial-release build_time=273 run_time=296
cuda-10.1-Cuda_OpenMP-release build_time=585 run_time=183
gcc-7.3.0-OpenMP-release build_time=204 run_time=94
gcc-7.3.0-Pthread-release build_time=189 run_time=139
gcc-9.1-OpenMP-release build_time=224 run_time=85
gcc-9.1-Serial-release build_time=200 run_time=182
intel-18.0.5-OpenMP-release build_time=329 run_time=108

@ndellingwood
Copy link
Contributor

As an additional follow-on: the associative arrays used in the generate_* bash files are only available for bash >= 4, however it seems by defaults macs have bash 3.2, so this should be updated.

@ndellingwood ndellingwood self-requested a review November 18, 2019 22:12
@ndellingwood ndellingwood merged commit dd48175 into kokkos:develop Nov 18, 2019
@ndellingwood ndellingwood mentioned this pull request Nov 18, 2019
@ndellingwood
Copy link
Contributor

Thanks @akhilpotla for the PR!

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.

4 participants