-
Notifications
You must be signed in to change notification settings - Fork 28
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
Generalize code to handle complex numbers #8
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- Use min version 3.13 - Use BLAS module IntelMKL and OpenBLAS - Move the cosma target to top directory
- Move coverage and profiling next to testing - Define the library target at the beginning - Link the submodule dependencies before after git submodule - Link non-cmake dependencies and clean-up logic - Use target based commands
- 3.12.4 is supported on Piz Daint - Remove unused code
- remove manual flag setting - clean up the test code
- `const` type qualifier on return has no effect
- Avoid header file clashes with other projects - Fix cmake test code - adjust root cmake to new project layout
- Make communicator's destructor virtual - Explicitly override virtual methods in derived class
- The type alias is shorter and makes code more readable
! All targets build ! - Advantages - Eliminates dependency on Fortran ABI / C API compatibility (aka the magical underscore) - Uses value semantics where needed - Has enums where appropriate - No need to mess around with mangling (aka extern "C" and co.) - Fix path to gtest.h and gtest_mpi.h headers
- Rename ubench to benchmarks - move files from unit to tests and remove unit
- Cleanup unused code (will checkout from history if needed)
- Prefix COSMA cmake variable
- Don't ignore everything starting with build in .gitignor
The target only builds the test without running them
- Use explicit template instantiations in the cpp file - Use an extern template declaration to prevent implicit instantiations in matrix.cpp
- if yes; disable tests
- Virtual methods can't be templated. The templated parameter will have to be placed on top of the class even when there are no data members actually using it. - Remove the virtual hiearchy. The existing virtual hiearchy contained only a single Base-Derived pair (Base: communicator, Derived: hybrid_communicator). If, in future, some of the operations have to be customized (e.g. copy, reduce), templated parameters would be a better fit. - Fix a linking issues with a free function for CosmaMatrix in cosma-miniapp. - Isolate the templated parameter in communicator. - Note that there is a cicular dependency between one_sided_communicator and communicator. This has to be fixed.
- Break circular dependency between communicator and one_sided_communicator. Use `use_busy_waiting` from strategy - Prepare communicator's templated member functions template instantions
- Template local_multiply - Introduce mpi_mapper to abstract away MPI types
- The code is now templated - Fixed remaining floating point comparison issues - Add a fix in cosma-miniapp due to missing default parameter
- Generalize tests to handle complex numbers
- scalars_miniapp is an extension of cosma-miniapp - simplify reading environment variable in cosma-miniapp - implement a sbatch script for Piz Daint
- The default FindBLAS shipped with CMake linked with Intel OpenMP runtimes while FindOpenMP linked with GNU OpenMP at the same time causing a significant performance hit. To avoid the issue a custom MKL CMake module adapted from Rafaelle's DLA library is implemented. Currently no other BLAS back-ends are supported. - Remove unused cosma_lapack.cmake - Reimplement FindMKL.cmake. - Adjust build scripts on Daint.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The changes provide support for:
CMake scripts have been refactored. The project layout has changed.