## Where communities thrive

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

poulson on master

• May 14 2019 01:24

poulson on master

• May 10 2019 21:37
jedbrown commented #276
• May 10 2019 21:25
poulson commented #276
• May 10 2019 21:21
jedbrown commented #276
• May 10 2019 17:08
poulson commented #276
• May 10 2019 17:03
tesch1 opened #276
• Apr 10 2019 13:18
JM1 commented #275
• Apr 10 2019 13:16
JM1 synchronize #275
• Apr 10 2019 08:56
JM1 opened #275
• Mar 06 2019 03:47
Raviteja1996 closed #274
• Mar 05 2019 05:46
Raviteja1996 opened #274
• Feb 11 2019 21:53
BenBrock commented #228
• Feb 11 2019 21:52
BenBrock commented #228
• Feb 11 2019 21:51
poulson commented #228
• Feb 11 2019 21:50
poulson commented #228
• Feb 11 2019 21:45
BenBrock commented #228
• Jan 23 2019 23:57
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.
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
Ryan H. Lewis
@rhl-
Jeff Hammond
@jeffhammond
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?
Jack Poulson
@poulson
you only need elevated privileges in the configure or make stages if make install would have required the same privileges
so the privilege issue only applies if the user selected an installation location that required said privileges
but I honestly completely agree that rickety code that no one ever reads would be a great place to slip in something devious
Ryan H. Lewis
@rhl-
Hey jack, how is the progress going on Hessenberg QR ? I'd very much like to cut an Elemental Release :)
Jack Poulson
@poulson
the intra-block chase for a multi-bulge algorithm now has a prototype