00:17
nanmiao11 has joined #ste||ar
01:52
akheir has quit [Quit: Leaving]
02:15
hkaiser has quit [Quit: bye]
02:28
nanmiao11 has quit [Remote host closed the connection]
03:41
kale[m] has quit [Ping timeout: 256 seconds]
03:47
kale[m] has joined #ste||ar
05:40
Yorlik has quit [Ping timeout: 264 seconds]
05:56
bita_ has quit [Ping timeout: 256 seconds]
09:52
karame_ has quit [Remote host closed the connection]
10:02
diehlpk__ has quit [Remote host closed the connection]
10:02
diehlpk__ has joined #ste||ar
10:05
diehlpk__ has quit [Remote host closed the connection]
10:05
diehlpk__ has joined #ste||ar
11:02
nikunj97 has joined #ste||ar
11:14
weilewei has quit [Remote host closed the connection]
11:38
hkaiser has joined #ste||ar
11:38
nikunj97 has quit [Read error: Connection reset by peer]
12:04
nikunj97 has joined #ste||ar
13:01
diehlpk__ has quit [Remote host closed the connection]
13:01
diehlpk__ has joined #ste||ar
13:03
diehlpk__ has quit [Remote host closed the connection]
13:03
diehlpk__ has joined #ste||ar
13:29
kale[m] has quit [Ping timeout: 272 seconds]
13:30
kale[m] has joined #ste||ar
13:39
nanmiao11 has joined #ste||ar
14:02
diehlpk__ has quit [Ping timeout: 244 seconds]
14:04
diehlpk__ has joined #ste||ar
14:14
<
nikunj97 >
hkaiser, just looked at the implementation of async. That's a lot of template specialization trickery ;-)
14:15
<
nikunj97 >
I think ik how to do something similar for distributed resiliency module
14:19
<
hkaiser >
nikunj97: just one specialization for each use case
14:23
<
nikunj97 >
yes. Good thing I can use your specialization directly into my version with a bit of tweaking here and there
14:45
weilewei has joined #ste||ar
14:54
karame_ has joined #ste||ar
14:55
diehlpk__ has quit [Ping timeout: 256 seconds]
15:04
Nikunj__ has joined #ste||ar
15:07
nikunj97 has quit [Ping timeout: 258 seconds]
15:08
nikunj97 has joined #ste||ar
15:11
Nikunj__ has quit [Ping timeout: 244 seconds]
15:11
nikunj has quit [Ping timeout: 244 seconds]
15:12
nikunj has joined #ste||ar
15:26
akheir has joined #ste||ar
15:41
diehlpk_work has quit [Remote host closed the connection]
15:45
diehlpk_work has joined #ste||ar
15:46
Nikunj__ has joined #ste||ar
15:47
<
gonidelis[m] >
K-ballo: I am about to fix the namings (last -> sentinel).
15:50
<
K-ballo >
1. curious about the inconsistency (why not `Sentinel sentinel` or `Sent sent`) but sure, 2. if those are actually sentinels then sure, consistency
15:50
nikunj97 has quit [Ping timeout: 260 seconds]
15:50
kale[m] has quit [Ping timeout: 244 seconds]
15:51
<
gonidelis[m] >
1. OK... will do it this way. Thanks! 2. that's what I am asking (more of a theory question )
15:53
<
gonidelis[m] >
I think that `FwIterE` is not mandatory to be a Forward Iterator as there are other forms of sentinels
15:53
<
gonidelis[m] >
So it could be better if we `FwIterE` -> `Sent`
15:55
kale[m] has joined #ste||ar
15:56
<
K-ballo >
as long as it is used as a sentinel and not an iterator, sure
15:56
<
K-ballo >
ideally there would be existing documentation saying so in spec
15:56
<
gonidelis[m] >
Shouldn't this be fixed then/
15:57
<
hkaiser >
it sure should be fixed
15:57
<
gonidelis[m] >
K-ballo: let me check the spec then
15:57
<
K-ballo >
the spec above says FwdIterE must meet the requirements of a forward iterator, is the spec wrong?
15:58
<
gonidelis[m] >
hkaiser: I will create a separate PR if needed
15:58
<
gonidelis[m] >
K-ballo: link?
15:58
<
hkaiser >
gonidelis[m]: as I said before, we should rethink the namespaces and different versions of algorithms we expose
15:59
<
hkaiser >
now that c++20 is 'out' we should adapt things
15:59
<
hkaiser >
in the end for_each has at least 3 or 4 different versions: std::for_each, std::ranges::for_each, etc.
15:59
<
K-ballo >
gonidelis[m]: your link, scroll up
16:00
<
gonidelis[m] >
K-ballo: Oh you are talking about the doxygen comments. Ok...
16:00
<
K-ballo >
yeah, that's where the documented spec comes from
16:00
<
gonidelis[m] >
I think that these are obsolete since I made the changes for the begin and end iter to be of different type
16:01
<
K-ballo >
I'm not entirely a fan of multiple versions, if they do all the same thing
16:01
<
hkaiser >
gonidelis[m]: the hpx::for_each will probably be left as is, while hpx::ranges::for_each will have to support sentinels
16:01
<
hkaiser >
but let's discuss
16:02
<
K-ballo >
std::ranges:: doesn't do parallelism, do we have any use for that in hpx?
16:02
<
gonidelis[m] >
hkaiser: hmmm ok.... question: doesn't the adapted `hpx::for_each` support sentinels too?
16:03
<
hkaiser >
well, if we want to be conforming we should change things accordingly
16:04
<
hkaiser >
c++20 wasn't ready yet, so we had to wait for the dust to settle
16:04
kale[m] has quit [Ping timeout: 258 seconds]
16:05
<
gonidelis[m] >
K-ballo: sorry, didn't understand the question
16:05
<
gonidelis[m] >
hkaiser: well, has the dust settled yet?
16:06
kale[m] has joined #ste||ar
16:06
<
hkaiser >
I hope so ;-)
16:06
bita_ has joined #ste||ar
16:06
<
gonidelis[m] >
hkaiser: Where could I check?
16:09
<
K-ballo >
conforming to std::ranges::for_each would mean dropping the execution policy
16:09
<
gonidelis[m] >
but in this spec, `for_each` is like `for_each(ExecutionPolicy&& exec,
16:09
<
gonidelis[m] >
ForwardIterator first, ForwardIterator last,...)`
16:11
<
gonidelis[m] >
K-ballo: Under what section is `std::ranges::for_each` in the spec above?
16:13
<
nanmiao11 >
hkaiser are we going to meet at 11:15 or 11:45?
16:14
<
diehlpk_work >
kale[m], What about the information for the blog post?
16:14
<
diehlpk_work >
You are four days overdue
16:14
<
hkaiser >
nanmiao11: 11:30/45 would be fine
16:14
<
nanmiao11 >
Okay. will join in 11: 30
16:22
<
gonidelis[m] >
any ideas who is this jenkins-cscs guyt :p ?
16:23
<
hkaiser >
gonidelis[m]: it's a bot
16:28
<
kale[m] >
diehlpk_work: I had told you that I'll write one before friday when you asked me before.
16:33
<
K-ballo >
gonidelis[m]: [alg.foreach]
16:33
<
hkaiser >
nanmiao11: I'm ready whenever you are
16:34
<
diehlpk_work >
kale[m], Ok, I have not seen your response. Note that you are 7 days late if you submit by Friday.
16:34
<
diehlpk_work >
Next time, this will affect your second evaluation
16:41
Yorlik has joined #ste||ar
16:44
<
hkaiser >
ms[m]: what should we do about the jenkins comments on new PRs?
16:45
<
hkaiser >
is there a magic incantation to tell jenkins it's ok? or is it just a well-meant heads up?
17:00
<
gonidelis[m] >
hkaiser: What is an spdx tag?
17:01
<
gonidelis[m] >
also feel free to propose further tests that you think I should include
17:17
<
ms[m] >
hkaiser: it asks that because gonidelis is not on the whitelist, you can give one-off permission to run with a comment "ok to test" or add a user to the whitelist with "add to whitelist" (we can change these triggers as well, and I can add users manually as well)
17:17
<
hkaiser >
ms[m]: cool, where can I read about this?
17:17
<
ms[m] >
for now it won't do anything useful on that branch though because it doesn't have a config
17:18
<
gonidelis[m] >
ok I think it's fine now... Should I work on some other algo adaptation while I wait for the integration tests? Or is it better to work on the range adaptation ?(although I think that's already done)
17:19
<
hkaiser >
gonidelis[m]: some more tests might be in order...
17:19
<
gonidelis[m] >
hkaiser: ok sure. I could use some recommendation on that though ....
17:20
<
ms[m] >
that's the plugin we're using to trigger builds from pull requests
17:22
<
hkaiser >
ms[m]: can we use something similar on rostam?
17:25
<
ms[m] >
yeah, I think that'd be possible
17:25
<
ms[m] >
I've no clue how to install jenkins since it was already available, but I guess it wouldn't be too hard
17:25
<
ms[m] >
getting the configuration would be easy enough at least now that I've done it once
17:31
<
hkaiser >
ms[m]: I'll talk to Alireza about that
17:41
<
gonidelis[m] >
It's my first issue so I might have made mistakes
17:41
<
gonidelis[m] >
Please give it a look
17:41
<
gonidelis[m] >
K-ballo: hkaiser
17:44
<
hkaiser >
gonidelis[m]: will have a look
17:47
<
hkaiser >
gonidelis[m]: looks good, thanks
17:50
<
gonidelis[m] >
hkaiser: Just noticed that my test is pretty bad formatted
17:50
<
hkaiser >
it's pretty scarse as well ;-)
17:50
<
gonidelis[m] >
What I am trying to do is for the test to pass if the for_each call compiles fines
17:50
<
gonidelis[m] >
fine^^
17:51
<
hkaiser >
is it a compile only test?
17:51
<
hkaiser >
or is it supposed to actually run and test something?
17:51
<
gonidelis[m] >
yeah... So I am trying to find wether there is some HPX_TEST_* util that checks just wether the thing compiles
17:52
<
gonidelis[m] >
It's just a compile test
17:52
<
gonidelis[m] >
sth like static_assert maybe? But I don't know if that's the way you'd like for things to be tested in hpx
17:52
K-ballo has quit [Ping timeout: 246 seconds]
17:53
K-ballo has joined #ste||ar
17:53
<
hkaiser >
you could combine that with some actual tests (with different execution policies, perhaps)
17:54
<
gonidelis[m] >
you suggest that I should actually compute sth with for_each and then check wether the result is correct
17:54
<
gonidelis[m] >
right?
18:17
kale[m] has quit [Ping timeout: 256 seconds]
18:17
kale[m] has joined #ste||ar
18:48
<
gonidelis[m] >
hkaiser: I think I created a much clearer test now
18:49
<
hkaiser >
does it work as well if you use par as the execution policy?
18:50
<
diehlpk_work >
K-ballo, Hey
18:50
<
diehlpk_work >
do you have any reference that using templates is not bad and does not have much affect on the run time?
18:51
<
gonidelis[m] >
hkaiser: !!!! you got me.
18:51
<
hkaiser >
diehlpk_work: templates never have any runtime impact
18:51
<
diehlpk_work >
One of the reviewers complained that I use templates and therefore my code will be slow
18:52
<
diehlpk_work >
hkaiser, I know, but if I have a reference not from me, the reviwer will be more convinced
18:52
<
hkaiser >
diehlpk_work: templates are a compile time feature, thus by definition don't have any runtime impact
18:53
<
diehlpk_work >
Ok, but I think that the reviewer will not accept that
18:57
<
gonidelis[m] >
hkaiser: I totally missed it for some reason (maybe I was caught up in error handling, anyways). Just fixed it. Made both the adaptation and included a test for `par`
18:58
<
hkaiser >
diehlpk_work: what should we write? the reviewer clearly doesn't understand what he/she is talking about, it's like asking us to prove that 2 * 2 == 4
18:59
<
diehlpk_work >
Ok, what about his concerns for virtual function calls?
18:59
<
hkaiser >
the fundamental premise of templates as a language feature is that the generated code is indistinguishable from manually writte code
18:59
<
hkaiser >
moreover, templates themselves are not code, they are recipies to generate code
19:00
<
hkaiser >
diehlpk_work: do we use virtual functions?
19:01
<
gonidelis[m] >
K-ballo: This is an example I found on cpp reference `Sum s = std::for_each(nums.begin(), nums.end(), Sum());` . Does that imply that `for_each` returns the result of Sum instead of the iterator?
19:01
<
hkaiser >
das ist so fundamental das niemand auch nur darueber redet
19:01
<
hkaiser >
gonidelis[m]: no
19:02
<
hkaiser >
sorry for the Germna blurb, wrong windows
19:02
<
K-ballo >
diehlpk_work: "that's just not how templates work", signed: me
19:02
<
gonidelis[m] >
I am currently taking some Germat tutorials and that's a good chance for practise actually
19:02
<
hkaiser >
K-ballo: thanks
19:03
<
K-ballo >
gonidelis[m]: std::for_each returns the function object used with it
19:03
<
K-ballo >
but only non-parallel std::for_each, as the parallel one does many copies
19:04
<
gonidelis[m] >
hpx::for_each returns the iterator. Isn't that different from std::for_each?
19:04
<
hkaiser >
gonidelis[m]: the example references ranges::for_each, I think - std::for_each does not return the function object
19:04
<
gonidelis[m] >
K-ballo: ^^
19:04
<
K-ballo >
ranges::for_each returns both iterator and function, but it is non-parallel
19:04
<
gonidelis[m] >
hmmm ok...
19:04
<
K-ballo >
we have all of void, Fun, and {Fun, Iter}
19:05
<
K-ballo >
Fun makes no sense for parallel anyways, so we can ignore that
19:05
<
gonidelis[m] >
Great :) . I shall wait for feedback on my tests then...
19:11
miya3716[m] has joined #ste||ar
19:14
<
gonidelis[m] >
K-ballo: Any ideas on what other tests should I add?
19:15
<
K-ballo >
I haven't seen them yet
19:16
<
gonidelis[m] >
oh ok
19:46
<
K-ballo >
gonidelis[m]: looks fine when combined with the existing tests
19:47
<
gonidelis[m] >
ok, that makes me very happy. I was just wondering wether I should include more sentinel cases
19:47
<
K-ballo >
they are all the same
19:56
<
gonidelis[m] >
ohhh ok... so, no other test cases
20:13
mcopik has joined #ste||ar
20:17
mcopik has quit [Ping timeout: 258 seconds]
20:28
mathegenie[m] has joined #ste||ar
21:25
Nikunj__ has quit [Read error: Connection reset by peer]
22:02
miya3716[m] has left #ste||ar ["User left"]
22:15
kale[m] has quit [Ping timeout: 244 seconds]
22:16
kale[m] has joined #ste||ar
22:50
wash[m] has quit [Ping timeout: 260 seconds]
22:52
zao has quit [Ping timeout: 246 seconds]