-
Notifications
You must be signed in to change notification settings - Fork 57
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
Asadchev/refactor/math #230
Conversation
9cee529
to
f544a8c
Compare
external/scalapack.cmake
Outdated
@@ -5,6 +5,8 @@ | |||
# Find dependencies related to ScaLAPACK | |||
################### | |||
|
|||
add_compile_definitions( ${MPI_CXX_COMPILE_DEFINITIONS} ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
how does this propagate to dependencies? should this be applied to a particular target?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't we be using MPI::MPI_C
(not MPI::MPI_CXX
, that has some really dumb behaviour for OpenMPI) for this anyways?
external/scalapack.cmake
Outdated
@@ -5,6 +5,8 @@ | |||
# Find dependencies related to ScaLAPACK | |||
################### | |||
|
|||
add_compile_definitions( ${MPI_CXX_COMPILE_DEFINITIONS} ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Shouldn't we be using MPI::MPI_C
(not MPI::MPI_CXX
, that has some really dumb behaviour for OpenMPI) for this anyways?
? madness::cblas::Trans | ||
: madness::cblas::NoTrans); | ||
const madness::cblas::CBLAS_TRANSPOSE right_op = | ||
? blas::Transpose |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably be using blas::Op::Trans
, blas::Op::NoTrans
and blas:Op:::ConjTrans
to make the transition to blaspp
/lapackpp
more transparent (e.g. typedef blas::Op Op;
). I can make the necessary changes to blacspp
and scalapackpp
to be more consistent as well
src/TiledArray/math/linalg/forward.h
Outdated
|
||
enum TransposeFlag { NoTranspose, Transpose, ConjTranspose }; | ||
|
||
enum class SVDReturn { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I originally had these as strong types to allow for the possibility of typed template specialization for particular combinations (the performant alg choices for thin return / value only may be slightly different than full return, etc). I'm fine keeping the change, but we may find use cases for the strong types later on if we look at more advanced dispatch
if (world.rank() == 0) { | ||
lapack::cholesky(A_eig); | ||
linalg::rank_local::cholesky(A_eig); | ||
} | ||
world.gop.broadcast_serializable(A_eig, 0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cholesky can be safely replicated with identical inputs (not like XSYEV which has a phase problem), and since make_matrix
already seems to be replicating the data, that would save you some communication / synchronization
World& world = A.world(); | ||
auto A_eig = detail::to_eigen(A); | ||
auto A_eig = detail::make_matrix(A); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since make_matrix
replicates here, wouldn't it make more sense to add a "scatter/gather" type driver rather than "Alltoall` to save on some communication dependencies?
f25eafe
to
9aa9ff3
Compare
- Reorganize rank-local matrix, blas, and linalg - Replace madness::cblas::Transpose by TA::blas::TransposeFlag - Move non-distributed DistArray linalg to TiledArray/algebra/non-distributed
191e631
to
a70762d
Compare
a70762d
to
11daf44
Compare
No description provided.