CAS (Re)Actor for Non-Blocking Multithreaded Primitives
Those of you who happen to follow my ramblings, probably already know that I am a big fan of so-called (Re)Actors (see, for example, [NoBugs10], [NoBugs15], and [NoBugs17]). Very, very briefly, a...
View ArticleParallel STL for Newbies: Reduce and Independent Modifications
Disclaimer: if you’re doing parallel programming for living – please ignore this post (this stuff will be way way way too obvious for you). However, if you’re just about to believe claims that...
View Article#ACCU2018. Day 2. Threads and Locks ARE a Dead End, Period!
As the Day 2 of ACCU2018 is over, here is my report about it. Kotlin ~= Java with a Better Syntax Keynote of Day 2 was about Kotlin (titled “Kotlin/Native – Embracing existing ecosystems”), delivered...
View Article#ACCU2018 Day 1. From Gender Equality to (kinda-)Quantum Computing, with...
As #ACCU2018 is underway, and as I am here, it would be strange if I wouldn’t use the opportunity to tell about what I like (and don’t like ;-)) here. Russel Winder with opening notes Diversity in Tech...
View ArticleParallel Coding: From 90x Performance Loss To 2x Improvement
Disclaimer: if you’re doing parallel programming for living – please ignore this post (this stuff will be way way way too obvious for you). However, if you’re just about to believe claims that...
View ArticleUsing Parallel Without a Clue: 90x Performance Loss Instead of 8x Gain
Ubi nihil vales, ibi nihil velis Where you are worth nothing, there you should want nothing— Arnold Geulincx, XVII century — Disclaimer: if you’re doing parallel programming for living – please ignore...
View Article#CPPCON2017. Day 4. Async Rulezzz!
During the Day 4 of CPPCON, I had to prepare to my own talk tomorrow; still – I was able to attend all the talks I was interested in. But before I can start – let’s discuss a thing which I just...
View Article#CPPCON2017. Day 2. Why Local Allocators are a Good Thing(tm)...
At CPPCON2017 Day 2, two talks were of special interest to me. One was a 2-hour talk about Local Allocators – and another about C++17 STL parallelised algorithms. Local Allocators The talk on Local...
View ArticleAllocator for (Re)Actors with Optional Kinda-Safety and Relocation
What is it about As it says on the tin, this article is about allocators within the context of (Re)Actors (a.k.a. Reactors, Actors, ad hoc FSMs, Event-Driven Programs, and so on). The main benefits we...
View ArticleNetwork Programming: Socket Peculiarities, Threads, and Testing
[[This is Chapter XI(e) from “beta” Volume 2 of the upcoming book “Development&Deployment of Multiplayer Online Games”, which is currently being beta-tested. Beta-testing is intended to improve...
View ArticleInfographics: Operation Costs in CPU Clock Cycles
Click to enlarge NB: scale is logarithmic! [[TODO: TLB]] Whenever we need to optimise the code, we should profile it, plain and simple. However, sometimes it makes sense just to know ballpark numbers...
View ArticleImplementing Queues for Event-Driven Programs
[[This is Chapter XIII(d) from “beta” Volume 2 of the upcoming book “Development&Deployment of Multiplayer Online Games”, which is currently being beta-tested. Beta-testing is intended to improve...
View ArticleChapter VI(a). Server-Side MMO Architecture. Naïve, Web-Based, and Classical...
[[This is Chapter VI(a) from the upcoming book “Development&Deployment of Massively Multiplayer Online Games”, which is currently being beta-tested. Beta-testing is intended to improve the quality...
View ArticleChapter V(d). Modular Architecture: Client-Side. Client Architecture Diagram,...
[[This is Chapter V(d) from the upcoming book “Development&Deployment of Massively Multiplayer Online Games”, which is currently being beta-tested. Beta-testing is intended to improve the quality...
View ArticleMulti-threading at Business-logic Level is Considered Harmful
Assumption is a mother of all screw-ups— Honorable Mr. Eugene Lewis Fordsworthe — For quite a long time (since I first needed to deal with non-trivial multi-threading 15 years ago) I knew that mixing...
View ArticlePart IIIb: Server-Side (deployment, optimizations, and testing) of 64 Network...
I hate Mondays— Garfield the Cat — We continue our series of posts on network development for game engines. Previous parts: Part I. Client Side Part IIa. Protocols and APIs Part IIb. Protocols and...
View ArticlePart IIIa: Server-Side (Store-Process-and-Forward Architecture) of 64 Network...
It’s Monday, so it’s time for yet another part of our Network DO’s and DON’Ts for Game Engines article. Previous parts: Part I. Client Side Part IIa. Protocols and APIs Part IIb. Protocols and APIs...
View ArticleSingle-Threading: Back to the Future? (Part 2)
As we have seen in the previous article [NoBugs10] which described the 1st half of the historical match between our ‘No Multithreaded Bugs’ Hare and Multithreaded Gorrillazz, in most cases our Hare...
View ArticleSingle-Threading: Back to the Future?
So the ‘multi-core revolution’ is finally here [Merritt07][Suess07][Martin10] (some might argue that it has already been here for several years, but that’s beyond the point now). Without arguing...
View Article