boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
chewb has quit [Quit: Leaving]
<siraben> Stacks and monoids on HN front page https://raphlinus.github.io/gpu/2020/09/05/stack-monoid.html
<siraben> Looks like there's a relevant paper too; https://dl.acm.org/doi/pdf/10.1145/3018882.3018891 . The idea seems to be turning imperative, sequential code into a map/reduce type of computation that can be parallelized.
<siraben> If you know that the partial results can be combined in a monoidial way (i.e. with an operation that is associative), then it makes sense that the order in which the partial results happen is independent.
<siraben> Oh, the paper is so much clearer than the blog post.
DKordic has quit []
jsoft has joined #forth
<proteusguy> siraben, definitely speaks in favor of stack oriented devices. Interesting. Have to dig into it and see if its something we can apply.
mtsd has joined #forth
<proteusguy> siraben, seems like the biggest issue (which it often is) is getting the data segmented where it can actually be accessed in parallel faster than just sequentially going through it in a single process.
<siraben> proteusguy: Right. Hence the importance of the monoidial decomposition.
<proteusguy> How does that help you segment the data? I see if you can segment the data then you can apply this decomposition to it but it seems that segmenting the data is a pre-requisite.
<siraben> It's a precondition. The paper is about taking imperative sequential programs and rewriting them in an equivalent way of map/reduce form.
<siraben> I think the approach is more general than splitting data. Entire control structures can be rewritten as well.
<proteusguy> yes i understand what the paper is about - and it's an interesting approach. Now I'm talking about the challenges in being able to apply the paper in a real world situation.
<siraben> Sure. What challenges are you referring to?
<proteusguy> OK you have a large file on a drive in a computer. If you're critical path is the IO bus transfer speed of the drive, how do you use parallel processing to process the data any faster than a single process just iterating over the file? So the challenge is to identify scenarios where you can have the data in a format/location that allows you to apply the solution.
jsoft has quit [Ping timeout: 240 seconds]
rprimus has quit [Quit: Lost terminal]
rprimus has joined #forth
<siraben> Well parallel processing won't help you read the file faster so here you're I/O bound.
<siraben> If a large database is split across multiple servers, parallel processing would be very useful.
proteus-guy has joined #forth
xek has joined #forth
xek has quit [Ping timeout: 258 seconds]
mtsd has quit [Quit: Leaving]
xek has joined #forth
rann is now known as list
xek has quit [Ping timeout: 256 seconds]
list is now known as rann
jsoft has joined #forth
xek has joined #forth
xek has quit [Ping timeout: 240 seconds]
Zarutian_HTC has quit [Ping timeout: 265 seconds]
Zarutian_HTC has joined #forth
<WilhelmVonWeiner> Oh it's siraben
<siraben> hi WilhelmVonWeiner
<WilhelmVonWeiner> Long time no see, how's KnightOS
<siraben> You're on the KnightOS channel?
<WilhelmVonWeiner> I'm on the KnightOS channel?
<siraben> Haha, I mean what was I doing the last time we met?
<siraben> Because I happen to be doing some KnightOS related things now as well
<WilhelmVonWeiner> Not very sure. Last I remember you'd met a Forther at their office and you were sounding well smart. I thought KnightOS was your thing.
<siraben> Ah, not KnightOS but yeah I was tinkering with my TI-84+ calculator.
<siraben> Wrote a Forth on it that started up at boot
<siraben> github.com/siraben/zkeme80
<WilhelmVonWeiner> zkeme80
<WilhelmVonWeiner> that's what I was thinking of
<WilhelmVonWeiner> got them confused
<WilhelmVonWeiner> I went to put it on my TI but found it didn't work
<siraben> zkeme80?
<WilhelmVonWeiner> as in, the calculator, not the OS
<siraben> Oh the calculator
<siraben> Aww, batteries?
<WilhelmVonWeiner> Nope, I think it'd been dropped on it's head too many times
<siraben> That's unfortunate. There's an online emulator: https://www.cemetech.net/projects/jstified/
<siraben> I still haven't implemented a REPL yet, which was one of my plans. Maybe sometime this year or next I'll get to it.
<WilhelmVonWeiner> Haven't had much opportunity for Forth since finishing university.
jsoft has quit [Ping timeout: 246 seconds]
<WilhelmVonWeiner> The only Forth-related idea I have is SIP processing hardware which loads configuration from flash, written in Forth.
<siraben> I think Forth will just remain a hobby for me, for systems programming definitely something like C++ or Rust with tooling will be better.
<WilhelmVonWeiner> Yes, I like Zig
iyzsong has quit [Read error: Connection reset by peer]
iyzsong has joined #forth
iyzsong has quit [Read error: Connection reset by peer]
iyzsong has joined #forth
iyzsong has quit [Read error: Connection reset by peer]
iyzsong has joined #forth
<MrMobius> hmm, maybe I have shot myself in the foot
<MrMobius> I decided to put make a flag byte for each word that marks minimum number of stack items and whether it will add to the stack
<MrMobius> the dispatcher looks at the byte and does the checks to save space so each word doesnt waste space on checks
<MrMobius> now how do you implement ' ? you can return the address of the code but then there is no checking since that only happens in the token dispatcher
<MrMobius> so I could embed a 3 byte subroutine call instruction in the header before the flag byte and have ' return that address but that kind of defeats the space savings
Zarutian_HTC has quit [Read error: Connection reset by peer]
Zarutian_HTC has joined #forth
xek has joined #forth
WickedShell has joined #forth
gravicappa has quit [Ping timeout: 258 seconds]
gravicappa has joined #forth
spoofer has quit [Read error: Connection reset by peer]
dave0 has joined #forth
Zarutian_HTC has quit [Ping timeout: 265 seconds]
xek has quit [Ping timeout: 256 seconds]
gravicappa has quit [Ping timeout: 260 seconds]
Zarutian_HTC has joined #forth
Kumool has quit [Quit: FreeZNC - Visit us! Server: chat.freenode.net Channel: ##bnc4you]
jedb has quit [Quit: Leaving]
a3f has quit [Ping timeout: 272 seconds]
a3f has joined #forth
spoofer has joined #forth
Kumool has joined #forth