hkaiser changed the topic of #ste||ar to: STE||AR: Systems Technology, Emergent Parallelism, and Algorithm Research | stellar-group.org | HPX: A cure for performance impaired parallel applications | github.com/STEllAR-GROUP/hpx | This channel is logged: irclog.cct.lsu.edu
diehlpk_work has quit [Remote host closed the connection]
K-ballo has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
<gonidelis[m]> hkaiser: could using srun be making the change?
<hkaiser> gonidelis[m]: what change?
<gonidelis[m]> change in performance
<hkaiser> don't think so
<gonidelis[m]> that is, running it as an mpi application even though mpi is not used at all
<gnikunj[m]> hkaiser: you're up late ;)
<hkaiser> do you think that when used with mpirun it runs faster?
<hkaiser> gnikunj[m]: nah, just 8.30
<gnikunj[m]> haha ok
<gonidelis[m]> hkaiser: just speculating
hkaiser has quit [Quit: Bye!]
jehelset has joined #ste||ar
mastdev has joined #ste||ar
mastdev has quit [Client Quit]
jehelset has quit [Ping timeout: 250 seconds]
K-ballo has joined #ste||ar
jehelset has joined #ste||ar
K-ballo has quit [Quit: K-ballo]
K-ballo has joined #ste||ar
<K-ballo> gonidelis[m]: a range adaptor isn't a range, it's an adaptor
hkaiser has joined #ste||ar
<dkaratza[m]> hkaiser: Is it possible to postpone the meeting for tomorrow?
<hkaiser> dkaratza[m]: we could move it to Friday
<dkaratza[m]> hkaiser: also fine, what time fits you better?
<hkaiser> would Friday 9am CST work for you?
<hkaiser> dkaratza[m]: ^^
<dkaratza[m]> hkaiser: yeap, sounds good
<dkaratza[m]> thank you!
jehelset has quit [Remote host closed the connection]
<gonidelis[m]> K-ballo: i asked if it is a view
<K-ballo> gonidelis[m]: a view is a range with O(1) copy
<K-ballo> a range adaptor isn't a range, therefore it can't be a view
<gonidelis[m]> K-ballo: got it. Thanks
<gonidelis[m]> I keep forgetting about the o(1) copy thing
akheir1 has quit [Quit: Leaving]
<gnikunj[m]> K-ballo hkaiser Could you help me with the meaning of this compiler error and what causes it? `note: candidate template ignored: invalid explicitly-specified argument for template parameter 'Fn'`
<hkaiser> need to see code
<gonidelis[m]> gnikunj: still ? 😅
<K-ballo> gnikunj[m]: there's a template (function) which is an overload candidate, but the call has an incompatible explicit template argument or none at all
diehlpk_work has joined #ste||ar
<gnikunj[m]> gonidelis: this is a different error. The previous one was easy to get by.
<gnikunj[m]> K-ballo: that could explain it. I do use type aliases in some places which may or may not lead to incorrect overload candidate/specialized struct. I'll have to inspect that.
<gnikunj[m]> K-ballo: what would an explicit template argument mean here?
<K-ballo> fun<T>(1, 2)
<K-ballo> the T is an explicitly specified argument for fun's first template parameter
<gnikunj[m]> got it
<gnikunj[m]> So, would you say it as a typename mismatch? T != T' where T' expects other types
<K-ballo> no
<K-ballo> how does the candidate look? and what's the call site?
<gnikunj[m]> so it's just compatibility issues - ex. converting unique_ptr to some random class type
<gnikunj[m]> K-ballo: I wish I knew. It's a large call stack in a large codebase that's getting this error and I couldn't reproduce it in a small program. That's why I asked for your wisdom on the error.
<K-ballo> the error message points to both the call site and the candidate
<gnikunj[m]> (I mean I know how it looks)
<K-ballo> there will be file and line in there
<gnikunj[m]> just that I'm not sure how it's incompatible
<gnikunj[m]> sure there is
<K-ballo> so, how do they look? the error should be obvious from that
<K-ballo> specifically, what are the template param and template argument in question
<gnikunj[m]> it's `template <auto Fn>` and I'm giving a function as Fn
<K-ballo> ok, there you go
<K-ballo> is it an overloaded function? or is it simply not a context in which decay to pointer happens?
<K-ballo> you can't have a function as a template parameter
<K-ballo> you may have a function *pointer*
<K-ballo> or even a function reference
<gnikunj[m]> Yes, it is a function pointer as a template parameter
<K-ballo> no, it isn't
<K-ballo> not if you are giving it a function rather than a function pointer
<gnikunj[m]> but I'm giving it `&foo` as argument
<K-ballo> then it's overloaded
<gnikunj[m]> would that not mean that it's deduced as function pointer?
<gnikunj[m]> it's a base class function
<K-ballo> if you are giving it `&foo` as an argument then you are definitely not giving it a function as an argument, it's a funciton pointer as best
<gnikunj[m]> and that base class has specialization, yes
<K-ballo> uh? you mean an object??
<gnikunj[m]> I mean the actual function signature is `cmk::collection_bridge_<foo, default_mapper, void>::receive_status`
<K-ballo> can't form a function pointer to an overload set
<gnikunj[m]> The function is of the form: https://wandbox.org/permlink/bZsOwdHZgRMM8oWv
<gnikunj[m]> but this example does work on wandbox
<gnikunj[m]> It isn't of that form though. More specifically it is like: https://wandbox.org/permlink/Q9dFaFt46c1IIxCj
<K-ballo> the compiler disagrees
<gnikunj[m]> Yes, and that's why I'm asking you. So you're saying it has to be an overload issue?
<K-ballo> the compiler thinks there's an overload, yes
<K-ballo> can't think of any other undeducible context
<gnikunj[m]> I'll look closely through it. Thanks for the help!
<K-ballo> if you already know the expected function type you can always add an explicit cast
<K-ballo> fun<static_cast<void (*)(double)>(&g)>() or whatever
<gnikunj[m]> unfortunately it's in generic context. I know the expected function type right now because it's defined in a test that uses that function type.
<K-ballo> you can do the explicit cast in the test
<K-ballo> that will tell you whether it is an overload issue, whether the overload you think exists actually exists, etc
<gnikunj[m]> that's brilliant! Thanks!