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
<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