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/
jaafar has joined #ste||ar
mbremer has quit [Quit: Leaving.]
parsa has joined #ste||ar
parsa has quit [Client Quit]
parsa has joined #ste||ar
<hkaiser> K-ballo: we should be able to contact him
parsa has quit [Quit: Zzzzzzzzzzzz]
K-ballo has quit [Quit: K-ballo]
hkaiser has quit [Quit: bye]
diehlpk has joined #ste||ar
diehlpk has quit [Ping timeout: 250 seconds]
parsa has joined #ste||ar
parsa has quit [Remote host closed the connection]
parsa has joined #ste||ar
parsa_ has joined #ste||ar
parsa has quit [Quit: *yawn*]
parsa_ is now known as parsa
parsa has quit [Client Quit]
parsa has joined #ste||ar
parsa[w] has quit [Quit: Leaving]
jbjnr has joined #ste||ar
david_pfander has joined #ste||ar
<Yorlik> Seems /boost/auto_link.hpp is the key to get my build working ...
* Yorlik digs some more ...
hkaiser has joined #ste||ar
nikunj1997 has quit [Ping timeout: 268 seconds]
<jbjnr> heller_: yt?
<Yorlik> Do you do any CI on Windows for HPX? If yes: How?
<jbjnr> Yorlik: there's a CI run by appveyor I think
nikunj has joined #ste||ar
<Yorlik> Just asking because I'm still fighting to build on Windows. I'm following precedures more now, but there are strange things happening. Still not sure if it's me doing stupid things or something in the depths of the build system being broken. The vcpkg build worked.
<heller_> jbjnr: what's up?
<jbjnr> just wanted to ask about lazy thread init and remove_wait_or_new
<heller_> yeah
<jbjnr> I feel like I need to look at these
<heller_> there are so much things to do ;)
<heller_> sure
<jbjnr> but I know you were tweaking context????
<jbjnr> so maybe you have stuff you want to change
<heller_> i have
<heller_> but everything is moving sooo slowly
<heller_> and I don't want to get new stuff in until we have a more stable master
<jbjnr> what's broken?
<heller_> everything
<jbjnr> and who broke it!
<heller_> everyone ;)
<jbjnr> lies. I have committed nything in ages :)
<jbjnr> lies. I haven't committed nything in ages :)
<heller_> the problem is: once the CI becomes unstable, noone really looks closely, and everything is just being looked at as "yeah, unrelated, has been there before"
<heller_> and then crap piles up
<heller_> so my quest now is to clean that mess up
<jbjnr> don't care bout that. what is actually broken?
<heller_> see my recent commit spree ;)
<Yorlik> Technical debt can become horrible. I'm a friend of early polishing.
<heller_> wait_all seems to be broken, sync_put_parcel, function (now fixed), executor parameters
<Yorlik> That's one of the reasons why I'm so stubbornly trying to integrate boost, hwloc and hpx into my cmake superbuild.
nikunj has quit [Ping timeout: 246 seconds]
<heller_> jbjnr: exception handling in general is a huge pile of something
<Yorlik> It seems going the route over MSBuild is now starting to work.
<Yorlik> Still - I don't understand why the -bigobj setting is not working when I build using Ninja
<heller_> ninja being experimental on windows, maybe?
nikunj has joined #ste||ar
<Yorlik> Well - I guess it's not officially HPX supported. All in all for my stuff it works like a charm.-
<Yorlik> But since HPX is CMake based, I'd guess any CMake supported build system ~should work.
<Yorlik> Seems I'm hitting the devil lurking in the details.
Yorlik has quit [Read error: Connection reset by peer]
Yorlik has joined #ste||ar
<Yorlik> It's weird - having an MSBuild prject now the compile works. But exploring all the project settings there is no ocurrence of the -bigobj option anywhere (at least I couldn't find any.) The MS docs say it lives in the compoiler command lines additional options, but there is nothing.
K-ballo has joined #ste||ar
<Yorlik> Allright - found it - seems it configuration dependent ...
<Yorlik> Now the question is why it doesn't work with Ninja as build system - though I feel tempted to skip that question.
<heller_> ninja is not a multi config build system
<Yorlik> You mean building multiple configs in one run isn't possible?
<heller_> no, switching configs on the fly
<heller_> via the visual studio UI
<Yorlik> I use CMakeSettings.json for that
<Yorlik> So ninbja is oblivious of it anyways
<Yorlik> I just use different build directories for every config in the json file.
<Yorlik> Interestingly enough I actually find the -bigobj setting in the ninja file - now it's even more weird why it doesn't get passed to the compiler properly
<heller_> *shrug*
<Yorlik> It seems to build correctly with Ninja now - which is even more scary - because I don't really know why. I had forgoten to pass one Variable before though: HPX_WITH_BOOST_ALL_DYNAMIC_LINK
<Yorlik> Not sure why the builds before exploded with the object count error.
<Yorlik> its at 274 / 464 now
<Yorlik> Never been that far before
<heller_> nice
<heller_> good that it works now
<Yorlik> It still uses the mangled library names thoug
<heller_> would be nice if you could document your setup
<heller_> so no success in linking?
<Yorlik> I'll do that and test it
<Yorlik> It works - because I have the libs
<Yorlik> But it supports bigobj now
<Yorlik> I will make a stripped down version of my superbuild and document it
<Yorlik> Will need a bit though - I really want to start playing with HPX - all this building mess was painful.
<Yorlik> 375/464 now :)
<Yorlik> A part of the problem surely was me not RTFMing enough.
<Yorlik> But still there's oddities
<Yorlik> E.G. HPC complaining when the unmangled libraries are missing but requesting the mangled ones. I'll dog a bit more to understand that better.
<Yorlik> s/dog/dig/g
<Yorlik> Since I started using discord, which allows post correction my typing became horrible - not really used to IRC discipline anymore ;)
nikunj has quit [Ping timeout: 268 seconds]
<Yorlik> Finally:
<Yorlik> E:\__A\Arc_Sb\INSTALL\Release\bin>1d_stencil_1.exe
<Yorlik> OS_Threads,Execution_Time_sec,Grid_Points,Time_Steps
<Yorlik> 4, 0.000024400000, 100, 45
<Yorlik> E:\__A\Arc_Sb\INSTALL\Release\bin>
<Yorlik> :)
<heller_> nice
<Yorlik> That was wild ... lolk
<Yorlik> So much hassle
<heller_> btw, don't mix debug and release builds ;)
<Yorlik> I wont
<Yorlik> I have strictly separate release and build install and build foldrs
<Yorlik> for everything
<Yorlik> I think I need a break now - next step will be helloworld business :)
<Yorlik> Thanks a lot for all the help I received and sorry for the hassle I might have caised - I know a newbie trying to unconventionally build a complex system can be a nuisance ;)
<Yorlik> However - success :)
* Yorlik heads out for break
nikunj has joined #ste||ar
nikunj has quit [Ping timeout: 240 seconds]
<K-ballo> heller_: any options I should tweak for your benchmark?
<heller_> K-ballo: work_delay would be a nice start
<heller_> K-ballo: I'd assume that your changes have a nice effect on the smaller grain sizes
nikunj has joined #ste||ar
<K-ballo> looks like noise to me
<heller_> ok, too bad
<heller_> K-ballo: I did see some positive effect
<K-ballo> heller_: which params did you run it with? it was all over the place here
<heller_> for j in 1 10 100 1000; for i in 1 2 4 8; echo "$i threads, $j"; ./bin/foreach_scaling_test --hpx:threads=$i --work_delay=$j; echo ''; end; end
<heller_> varying delay and threads
<K-ballo> and where were the positive effects? localized or overall?
<heller_> overall
<Yorlik> I just realized the documentation is not listing all defaults for cmake variables influencing the hpx build: https://stellar-group.github.io/hpx/docs/sphinx/latest/html/manual/building_hpx.html#cmake-variables-used-to-configure-hpx
<heller_> K-ballo: slowing down at larger granularity
<K-ballo> nice!
<heller_> good job!
<K-ballo> unintended :P
<heller_> now ... fix the unit test :P
<K-ballo> looking at it
<heller_> looks like he sync policy is spawning tasks now...
<K-ballo> yes, and I'm questioning whether the check was valid in the first place
<K-ballo> with a small enough number of tasks it should fire for master too
aserio has joined #ste||ar
<K-ballo> gah I was misreading the test output
<K-ballo> I guess post() doesn't understand sync_policy?
<hkaiser> K-ballo: post is fire&forget
<hkaiser> 'one_way'
<K-ballo> ok.. so?
<hkaiser> it can't be 'sync'
<K-ballo> ok, what should I do for a fire&forget that could be sync?
<hkaiser> it's not fire&forget anymore in this case
<hkaiser> so you simply want to invoke the function?
<hkaiser> synchronously?
<hkaiser> sync_execute does that
<K-ballo> no, I want to invoke it with a policy
<K-ballo> and if the policy is sync then I want inline execution
<K-ballo> context: I was using async_execute, and changed it to post because we don't care about the result
<hkaiser> the you have to dispatch on the policy yourself
<hkaiser> nod
<hkaiser> let me have a look
<hkaiser> we might have helper facilities that can be used
<K-ballo> ..apply?
<hkaiser> nah
hkaiser has quit [Quit: bye]
aserio has quit [Ping timeout: 250 seconds]
aserio has joined #ste||ar
parsa| has joined #ste||ar
parsa| has quit [Client Quit]
<diehlpk_work> simbergm, Did you updated the HPX version in the 1.2.1-rc?
<diehlpk_work> It seems that cmake shows 1.2.1
<diehlpk_work> 1.2.0 and not 1.2.1
<Yorlik> It's so weird - this "too many objects" link error returned and I have no clue why. cl is called with -bigobj all the time.
<simbergm> diehlpk_work: yeah, looks like it
<simbergm> I forgot the one in CMake, only changed the one in version.hpp
<simbergm> thanks for noticing
<simbergm> need to change that...
<diehlpk_work> hkaiser and I are debugging and we realized the non-updated number
<diehlpk_work> s390x compiles
<simbergm> yep, sorry about that
<simbergm> I'll update it
<simbergm> nice!
<simbergm> diehlpk_work: btw, do you remember what problems you had with constexpr on cuda? it's definitely supported by nvcc on linux at least
<simbergm> maybe not on older ones?
<diehlpk_work> simbergm, Yes, but some corner cases are not supported
parsa has quit [Remote host closed the connection]
<simbergm> right, ok
<simbergm> did we have some of those corner cases? because not turning it off breaks some things as well
parsa has joined #ste||ar
nikunj has quit [Read error: Connection reset by peer]
nikunj has joined #ste||ar
<diehlpk_work> simbergm, I had only issues in octotiger, we switched from clang cuda to nvcc because clang and powerpc are not good friends
<simbergm> ah, ok, did you get the cuda build working in the end?
<diehlpk_work> Things with constexpress compiled on clanf cuda, but nvcc complained
<diehlpk_work> yes
<diehlpk_work> I was using the hpx macro for constexpress
<diehlpk_work> I did some pull requests for hpx 1,3
<diehlpk_work> I think most of them got merged by hkaiser
<simbergm> so you've built HPX with cuda, nvcc and HPX_CONSTEXPR empty for nvcc? which versions did you use?
<diehlpk_work> Yes
<simbergm> and by built I mean examples and tests as well
<simbergm> (just pushed to release with the version numbers fixed, would you like me to tag that?)
<diehlpk_work> simbergm, We use these scripts to build hpx
<diehlpk_work> cuda 9,2, gcc 6 or 7
<diehlpk_work> No, I like you to add more patches first
<diehlpk_work> We need to revert the last commit of the s390x patch and after that, we can dd it
<diehlpk_work> Could you do this please?
<diehlpk_work> simbergm, Nevermind, it worked
<diehlpk_work> https://github.com/STEllAR-GROUP/hpx/pull/3648 should be in the rc2 as it is
<diehlpk_work> https://github.com/STEllAR-GROUP/hpx/pull/3647 and same for this guy
nikunj97 has joined #ste||ar
<diehlpk_work> With these patches we are able to compile on s390x. The second one is not so important, it just removes warnings
nikunj1997 has joined #ste||ar
<diehlpk_work> simbergm, I will try to get arm7 compiled again and after this we could do 1.2.1-rc2
nikunj has quit [Ping timeout: 245 seconds]
nikunj97 has quit [Ping timeout: 268 seconds]
<simbergm> diehlpk_work: sounds good
<simbergm> so the s390x PR is good to go?
<simbergm> diehlpk_work: ^
<diehlpk_work> Yes
<diehlpk_work> same for the warnings due to gcc 9
<simbergm> all right, diehlpk_work, I'll merge those two and tag an rc for you
<simbergm> all ( hkaiser , heller_, jbjnr) would you mind if we slow down the merging and let rostam catch up for a few days after I merge those two?
<diehlpk_work> simbergm, Can we wait until I fixed the arm build before we do the rc?
<diehlpk_work> Maybe a new patch needs to be in the rc2
<simbergm> diehlpk_work: btw, examples are disabled in you build scripts :/ but it looks like you're not using much of HPX.Compute in octotiger?
<simbergm> diehlpk_work: right, yes, I can wait
<diehlpk_work> yes, we use cuda kernels and sync them with hpx
jaafar has quit [Quit: Konversation terminated!]
jbjnr has quit [Quit: WeeChat 2.3]
<heller_> simbergm: hmm, not a big fan ;)
<heller_> simbergm: what are you expecting to see
<simbergm> well, at least I'd like to see us wait for the pycicle builds unless we're very sure that the PR is ok
<simbergm> and on the other hand, what's the rush?
<heller_> simbergm: the rush is that I consider master to be severly broken right now
<simbergm> I agree, it is very broken, partly because we've been merging more things before fixing the old problems
<simbergm> (I know there are older issues on master as well)
<simbergm> and if that's the rush we should only be merging things that fix master, nothing else, no?
david_pfander has quit [Ping timeout: 240 seconds]
jbjnr has joined #ste||ar
parsa is now known as parsa_
parsa_ is now known as parsa
hkaiser has joined #ste||ar
<simbergm> K-ballo: crap :/ the return std::move?
<simbergm> what's the universal way to do that? or just ifdefs?
<K-ballo> the rules changed many times since C++11, and compilers differ in their treatment of the issues as DRs.. so...
<K-ballo> it's a bit of a mess
<simbergm> what is least wrong? ;)
<K-ballo> no idea...
<K-ballo> leaving the std::move should be fine in that NRVO cannot happen for a param anyways, so it would not be messed up by it
<K-ballo> what was the warning? redundant std::move?
RostamLog has joined #ste||ar
<K-ballo> I'll just revert back to async_execute and leave the optimization as future work for someone else
<hkaiser> currently, the implementation of async_execute just forwards to a dispatch point anyways, so doing the same for sync_execute would be an option
<hkaiser> K-ballo: sure, I can have a look at that
<hkaiser> K-ballo: heh, we do have sync_policy_dispatch<Policy> here: https://github.com/STEllAR-GROUP/hpx/blob/master/hpx/lcos/sync.hpp#L154
<hkaiser> you could use that instead
<K-ballo> would that spawn new tasks for async/fork/exec policies?
<K-ballo> I don't actually want to run inline unless the policy is synchronous
<hkaiser> I believe so
aserio has quit [Ping timeout: 250 seconds]
<K-ballo> and I don't want to block either
<hkaiser> block on what?
<hkaiser> on async execution?
<K-ballo> yes
<hkaiser> well, this does not make sense
<hkaiser> hold on, I will look at your PR before discussing further
<K-ballo> the parallel_policy_executor test has checks that if invoked with a synchronous policy no new threads are launched
<K-ballo> and that works because async_execute will execute tasks inline for a sync policy
<K-ballo> by changing async_execute to post (since we don't care about the result) I introduced new threads for the sync cases
parsa is now known as parsa_
jaafar has joined #ste||ar
<hkaiser> well we could add a specialization to post_launch_dispatch
<K-ballo> similar to how async_execute handles it?
<hkaiser> nod
<hkaiser> post_policy_dispatch currently does not handle the dynamic launch policy dispatching
akheir has quit [Remote host closed the connection]
parsa_ is now known as parsa
<hkaiser> heller_: I have another meeting at 1pm (in 10 mins), could we talk a bit later, please?
aserio has joined #ste||ar
<heller_> hkaiser: sure, no problem
<heller_> hkaiser: ping me whenever you are ready
<parsa> .
parsa is now known as parsa_
diehlpk has joined #ste||ar
<hkaiser> heller_: ping
<heller_> hkaiser: pong
<hkaiser> now
<hkaiser> ?
<diehlpk> simbergm, The arm build is fixed and it was related to gcc 9 using too much memory
<diehlpk> Could ypu please tag the rc2 for me
<diehlpk> Including the two patches and update to 1.2.1 everywhere should be all to add
<diehlpk> I will test the rc2 on the fedoa build system and once it is compiling we can release it
<simbergm> diehlpk: thanks, will do tomorrow
<simbergm> so no additional patches for arm?
<diehlpk> No, it is related to gcc 9
<simbergm> ok
<diehlpk> Somehow gcc 9 consumes more memory as gcc 8.2.1
<zao> So do we support RISC-V yet? :)
<diehlpk> So, we can not build hpx with -02
<simbergm> zao, I thought that was your job?
<diehlpk> On gcc 9, I have to use -01
<zao> simbergm: Heh :)
<diehlpk> zao, we do s390x
<diehlpk> I think it is esoteric enough
<simbergm> diehlpk: not even with one a single job at a time to make/ninja/whatever?
<diehlpk> yes
<diehlpk> I had to run a single job with hpx 1.2.0 on fedora 28 and fedora 29
<diehlpk> even a single job uses the 8gb of ram
<diehlpk> make -j1 was necessary for gcc 8.2.1
<simbergm> ugh :(
<diehlpk> I talked to the fedora folks and they told me my only option is to reduce the optimzation level
<diehlpk> Since I can not ssh into the build server, it is very difficult to debug
<zao> Oh, this is in Koji or some other Fedora infrastructure?
<diehlpk> koji
<diehlpk> I am doing a scratch build
<diehlpk> Once this builds, I put the spec file in our fedora hpx repo and build the package for testing
<diehlpk> After one week is going to stable
<zao> Heh, some Fedora builders back in 2010 used swap-over-NFS for their ARM boards.
<zao> Probably a site-local hack.
<diehlpk> Ok, I asked for more swap but they denied it
<diehlpk> zao, Do you maintain fedora packages?
<zao> Nope.
<zao> (currently watching a talk from FOSDEM'19 on building Fedora for RISC-V, thus the question :D)
<zao> My site is all Ubuntu.
<diehlpk> No, we are not doing risc-v yet.
<diehlpk> Maybe if fedora provides the infrastructure
<zao> My computer club is hosting some slightly newer VM host for the RISC-V builders, so got some tangential interest in it.
<zao> I think the upstream state is that they're still trying to get existing Fedora packages built, something like 25% coverage right now.
mbremer has joined #ste||ar
hkaiser has quit [Quit: bye]
diehlpk has quit [Ping timeout: 268 seconds]
<jbjnr> what the minimum boost we now support?
<simbergm> jbjnr 1.58 I think
<K-ballo> should be 1.59.0, the last ten
<K-ballo> 1.60 even
<simbergm> K-ballo what's this rule? I like it
<K-ballo> the guideline we decided on was to only support the latest 10 boost versions at the time of release
<K-ballo> back when we used to test them all
<K-ballo> apparently we still do.. you can see rostam builds from 1.58 to 1.68
<K-ballo> which should get bumped to 1.60 to 1.69
<simbergm> OK, that should be written down somewhere...
<K-ballo> maybe... if nobody goes and bumps the requirements in code we defacto end up supporting older versions
<K-ballo> although I wouldn't call "support" when we don't build and test
<zao> 1.69 is a bit icky, isn't it?
<zao> Still haven't quite grasped which HPX versions it won't work for.
<K-ballo> HPX 1.2 predates Boost 1.69, does it not?
<simbergm> K-ballo: well, I'd say those are actually pretty well covered
<simbergm> K-ballo: yeah
<zao> Don't know. I last ran into it when building HPX 1.0.0 via spack and when building manually.
<K-ballo> wat? 1.0.0?!?
<simbergm> so zao, no released version of hpx
<zao> (spack doesn't constrain Boost versions upward at all)
<zao> K-ballo: Current spack only mentions 1.0.0 with hash, no idea if it magically can find other ones.
<zao> The one I set up for my home box has something like `depends_on('boost@:1.68.0', when='@:1.2.0')` and `depends_on('hwloc@:2.0', when='@:1.2.0')`.
<zao> And also spells HPX_WITH_MALLOC correctly, so the one in Spack needs some maintenance :D
<zao> Hrm, the second depends_on there is incorrect, bah.
<zao> Don't conference and code, kids.
<heller_> time for a PR against spack i guess ;)
<heller_> I like spack a lot as well
<heller_> especially when being combined with hierarchical modules
<heller_> aka lmod (the lua modules)
<heller_> woohoo, three successful master builds on circleci in a row
<simbergm> heller_: thanks for doing this (I thought circleci email notifications were broken for a while...)
<heller_> He
<heller_> simbergm: I am just annoyed be the test failures ;)
<jbjnr> I
<jbjnr> I
<jbjnr> I'm impressed
<jbjnr> 99% tests passed, 2 tests failed out of 790
aserio has quit [Quit: aserio]
<heller_> I really need 100% to be able to sleep ;)
<jbjnr> (on my laptop)
<jbjnr> launch_process is knackerd
<jbjnr> and tests.regressions.performance_counters.papi_counters_basic_functions is the other, probably an easy fix
<jbjnr> see y'all t'morrow
<jbjnr> PS. nice job heller_ on fixing things
<heller_> simbergm: btw, dropping gcc4 and clang3 is something we should do
<heller_> hartmut agreed there
jbjnr has quit [Ping timeout: 252 seconds]
ShmuelLevine has quit [Read error: Connection reset by peer]
parsa_ is now known as parsa