Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • May 14 01:33
    poulson closed #276
  • May 14 01:33
    poulson commented #276
  • May 14 01:30

    poulson on master

    Update README.md (compare)

  • May 14 01:24

    poulson on master

    added logo (compare)

  • May 10 21:37
    jedbrown commented #276
  • May 10 21:25
    poulson commented #276
  • May 10 21:21
    jedbrown commented #276
  • May 10 17:08
    poulson commented #276
  • May 10 17:03
    tesch1 opened #276
  • Apr 10 13:18
    JM1 commented #275
  • Apr 10 13:16
    JM1 synchronize #275
  • Apr 10 08:56
    JM1 opened #275
  • Mar 06 03:47
    Raviteja1996 closed #274
  • Mar 05 05:46
    Raviteja1996 opened #274
  • Feb 11 21:53
    BenBrock commented #228
  • Feb 11 21:52
    BenBrock commented #228
  • Feb 11 21:51
    poulson commented #228
  • Feb 11 21:50
    poulson commented #228
  • Feb 11 21:45
    BenBrock commented #228
  • Jan 23 23:57
    adambaskerville commented #273
Jeff Hammond
@jeffhammond

There should be a T-shirt or similar with this on it :-)

something in the middle of my preference to add functionality forever and your desire to release every day is likely the right compromise

Ryan H. Lewis
@rhl-
@poulson: thanks for doing that. I'm looking into writing BFGS in El. Is it possible to use the existing Reflectors to store arbitrary rank 1 updates to the identity?
Jack Poulson
@poulson
why use the reflection abstraction instead of using a product of tall-skinny dense matrices applied via a Gemm?
Ryan H. Lewis
@rhl-
Let me think about how to do that
Ryan H. Lewis
@rhl-
I'm not immediately seeing how you can use a Gemm here
Ryan H. Lewis
@rhl-
I guess if you think of Bk = B{k-1} + U_k + S_k then Bk*v = [ B{k-1} | U_k | S_k ]v is a Gemv
But each U_k and S_k are rank one
Ryan H. Lewis
@rhl-
But you need to apply the inverse
Ryan H. Lewis
@rhl-
@poulson: seeing IPM based BPDN using about 1000x the resources of ADMM.
Jack Poulson
@poulson
the sparse IPM BPDN should be much faster than the dense ADMM...
not that it is a fair comparison
but it's also not fair to compare the two without also looking at the achieved accuracy
Ryan H. Lewis
@rhl-
we have a dense matrix
does that mean that IPM BPDN is trying to create some kind of sparse matrix from our dense one? That would be horrible..
Jack Poulson
@poulson
no, it is creating a larger dense matrix for the KKT system
Ryan H. Lewis
@rhl-
Ah that makes sense.
Should ADMM have decent accuracy?
Jack Poulson
@poulson
its convergence is eventually linear, but it tends to have a preasymptotic convergence to a couple of digits of accuracy pretty quickly
so the answer depends upon how many digits of accuracy you want
and how many iterations you perform
but I would default to published papers on this
Jeff Hammond
@jeffhammond
how do i disable EL_HAVE_QUAD? i cannot find in README.
nevermind
Jack Poulson
@poulson
it seems you found the answer elsewhere
I broke the build overzealously committing a fix for the Intel compilation issue
a fix is imminent (t-minus less than five minutes)
Ryan H. Lewis
@rhl-
Hey, quick question. If you have an El::DistMatrix attached to a mutable buffer, and any other distmatrix. can you do operator= safely without a resize happening?
Jack Poulson
@poulson
the best way to guarantee that beyond having the size right already is to create a view and assign to the view
e.g., auto AView = A(ALL,ALL); AView = B;
views cannot be resized
at least not larger
they can't reallocate
Ryan H. Lewis
@rhl-
the trouble we were seeing is that calls to A = B or El::Copy(B,A); or something is that these calls seem to mess with the memory underlying A, even with A is attached to something of the appropriate size.
But, i'll try the view thing.
Jack Poulson
@poulson
that would only happen if A and B have different sizes
I would recommend putting together a Minimum Working Example if you think otherwise
Ryan H. Lewis
@rhl-
Ok.
Jack Poulson
@poulson
Riddle me this, what is wrong with this code?!?
#include <iostream>
#include <sstream>

namespace foo {

struct Rectangle { double height, width; };
std::ostream& operator<<(std::ostream& os, const Rectangle& a) { return os; }

inline void BuildStream(std::ostringstream& os) {  }

template<typename T, typename... Args>
inline void BuildStream
(std::ostringstream& os, const T& item, const Args& ...args) {
 os << item;
 BuildStream(os, args...);
}

} // namespace foo

namespace bar {

using Rectangle = foo::Rectangle;

inline void BuildStream(std::ostringstream& os) { }

template<typename T, typename... Args>
inline void BuildStream
(std::ostringstream& os, const T& item, const Args& ...args) {
 os << item;
 BuildStream(os, args...);
}

} // namespace bar

int main(int argc, char* argv[]) {
 std::ostringstream os;
 bar::BuildStream(os, 1, 2);
 bar::BuildStream(os, bar::Rectangle(), bar::Rectangle());
 return 0;
}
Jack Poulson
@poulson
This is due to two issues (one offline and one in libskylark) being reported claiming that there was a mistake in Elemental's namespacing. Both issues seem to be caused by argument-dependent lookup not being widely appreciated.
Ryan H. Lewis
@rhl-
Wow.
Jack Poulson
@poulson
yes, ADL seems to be somewhat of a hack
the story Koenig tells in his blog post on Dr. Dobbs gives that away
but I am surprised no preference is given to the current namespace
Jack Poulson
@poulson
Apparently sudo is generally required for the configure, make, and make install stages of CMake now
Recent versions of CMake's ExternalProject_Add create directories in the install folder during the configure stage
Jeff Hammond
@jeffhammond
as if i needed another reason to hate cmake.
so cmake no longer works if you don't have elevated privileges?
and if someone manages to create malware inside of cmake tests, does that make cmake a virus?