hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar.cct.lsu.edu | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | Buildbot: http://rostam.cct.lsu.edu/ | Log: http://irclog.cct.lsu.edu/
simbergm has quit [Remote host closed the connection]
chinz07[m] has quit [Remote host closed the connection]
chinz07[m] has joined #ste||ar
simbergm has joined #ste||ar
nikunj has joined #ste||ar
nikunj has quit [Quit: Leaving]
hkaiser has quit [Quit: bye]
K-ballo has quit [Quit: K-ballo]
nanashi55 has quit [Ping timeout: 240 seconds]
nanashi55 has joined #ste||ar
jaafar has quit [Ping timeout: 252 seconds]
david_pfander has joined #ste||ar
Vir has joined #ste||ar
ste||ar-github has joined #ste||ar
<ste||ar-github> [hpx] msimberg pushed 6 new commits to master: https://github.com/STEllAR-GROUP/hpx/compare/e880a1a2e8b2...090b5c2dca3b
<ste||ar-github> hpx/master b7811bb Christopher Hinz: Fix the BZip2 find module
<ste||ar-github> hpx/master 837ce74 Christopher Hinz: Remove the '_lib' suffix from all library targets...
<ste||ar-github> hpx/master 11fe5e5 Christopher Hinz: Remove the '_exe' suffix from all executable targets...
ste||ar-github has left #ste||ar [#ste||ar]
quaz0r has quit [*.net *.split]
<zao> Hmm, doesn’t things collide if you strip suffixes?
quaz0r has joined #ste||ar
<chinz07[m]> No. Since the target name without the suffix is used as part of other identifiers, it needs to be unique anyway.
<chinz07[m]> Without the suffixes CMake will at least complain if we have a collision instead of just overwriting another variable.
<zao> I was of the impression that they were there when you have non-hierarchical target names, but I may be mistaken of course :)
ste||ar-github has joined #ste||ar
<ste||ar-github> [hpx] StellarBot pushed 1 new commit to gh-pages: https://github.com/STEllAR-GROUP/hpx/commit/57f716d1eb9a287413425bef59791196ff7723ab
<ste||ar-github> hpx/gh-pages 57f716d StellarBot: Updating Sphinx docs
ste||ar-github has left #ste||ar [#ste||ar]
<chinz07[m]> I think the purpose of the hierarchical target names is organization and not disambiguation.
<zao> Oh well, as long as you've tested it on the weirdo toolchains (MSVC) and the flattening options :)
<zao> Just mentioning the past horrors around target naming.
<chinz07[m]> Which flattening options?
<simbergm> mmh, @chinz07:matrix.org we've had things like this in the past: https://github.com/STEllAR-GROUP/hpx/issues/3215
<simbergm> we don't really have the full hierarchical names on windows because of... reasons (that I don't fully understand)
<simbergm> if it turns out we have conflicts I think we can still manage by renaming targets
<chinz07[m]> Thanks. That might be a problem. In this case the pseudo targets might collide with the real target.
<simbergm> @chinz07:matrix.org: if you don't mind me asking, how come you're working on our cmake setup? (we love it!)
<simbergm> just a hobby or you're doing this for work?
<chinz07[m]> As I am employed as a physicist, I am unfortuntely not payed to program software. Even if we need it. So this is more a, very educational, hobby for me.
<chinz07[m]> Recently, HPX's build system has caused some problems and I thought it might be a good idea to fix these problems upstream. :-)
K-ballo has joined #ste||ar
<simbergm> @chinz07:matrix.org: Thanks, that sounds great! It's always interesting to hear about people using hpx
<simbergm> qubus doesn't happen to be open-source, does it?
<chinz07[m]> ms: Not yet. I am currently cleaning up the code base. The quality of some parts is ... atrocious. Hopefully, I will have finished most of the refactoring by the end of the year. Afterwards, I will release the first beta.
<simbergm> sure, it's always like that :)
<chinz07[m]> Yes, the eternal companion of a software developer. Horrid code :) But we should still strive to do better IMHO.
<jbjnr__> we love chinz07[m] :)
<jbjnr__> Cleaning up our cmake is a great way to become popular
<chinz07[m]> Speaking of doing better. My build has finished. Back to work.
<chinz07[m]> :)
<zao> I compile scientific software for a living. You can't be _that_ bad compared to the competition.
<chinz07[m]> Yeah. Compared to some of the ancient Fortran 77 codes I have to maintain my code is probably the text-book example of good code.
<chinz07[m]> At least it does not dump all data into a single global array and uses goto to implement function calls.
* zao eyes OpenFOAM
<chinz07[m]> For me its a matter of professional pride not to plague others with my own mess.
hkaiser has joined #ste||ar
<heller_> hkaiser: hey
hkaiser has quit [Ping timeout: 250 seconds]
aserio has joined #ste||ar
nikunj has joined #ste||ar
aserio has quit [Ping timeout: 240 seconds]
aserio has joined #ste||ar
aserio1 has joined #ste||ar
aserio has quit [Ping timeout: 250 seconds]
aserio1 is now known as aserio
diehlpk has joined #ste||ar
bibek has joined #ste||ar
<chinz07[m]> I am running into a problem with Boost. FindBoost does not support optional components prior to CMake 3.11. Since even the current LTS release of Ubuntu does not ship with CMake 3.11 or higher, I am on the fence. On one hand, it would be great to properly fix the Boost integration once and for all. On the other hand, CMake 3.11 is quite new and might not be readily available. Unfortuntely, the workarounds I have come up
<chinz07[m]> with are rather ugly and brittle.
<chinz07[m]> Any preferences?
<chinz07[m]> In addition, Boost.Iostreams is not installed as part of the CircleCI docker image. Since the process component, among others, depends on this library and is a mandatory part of HPX (?) the CI pipeline fails. Could somebody look into this please?
<chinz07[m]> HPX optionally depends on context, thread, log and regex.
hkaiser has joined #ste||ar
jaafar has joined #ste||ar
<chinz07[m]> When I think about it, we could make all Boost libraries mandatory dependecies for CMake < 3.11 and make those four libraries optional otherwise. This would fix the problem without requiring a recent version of CMake. Somebody would just need to update the Docker image accordingly.
<jbjnr__> has anyone looked at the modular cmake enabled boost that in principle we could just clone on demand into a subdir of hpx?
<K-ballo> lol
<jbjnr__> (in our dreams)
<K-ballo> chinz07[m]: we don't actually require optional components, do we?
<jbjnr__> boost logging in the parcelport
<jbjnr__> but I could replace that with std::cout
<K-ballo> that doesn't exist, not my problem
<K-ballo> what I meant was..
<K-ballo> we don't make use of cmake's OPTIONAL COMPONENT facility, we do a QUIET check for just those components
<chinz07[m]> The runtime depends optionally on Boost.Context and Boost.Thread.
<chinz07[m]> This does not work unfortunetly if you use a target-based workflow. In this case the find module will not create all required targets.
jaafar has quit [Ping timeout: 260 seconds]
<K-ballo> we can't really use target-based boost anyways, not before 11.3
<chinz07[m]> Why not? Even CMake 3.6 supports targets for Boost.
<K-ballo> only for the version of boosts that each cmake release knows about
<chinz07[m]> Sure, but if you want to use a recent version of Boost I think it might not be too much to ask to install a sufficiently recent version of CMake.
<K-ballo> so why is the 3.11 requirement a problem if there is already another requirement for 3.11 anyway?
<heller_> hkaiser: Hey, you pinged me yesterday?
<chinz07[m]> K-ballo: Sorry, you lost me. Which other requirement for 3.11?
<chinz07[m]> We only need CMake 3.11 if we want to support optional Boost dependencies for all versions of CMake. If we can make the "optional" libraries mandatory for CMake < 3.11 we only need to bump the version to 3.6 (or better 3.8).
<K-ballo> we only have this restriction due to wanting to use boost targets, which before 3.11 was heavily discouraged as it didn't work at all with non-known versions of boost
<K-ballo> how about we backport FindBoost.cmake from 3.11 ourselves?
<chinz07[m]> Has this changed with CMake 3.11? I haven't found anything about this in the release notes.
<chinz07[m]> Backporting might work, but somebody would have to maintain that version. In that case I would rather create one target for Boost manually from the old variables and just propagate all libraries to every downstream target for now. Not pretty but this would not increase the maintenance burden.
<K-ballo> yes, they started supporting boost targets for unknown versions using the latest dependency information
<K-ballo> my suggestion is to use a backported FindBoost.cmake pre 3.11, use theirs post
<K-ballo> else drop cmake < 3.11, I personally don't care but I know it's a rather hard requirement that might not fly
diehlpk has quit [Ping timeout: 252 seconds]
<heller_> chinz07[m]: so it's only about the targets?
<heller_> Is it really worth it to go for a modularized find boost considering that boost itself is monolithic anyways
aserio has quit [Ping timeout: 252 seconds]
<chinz07[m]> heller_: Yes. If we can use the targets for Boost, we can selectively choose to propagate the libraries to the downstream targets. Most Boost libraries are not used in HPX's interface and thus are not needed by them. If we are okay with a monolithic Boost, we can just create a single target for all required libraries.
<chinz07[m]> Personally, I would like to get rid of all the unnecessary dependencies in my projects. But maybe Boost is currently just too monolithic for this to work.
<hkaiser> heller_: thanks, I resolved it
aserio has joined #ste||ar
david_pfander has quit [Ping timeout: 250 seconds]
<heller_> chinz07[m]: yes, and for hpx itself, it's currently not worth the effort either. I'd suggest to tackle the dependencies once we have our stuff under control
<chinz07[m]> heller_: Okay. That makes sense. I will add Boost as a single dependency. Somebody will still need to install Boost.Iostreams on the CI machines.
ct-clmsn has joined #ste||ar
aserio has quit [Ping timeout: 250 seconds]
jaafar has joined #ste||ar
<simbergm> hkaiser, would you mind asking alireza to restart buildbot?
<heller_> chinz07[m]: how so?
<hkaiser> simbergm: will do
nikunj has quit [Quit: Leaving]
jaafar has quit [Quit: Konversation terminated!]
jaafar has joined #ste||ar
aserio has joined #ste||ar
aserio1 has joined #ste||ar
aserio has quit [Ping timeout: 264 seconds]
aserio1 is now known as aserio
<maxwellr96> hkaiser numpy's vsplit function can copy data depending on what array of indexes is passed to it, do we want Phylanx's version to also be able to do that?
<chinz07[m]> heller_: The process component uses Boost.Iostreams and as far as I can determine, this library is not installed as part of the Docker image.
hkaiser has quit [Quit: bye]
aserio has quit [Quit: aserio]
aserio has joined #ste||ar
hkaiser has joined #ste||ar
mbremer has joined #ste||ar
<mbremer> @hkaiser yt?
<hkaiser> mbremer: here
<mbremer> I'm trying to replicate the inheritance_2_classes_concrete with simple_components
<hkaiser> ok
<mbremer> and it's not working. I don't believe there is a relevant unit test
<hkaiser> sec
<hkaiser> mbremer: need a couple of minutes, sorry
<mbremer> No worries!
<mbremer> Let me know when you get back.
<hkaiser> mbremer: I'd expect for everything to work for simple components :/
<mbremer> Yeah, so here is the test
<hkaiser> mbremer: ok, I'll make it work, give me a day or so
<mbremer> The destructor flags don't seem to be flipped. (It also fails non-deterministically)
<mbremer> [max@peano build]$ ./inheritance_2_classes_concrete_simple --hpx:threads=1
<mbremer> /home/max/hpx_mwe/src/inheritance_2_classes_concrete_simple.cpp(130): test 'a_dtor' failed in function 'int hpx_startup::user_main()'
<mbremer> /home/max/hpx_mwe/src/inheritance_2_classes_concrete_simple.cpp(143): test 'a_dtor' failed in function 'int hpx_startup::user_main()'
<mbremer> /home/max/hpx_mwe/src/inheritance_2_classes_concrete_simple.cpp(144): test 'b_dtor' failed in function 'int hpx_startup::user_main()'
<mbremer> /home/max/hpx_mwe/src/inheritance_2_classes_concrete_simple.cpp(158): test 'b_dtor' failed in function 'int hpx_startup::user_main()'
<mbremer> /home/max/hpx_mwe/src/inheritance_2_classes_concrete_simple.cpp(157): test 'a_dtor' failed in function 'int hpx_startup::user_main()'
<mbremer> So that's how it's failing. I can open an issue, unless you see something immediately off that I should look into.
<hkaiser> mbremer: please create an issue
<mbremer> Will do!
<hkaiser> mbremer: I'll try to get to it asap, no promises, though ;-)
aserio has quit [Quit: aserio]
<mbremer> No worries! There are plenty of things for me to do XD. I appreciate you looking at it though.
ct-clmsn has quit [Quit: Leaving]
<mbremer> @hkaiser: Issue submitted. I wonder if it's some kind of garbage collection issue, where the component still exists, even though the client has been destroyed. Anywho, I'll keep an eye on the issue. Thanks for taking a look.
mbremer has quit [Quit: Leaving.]