Great talk man, thanks. Just a friendly remark: Tuple is pronounced as Toopol. "Tapol" on the other hand means lazy in my native language (Bisaya). Maybe there was pun intended there, I don't know but great talk nonetheless.
@code_report2 жыл бұрын
🔥
@pesto8012 жыл бұрын
Using an `ex::then()` in order to make the allocations for the partition vector, means that the pass is executed by "a single thread", "sequentially"? (If yes,) I know there is no computational workload, but why not use `ex::bulk()` just for the sake of it? I can say that it does not fit into the regime of the `bulk()` algorithm but in my mind seems like "parallelizing as deep as possible and then reduce" is a proper greedy beginning.
@pesto8012 жыл бұрын
Amazing intro on the values of standardization especially in the domain of parallel computing. And what a great senders receivers simplified section!? I 've been trying to dig into senders receivers concepts and I can certainly say that a novel user should first go through this talk and then move to Niebler's which is in depth detail of the senders receivers characteristics.
@llothar683 жыл бұрын
Interesting. But Apple is doing it better for normal programming (non HPC) with GCD and his system task/thread pooling.
@blelbach3 жыл бұрын
You are comparing two different things. This is a standard interface, not a particular implementation. You could write a scheduler that uses GCD under the hood.
@llothar683 жыл бұрын
@@blelbach I think it suffers from the same long term syndrome of unpracticability as pthreads and C++14 threading. Is the sender/receiver able to work on all events. In normal apps and databases you have to combine multithreading with all kinds of events. Took Unix years to understand that synchronisation, timers, IO and process ids are all just file handles that can be mixed together. Only HPC does compute only. Also how dynamic is the framework? Ranges are only good when you do know the parallel steps in advance, what about queues? Thats my problem with the tutorials and "smart" solutions (C++20 corroutines). The examples shown are nothing that you will meet later in real life. And then the overengineered and underused solutions fail. Also i can't really see how this will be able to include GPU execution. Memory data segmentation is still the real difference when offloading to a GPU.
@blelbach3 жыл бұрын
@@llothar68 All modern GPU platforms are moving towards unified memory.
@ZekeJW3 жыл бұрын
Great talk! In regards to the "Just use CMake" comment. CMake is great, don't get me wrong, but I have fell in love with Bazel. I could see Bazel taking a good portion of the market share in the next decade. I think the way it's designed is much more forward thinking than CMake is.