Welcome to the main channel on the development of MoarVM, a virtual machine for NQP and Rakudo (moarvm.org). This channel is being logged for historical purposes.
Set by lizmat on 24 May 2021.
00:02 reportable6 left 01:04 reportable6 joined 02:04 evalable6 left, linkable6 left 02:06 linkable6 joined 02:07 evalable6 joined 03:07 evalable6 left, linkable6 left 04:07 evalable6 joined 04:09 linkable6 joined 06:02 reportable6 left
Nicholas good *, * 06:53
08:05 reportable6 joined 08:45 discord-raku-bot left 08:46 discord-raku-bot joined
MasterDuke jnthnwrthngtn: if you haven't already seen, github.com/rakudo/rakudo/issues/4662 looks like it might be up your alley (involves samewith, but is not spesh/jit related) 09:18
jnthnwrthngtn moarning o/ 10:53
Nicholas \o 10:54
jnthnwrthngtn Ahh...just the winter weather I like. Sunny and cold.
lizmat here, it's just cold :-(
jnthnwrthngtn MasterDuke: Yes, noticed it, no immediate guesses, will have to dig a bit
MasterDuke cool 10:56
jnthnwrthngtn (Although probably today is going to be a bit meeting-filled...)
Nicholas "meetings, the pratical alternative to lunch" - hopefully not across lunchtime 10:57
jnthnwrthngtn Well, only if I don't lunch early enough :) 11:02
Which happened earlier in the week
oh, it's samewith...OK, that's the one that doesn't use resumption 11:09
11:10 evalable6 left, linkable6 left
jnthnwrthngtn I wonder if it could be already fixed by nine++ work on region boundary handling 11:11
MasterDuke github.com/MoarVM/MoarVM/pull/1611? 11:13
jnthnwrthngtn ano
Worth a try, at least. 11:14
MasterDuke oh, that may indeed fix it
jnthnwrthngtn Today's lunch is leftovers from last night's Korean takeaway, carried to work in my backpack along with a headset for the meetings...which now smells of delicious Korean noms. 11:18
timo i just re-discovered the talk from emery berger where he presented coz, but he also presented stabilizer 11:20
the takeaway was that random changes in memory layout had as much impact on some cases he'd encountered as going from -O2 to -O3
so stabilizer re-randomizes layout of stuff every 0.5 seconds while doing benchmarking, so that there's no particular choice of layout that's effecting your result too much, and you'll end up with a normal distribution 11:21
unfortunately, stabilizer no longer compiles %)
moon-child yeah, that was great. There was one anecdote: a program was faster when run by one user than another, because the longer username went into the environment and changed the stack alignment 11:22
timo indeed
jnthnwrthngtn That's mildly horrifying :) 11:23
timo isn't it
moon-child in-order, cacheless CPUs are still there!
MasterDuke jnthnwrthngtn: yep, with fix_unwind_missing_frame checked out, the example program finishes for 2k lines of input (though with massive memory growth, 3k got killed by the oom killer) 11:24
timo cacheless is not great, since we'll get too far from actual real-life performance, right? 11:26
we'll want to get performance improvements by making structures smaller, making memory access patterns more predictable or reducing our working set size etc
MasterDuke timo: have you tried using coz on moarvm? 11:27
timo yes, it did not do much, unfortunately
moon-child timo: was not a serious suggestion. But such cores have very uniform performance characteristics, _if_ you stick to them :)
timo coz works best when there's multiple threads doing stuff and there's some contention / waiting / synchronization and it can tell you by how much the whole gets faster if you make one particular piece faster 11:28
if we only do what coz does at the C level, we're not going to see a lot 11:29
we'd really want to apply the coz instrumentation at the bytecode level, and also make it appear in the jitted code so we don't just miss that
jnthnwrthngtn Is coz the..hmm..was it causality-based profiling or some such? 11:30
timo that's right
the example he gave first for "take profile, make the code that runs for the longest time, go faster" would make the "loading..." label flash/animate faster 11:31
so with coz, it'd randomly make that faster and see it does nothing for the overall
then it'd make something else faster and it'd see that effect hits 100% (in a simple example, of course) 11:32
"make something faster" being implemented as "penalize the execution of everything else active at the same time by some amount"
we can make our own super-cut-down stabilizer knock-off by using alloca with a random number in moar's main function 11:36
jnthnwrthngtn I can imagine what you'd do with the coz output, but what concrete actions can you take from the stabilizer one? 11:37
timo make your measurements more reliable for "i actually made it faster" vs "changes in code size and alignment and whatever random factors made it faster" 11:38
running a thing 50 times to make the measurement better was likened to getting a survey by asking the same person 50 times 11:39
11:40 Altai-man joined
MasterDuke i thought Nicholas had an open PR to make disabling hash randomization an env variable, but i don't see it. was i imagining that? 11:42
timo we do get rid of things like thermal differences (hopefully, probably have to sleep a few seconds in between executions), and other parts of the system activating during runtime, stuff like that
jnthnwrthngtn MasterDuke: I don't remember a PR, just a discussion about it 11:43
timo i tried the obvious thing once, it immediately crashed ... 11:44
12:02 reportable6 left, patrickb joined 12:11 evalable6 joined 12:13 discord-raku-bot left, discord-raku-bot joined
nine jnthnwrthngtn: I've learned the hard way to double package all food I carry in my backpack. 12:15
timo remembers an incident involving coleslaw 12:16
nine timo: yes, running a thing 50 times is like asking the same person but in different situations. 12:19
Nicholas "are we nearly there yet?" "are we nearly there yet?" "are we nearly there yet?" "are we nearly there yet?" ... 12:41
13:13 linkable6 joined
Nicholas or, I guess, "who's chancellor?" 13:14
nine Nicholas: more like: "Who's today's chancellor?"
Nicholas "this week"
I realise also that "Who is foreign minister?" is an ABA problem 13:15
13:48 frost left 14:03 reportable6 joined 16:10 gfldex left, discord-raku-bot left 18:01 Altai-man left 18:02 reportable6 left 19:03 reportable6 joined 20:53 discord-raku-bot joined 20:55 discord-raku-bot left 20:57 discord-raku-bot joined 21:03 gfldex joined 21:44 CaCode joined 22:52 discord-raku-bot left 23:56 Colt left 23:58 Colt joined