aserio 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 quit [Ping timeout: 240 seconds]
EverYoung has quit [Ping timeout: 255 seconds]
EverYoun_ has joined #ste||ar
StefanLSU has joined #ste||ar
EverYoun_ has quit [Ping timeout: 255 seconds]
StefanLSU has quit [Quit: StefanLSU]
StefanLSU has joined #ste||ar
StefanLSU has quit [Quit: StefanLSU]
mbremer has joined #ste||ar
vamatya has joined #ste||ar
mbremer has quit [Quit: Page closed]
hkaiser has quit [Quit: bye]
jaafar has joined #ste||ar
AnujSharma has joined #ste||ar
AnujSharma has quit [Ping timeout: 246 seconds]
AnujSharma has joined #ste||ar
jaafar has quit [Ping timeout: 240 seconds]
jbjnr has quit [Remote host closed the connection]
jaafar has joined #ste||ar
Matombo has joined #ste||ar
jaafar has quit [Ping timeout: 240 seconds]
vamatya has quit [Ping timeout: 240 seconds]
mcopik has joined #ste||ar
Matombo has quit [Remote host closed the connection]
david_pfander has joined #ste||ar
jbjnr has joined #ste||ar
mcopik_ has joined #ste||ar
<github> [hpx] StellarBot pushed 1 new commit to gh-pages: https://git.io/vdL38
<github> hpx/gh-pages d287240 StellarBot: Updating docs
simberg has joined #ste||ar
<simberg> hi everyone, i'm going to be working on hpx together with jbjnr
mcopik_ has quit [Ping timeout: 248 seconds]
<heller> simberg: hi, nice to meet you!
Matombo has joined #ste||ar
<heller> jbjnr: finally booked my flight
<heller> jbjnr: i'll arrive wednesday in the evening
<heller> jbjnr: which hotel do you recommend again?
pree has joined #ste||ar
pree has quit [Ping timeout: 240 seconds]
hkaiser has joined #ste||ar
<jbjnr> hi simberg I was at lunch.
<jbjnr> heller: if you can get it, the nioce one by the station is our recommended one
<hkaiser> jbjnr: did you resolve your hwloc dilemma?
<jbjnr> I forget the name - hotel continental or something
<jbjnr> ask heidi if in doubt
<jbjnr> she can book it for you too. shal I send her an emaila and C you
<jbjnr> ^CC you
<jbjnr> hkaiser: not really
<jbjnr> I will use a wrapper, but I'm not very happy about it
<jbjnr> I think I should make a hwloc_bitmap_t shared pointer wraper and use that
<jbjnr> butr fortunately we only need it in a few places
<hkaiser> jbjnr: let's optimize this later, if needed, for now this is the right decision
<jbjnr> I'm a little disturbed by some of the executors - they hold masks and things too. This ought to be obsolete (hopefully?) with the RP changes
<hkaiser> and I'd suggest to create a class hwloc_bitmap {}; which handles the memory allocs/deallocs.
<hkaiser> yes, most of the executors will have to be touched up now
<jbjnr> ok
pree has joined #ste||ar
<jbjnr> hkaiser: meet ^simberg^ he is Mikael Simberg. Working at CSCS in the Zurich office and assigned to be an HPX person for the time being.
<hkaiser> hey Mikael!
<hkaiser> I'm looking forward to working with you
pree has quit [Ping timeout: 240 seconds]
<simberg> hi hkaiser, heller: looking forward to working with you too :)
<hkaiser> simberg: what is it you're interested in working on?
<hkaiser> darn, need coffee... - brains still sleeps...
<zao> Asychronous thought, not waking that thread until results are needed.
<simberg> the idea is that i would continue the work on making hpx a bit more composable (e.g. MPI + HPX) and making it play nicely with fortran code
<hkaiser> simberg: ahh - very nice - I will have to work on this over the next weeks as well
<hkaiser> have a concrete project where this is needed
<heller> jbjnr: thanks!
<hkaiser> hey heller, you're back !
<heller> hkaiser: I was never gone :P
<heller> just silent
<heller> and joel and michael keep me busy
<jbjnr> hkaiser: simberg any chance of a skype call on Fri? I will be in the Zurich office with Mikael then - just a quick one to share ideas on where best to focus attention and what we're up to.
<heller> and the other EU guys...
<heller> and john
<hkaiser> jbjnr: travelling on Friday - flying back from Seattle...
<jbjnr> ok. Thu were available too, but it sounds like you're busy so it can wait.
<hkaiser> my talk is Thu, but I should be available in the morning (PDT)
<simberg> hkaiser: nice, would be interested to know more what your use case is
<jbjnr> it can wait a wee or two. we have the hpx course next week, we'll do it after then
<jbjnr> ^week
<hkaiser> jbjnr: ok
<heller> jbjnr: so heidi will book a room for me?
<jbjnr> simberg: Also get to know zao who builds hpx on strange machines and finds bugs in all our cmake and build setup, and K-ballo who is the one stop shop for all C++/HPX related question :)
<jbjnr> heller: I'll send an email now
<heller> thanks!
<jbjnr> done
pree has joined #ste||ar
pree has quit [Read error: Connection reset by peer]
pree has joined #ste||ar
pree has quit [Read error: Connection reset by peer]
<jbjnr> heller: the block allocator and block executor. I was puzzled by these cos I didn't understand what they were doing, but finally the penny has dropped and I see that they can launch arrays of tasks on different executors etc. I have been reworking the stream benchmark - as I want to use RP to create one pool per numa domain - but this means the block allocator/executor need a lot of work...
<jbjnr> ...since we need to somehow define pools as targets. What I'm not sure about is the use case for this. The stream benchmark is a very particular example and I'm not sure anyone will ever need the block executor for anything else. Is it worth doing?
<heller> jbjnr: I wanted to have a take on this
<heller> jbjnr: the single reason for this kind of executor is to exploit first touch
<heller> jbjnr: for the stream benchmark, it would get two pool executors
<heller> one for each NUMA domain
<jbjnr> I have a new allocator called a numa_allocator that can be supplied with the policies from here https://www.open-mpi.org/projects/hwloc/doc/v1.11.8/a00141.php
<jbjnr> (work in progress I should say)
<jbjnr> it can be used with first touch or other policies. but it breaks the block_allocator use case
<heller> right
<heller> so use a different one ;)
<jbjnr> I got bogged down in the executor traits and stuff and decided to finish other stuff first :)
<heller> ok
<jbjnr> I need an epic cholesky plot, then I'll play with this - but I nede the numa allocator for cholesky
<jbjnr> hence I thought I'd play with stream as well
<heller> two different use cases I guess
<heller> when you create the vector, is it on the same numa domain where you want to use it?
<jbjnr> the $64k question though is - do we really need the block executor? for GPU, ok I can see a case, but for cpu, we're not going to have many use cases for it I do not think
<jbjnr> ^^no
<jbjnr> anyway ....
<jbjnr> back to work
<heller> jbjnr: the block allocator is useful for anything where you want to have a contiguous block of memory, but the placement distributed in this block
<heller> stencil applications are usually written that way
pree has joined #ste||ar
<heller> but yes, I see the point
<jbjnr> "a contiguous block of memory, but the placement distributed in this block" - placement on a page by page basis do you mean? ( we cannot control it manually can we?)
pree has quit [Read error: Connection reset by peer]
<heller> jbjnr: right, with avoiding to actually figuring out where a page ends etc
<jbjnr> ok
<jbjnr> I wasn't sure if there was a single malloc across targets, or one maloc per target. I see that it's one across targets, but the executor can spawn multiple threads across the targets. Still a bit hazy as to what's going on in there
<heller> yes, very fragile, I am not particularly fond of it either
<heller> I'd consider it as vintage usage
<heller> what I'd prefer now is to really have different, and distinct memory blocks
<heller> how do I get the unused argc and argv again?
pree has joined #ste||ar
pree has quit [Client Quit]
pree has joined #ste||ar
<jbjnr> do you mean .allow_unregistered in the boost:po
<heller> no
<heller> that's working
<heller> I want to access the ones that have not been consumed now
<jbjnr> not sure I know anything about that
<heller> hpx_main(argc, argv) seems to do the job
Matombo has quit [Remote host closed the connection]
<heller> no it doesn't!
<jbjnr> what is it you are trying to do?
<heller> I am trying to init the RP with a special user main
<heller> which needs to propagate argc argv properly to the application
<jbjnr> look at the simple_resource_partitioner example
<jbjnr> it has a few options of its own, then passes stuff on to hpx_init
<jbjnr> is that what you want?
<hkaiser> heller: there are a bunch of constructors for the RP
<jbjnr> "special user main" hmmmm
<jbjnr> that might not have been implemented
<hkaiser> if some are missing, add them
<heller> yes
<heller> currently there is only the int(*)(variables_map&) overload
<heller> and I wondered if I could construct the non consumed int argc, char** argv in user code
mcopik has quit [Ping timeout: 248 seconds]
<hkaiser> just add another constructor, similarly to what we've done for hpx_init
<heller> sure
<zao> Has any of you fine people used OTF/OTF2 and/or TAU?
<zao> Trying to build this mess, and there's oh so many ancient dependencies.
<zao> Let's try with everything new and fancy and see if it explodes :P
pree has quit [Read error: Connection reset by peer]
<hkaiser> zao: that's Kevin's babies, talk to him
<zao> Oh joy, something depends on Qt.
<zao> *celebrations*
<hkaiser> zao: he's here sometimes as khuck
<zao> Ooh, nice.
<hkaiser> otherwise Kevin Huck <khuck@cs.uoregon.edu>
pree has joined #ste||ar
<jbjnr> zao: my build settings for OTF2 and other stuff are here https://github.com/biddisco/biddisco.github.io/wiki/Linux#otf2-for-apex
hkaiser has quit [Quit: bye]
<jbjnr> I never had any problems with OTF2 or TAU as I recall. Might be a broken install rule for one of them, but make -k install usually works
<zao> Oh boy. Score-P pulls in Cube, which pulls in Qt4, which pulls in GLib, which pulls in Python...
<jbjnr> aha. score-p - that's a really awful one to build
pree has quit [Read error: Connection reset by peer]
eschnett has quit [Quit: eschnett]
aserio has joined #ste||ar
pree has joined #ste||ar
<jbjnr> heller: for the HPX course would you prefer a reservation on MC nodes (36 cores+HT) or GPU nodes, 12cores+GPU. I don't recall if we planned on demo-ing GPU futures. I lost my notes. I think we said we would.
pree has quit [Read error: Connection reset by peer]
<heller> jbjnr: yeah, we said we would
<heller> jbjnr: would also be nice to demo the NUMA stuff though
<jbjnr> ok
eschnett has joined #ste||ar
<jbjnr> heller: which numa stuff did you mean?
pree has joined #ste||ar
<jbjnr> my super fancy new numa stuff with pools etc - or your crappy old stream benchmark?
<heller> your super fancy new stuff
pree has quit [Read error: Connection reset by peer]
<jbjnr> \o/
<jbjnr> better get a working demo then ....
<heller> sure thing
<jbjnr> do you have a demo already - you said you were getting good results with 1 pool per domain ...
<jbjnr> anything simple enough to reuse
<heller> no, but simple enough to create
pree has joined #ste||ar
<heller> I am currently jumping in squares
<jbjnr> is that good or bad?
jaafar has joined #ste||ar
<heller> jbjnr: for me bad
<heller> give me until tonight
<jbjnr> sorry. wasn't trying to pressure you or coerce you into doing it, just wondered if you had a nice demo. I have half finished a new stream benchmark using pools, but it's not GPU compatible
pree has quit [Ping timeout: 240 seconds]
<heller> jbjnr: I am at a project meeting at the moment. just finished the FETHPC proposal
<heller> having 6 people constantly wanting something from me
<heller> now it is better
<jbjnr> so you went ahead with the proposal. I am jealous.
<heller> the other guys went ahead
<jbjnr> you mean FAU pulled out?
pree has joined #ste||ar
ABresting has quit [Quit: Connection closed for inactivity]
pree has quit [Read error: Connection reset by peer]
<heller> jbjnr: no, we are still in
pree has joined #ste||ar
pree has quit [Read error: Connection reset by peer]
<jbjnr> Great. Fingers crossed for you.
<heller> thanks
<heller> let's talk later
patg[[w]] has joined #ste||ar
jaafar has quit [Ping timeout: 255 seconds]
EverYoung has joined #ste||ar
EverYoung has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
pree has joined #ste||ar
pree has quit [Read error: Connection reset by peer]
AnujSharma has quit [Ping timeout: 248 seconds]
pree has joined #ste||ar
jaafar has joined #ste||ar
rod_t has joined #ste||ar
pree has quit [Read error: Connection reset by peer]
jaafar has quit [Ping timeout: 240 seconds]
<jbjnr> wasted an hour an "template parameters of a template template argument are inconsistent with other deduced template arguments"
<jbjnr> grrrrr...
pree has joined #ste||ar
pree has quit [Ping timeout: 240 seconds]
EverYoun_ has joined #ste||ar
EverYoung has quit [Ping timeout: 246 seconds]
harsh has joined #ste||ar
pree has joined #ste||ar
akheir has joined #ste||ar
rod_t has left #ste||ar [#ste||ar]
aserio has quit [Ping timeout: 240 seconds]
pree has quit [Ping timeout: 240 seconds]
aserio has joined #ste||ar
patg[[w]] has quit [Quit: Leaving]
pree has joined #ste||ar
pree has quit [Ping timeout: 260 seconds]
aserio has quit [Ping timeout: 246 seconds]
aserio has joined #ste||ar
pree has joined #ste||ar
rod_t has joined #ste||ar
pree has quit [Ping timeout: 240 seconds]
jaafar has joined #ste||ar
StefanLSU has joined #ste||ar
jaafar has quit [Ping timeout: 240 seconds]
StefanLSU has quit [Quit: StefanLSU]
StefanLSU has joined #ste||ar
aserio1 has joined #ste||ar
aserio has quit [Ping timeout: 240 seconds]
aserio1 is now known as aserio
<jbjnr> K-ballo: yt? I'm still stuck on my template template param problem and have created a mini test case - (which gives a different compiler error, but maybe its related) - do you have a moment to help please?
rod_t has left #ste||ar [#ste||ar]
StefanLSU has quit [Quit: StefanLSU]
StefanLSU has joined #ste||ar
aserio1 has joined #ste||ar
aserio has quit [Ping timeout: 255 seconds]
aserio1 is now known as aserio
StefanLSU has quit [Quit: StefanLSU]
StefanLSU has joined #ste||ar
<heller> jbjnr: what's the problem?
harsh has quit [Quit: Page closed]
<jbjnr> heller: can you see this example https://wandbox.org/permlink/6kDFigH0cem0X92n
<jbjnr> I can't get my multiple template allocator to pass through with type fixed
aserio1 has joined #ste||ar
<heller> jbjnr: having a look
aserio has quit [Ping timeout: 246 seconds]
<heller> jbjnr: in line 20, what the standard currently would say is std::allocator<T>
<heller> jbjnr: that is, leave the template parameters of the allocator up to the caller
<jbjnr> if you do that you get prog.cc:20:58: error: invalid use of type 'std::allocator<_Tp1>' as a default value for a template template-parameter
<jbjnr> template <template<typename> typename Allocator = std::allocator<T>>
<heller> jbjnr: the reason your snippet failes, is because the signatures don't map
<jbjnr> yeah, but why
<heller> you have template <typename T> struct vs. template <typename, int> struct
<heller> as the "signature" of the type you want to pass in
<jbjnr> but the alias "using blah = " should hide one of them
<heller> no
aserio1 has quit [Ping timeout: 255 seconds]
<jbjnr> why not
<heller> an using statement doesn't hide, it just aliases
<heller> the type signature stays the same
<jbjnr> is there a way to trick the compiler into letting me do it
<heller> yes
<jbjnr> like std::bind ...
<heller> subclass my_allocator
<jbjnr> ok
<heller> template <typename T> struct my_allocator : special_allocator<T, 42> {};
<jbjnr> bah!
<jbjnr> it works
<jbjnr> ooh - sorry - I did it in my wandbox not yours
<jbjnr> great thanks
<jbjnr> now I try it on the real example and see if the error there goes away
akheir has quit [Remote host closed the connection]
<heller> i'd advise to stay away from template<template> thingies
<heller> they are usually just too constraining
aserio has joined #ste||ar
eschnett has quit [Quit: eschnett]
<jbjnr> balls : if I use an empty subclass, the constructor I need is not there
StefanLSU has quit [Quit: StefanLSU]
<heller> jbjnr: yeah, you need to forward the constructors
<heller> jbjnr: really, move away from the template <template> stuff
<jbjnr> well, I'm not using it everywhere, just for this one thing
<heller> sure
<heller> the other option would be to add a overload for this specific case
<heller> which kind of beats genericity
<jbjnr> I never thought I'd see the day when you wanted me to use less templates!
<heller> and it is template <typename T, typename Allocator = std::allocator<T>> class vector
<heller> to exactly avoid those problems ;)
<heller> the other option is to go the polymorphic allocator route
<heller> that is, the allocator is a property of the container, the actual type is not fixed, so it is actually embrace more templates ;)
<heller> in the MatrixDistGen case, it looks like Mem should carry the type of the allocator
<heller> as a policy to set the behavior of the underlying structure
<jbjnr> the allocator needs to be passed in from elsewhere - it might be nume interleaved, or first touch .....
<jbjnr> the second template param is the interleaved/first_touch enum
rod_t has joined #ste||ar
<jbjnr> anyway .... thanks for the help, I can make some progress now on a cleanish fix for my stuff for now
<heller> good
<jbjnr> I owe you a beer next week - arrive early so we can have pizza on wed night.
Matombo has joined #ste||ar
<heller> tell that the airports
<heller> 18:15 is when I touch ground in lugano
eschnett has joined #ste||ar
aserio has quit [Quit: aserio]
hkaiser has joined #ste||ar
jaafar has joined #ste||ar
hkaiser has quit [Quit: bye]
jaafar has quit [Ping timeout: 240 seconds]
rod_t has left #ste||ar [#ste||ar]
EverYoung has joined #ste||ar
EverYoun_ has quit [Ping timeout: 255 seconds]
EverYoung has quit [Remote host closed the connection]
EverYoung has joined #ste||ar
EverYoun_ has joined #ste||ar
EverYoun_ has quit [Remote host closed the connection]
EverYoun_ has joined #ste||ar
EverYoung has quit [Ping timeout: 240 seconds]
jaafar has joined #ste||ar