Our Brains Are Not Multi-Threaded
calnewport.com
calnewport.com
I am of the opinion that this for instance might be the biggest singular reason nodejs has been successful without people even realizing it. Since “full stack” development is so in demand/popular this really limits the context overhead of switching languages and semantics between front end and back end in such a way that it can keep productivity high.
(Yes nodejs has other strengths too and to be fair weaknesses but I wouldn’t discredit this as A much factor off hand at least)
I think his point was that, obvious or not, many knowledge workers organize their work that way and this will actively cause psychological harm.
I wasn't fond of his technology metaphors either, but I think the point he wanted to make was a valid one.
Though, using the metaphors as a tool of argumentation might also make sense because do use terms like "multitasking" a lot when describing situations where you have to switch around between different activities a lot (and implicitly justifying it because the activity is also seen as simple and basic - because computers do it all the time)
So it might be useful to drill down on those metaphors and show how incorrect they actually are.
(If you want to nitpick on the metaphors, I think he had threads in computers come off too easily: As probably every kernel developer can tell you, OS context switch absolutely do involve a complicated machinery of instructions - and as every application developer knows, having multiple threads can absolutely lead to chaos if you have no strategy how to manage them)
The brains of mammals work very differently from the machines we create. We don't understand exactly how, but they are substantially more complex. Just look at how much work goes into writing a machine that can classify photos as cats or dogs; or software that can drive an autonomous vehicle.
It's similar to growing a coprocessor designed to do this task, load on CPU is reduced and you may also get a small cache to buffer it for a while without losing context even if interrupted.
It has limitations, too complex tasks are hard for brain to make automatically facile.
I've likened it has having to pack up one set of tools, before I can unpack the other one.
Can they walk and chew gum?
How many lines of code though? :D
ok maybe not: https://xkcd.com/224/
You are what you think. I have no idea how or why... but I know this is so.
Given the evidence that conscious thought, self-awareness and "free will" are post-hoc effects, emerging after decisions are made by the brain at a subconscious level, it's more likely that that you are what thinks you.
I do, however, appreciate your splendid and witty statement and shall reward you with an upvote :-)
But I thought I was a racer from age 6... and now I are one.
If we look at the brain like a computer that interacts with the world as well as interacted with, I like to imagine that the brain is very complex and running many parallel processes. Like a computer, it has many parts of the interface to the world. Eyes are the screen, ears are the speakers, muscles are the mouse and keyboard, etc. I like to think of attention as the cursor; sort of a single process that directs what the user is interacting with.
I'm positive that is much too simple of an analogy because it still leaves the question: why can't consciousness control multiple attention cursors simultaneously? In many ways, it does in which consciousness can pass things off to automatic processing, like triggering muscle memory and other previously strengthened pathways. But, I think the why there's not multiple attention processes running is still a big question yet to be answered. I think neuroscience still has a lot to be understood before we'll be able to answer it sufficiently.
In which case, sure, it makes sense that each thought blocks the main thread and that's why thought-loops are particularly annoying.
In terms of I/O though, I certainly try to optimize the main thread with concurrent patterns when the input queue gets hit with high traffic. Even if I'm recurrently mulling over something for days, hoping for a break-through or insight or whatever, it's not like I'm incapacitated and can't perform / prioritize other thoughtful tasks on the event loop.
This is why we often get much better task performance when we allow our gut feelings (which come from subconscious parts of the brain) to inform our reasoning.
Deliberative reasoning in the human brain has a very limited capacity.
See: https://en.wikipedia.org/wiki/Working_memory and https://en.wikipedia.org/wiki/The_Magical_Number_Seven,_Plus...
Synapses are parallel, but so are various operations in a single threaded CPU, even just the ALU (carry look ahead addition e.g.). Vice versa, hyperthreading switches context when the single threaded cpu is stalled by memory look-ups.
While its notable how many ideas can converge, or how you remember that name out of the blue that you couldn't figure out minutes or days before is surely interesting. But attention is pretty much directed, so to speak. Just doing a different motion with each hand at the same time requires a certain ammount of orchestration. This requires planning and training.
The brain is a super scalar architecture, sure, but you cant do taxes with one hand, paint a picture with the other, and explain quick sort to your mom over the phone while you get your ... nippeles pinched (the classic Password Swordfish situation). Or more simply speaking, you can't be angry (at the taxes), elated (because of the forms and colors) and aroused (the nipple pinching throws various interrupts, whether arrousel or panic) at the same time while remaining pleasently calm towards your mum. Well, that does not sound like a good study design, but because of the health hazzard. Come on, if you stress a metaphor, I want too.
Mixing behavioral ideas and whatever-else-accurately-describes knowledge of cpus (systemic?) is a bad idea, over all. That's not reductive and breaks the deductive argument.
[1] listen to? Parse? Hear? I’m not sure what the right word is in this context.
How do we know that people's opinions on the difficulty of multitasking are representative and not biased?
I'm not even speculating on whether gender differences might be innate or trained.
A newer study, based on a real world task of meeting preparation, showed that both men and women were quite bad at multitasking: https://link.springer.com/article/10.1007%2Fs00426-018-1045-...
Comparing consciousness to how a CPU processes instructions is very poor analogy, because to this day, because the nature of consciousness is still a complete mystery to science.
I mean, we can think about stuff, but we don't think about them one after the other. We're thinking all of the time, but we tend to focus on what's immediately interesting to us. Consciousness is a pretty complex thing to unravel...
I think it’s likelier that each portion of the brain fires away at up to whatever its natural “throughput” is (some activities more or less parallel), and conscious awareness just happens to feel like a single global mutex.
I guess this is a game you can play where you keep refining the analogy until it’s too complex to help, but I don’t think the linked author’s analogy is good or useful. Better to just say we can’t be consciously aware of two things concurrently. It’s not a hard concept.
This is not true. Before multi-core processors there were many computers with multiple CPUs.
Is the author under 30 or something?
It doesn't say computers could only execute one instruction at a time. It says processors.
If you're going to do needlessly pedantic bikeshedding, at least get it right.
It is not true.
Instruction-level parallelism existed before multi-core.
> If you're going to do needlessly pedantic bikeshedding, at least get it right.
Pot, meet kettle.
Then don't say shit like "at least get it right".
He's trying to describe the difference between multi-threading and multiprocessing to introduce the idea of task switching. But the bad history lesson is distracting.
There were long periods of history when most hardware vendors had at least one model with multiple processors, and there were some companies that specialized in them (Cray, Silicon Graphics, IBM, Fujitsu, Toshiba?), including ones built with x86 processors (Sequent, IBM).
People think about the world (and brain in this case) in terms of what they are familiar with. Today computers are ubiquitous and we try to see computers in nature. In 100 years it will be something different and we'll try to imagine the brain like that.
Given that the same complaint seems echoed in other comments, I'm not alone there.
If you've never heard of Cal Newport before now, I can see reason for some doubt, but I also think you're maybe missing out on a lot within the field.
But it's all so relative and comparing it to a "computer" and claiming it's not efficient is not fair. In fact, I'd argue that the human brain is a lot more efficient at handling tasks because not only is it executing instructions, it's constantly learning and programming the next set of instructions.
oh, if only it were true...
Any time you need to do something asynchronously, things get trickier, but whether you keep it single threaded or not barely makes any difference. Race conditions exist in single threaded code too as soon as it is interacting with a network or the OS or anything that takes time and you don't want to block.
It's not threads that are hard, it's the explosion of the state space of your program when you commit to accepting further user/network input whilst some task is ongoing, whether you implement that with threads or not.
> Thinking Fast and Slow is my runner-up for “book most overrated by investors” (with Klarman’s Margin of Safety the champion.) People who pitch this book as “required reading” simply haven’t read broadly enough about cognitive biases: while the content is certainly useful and I don’t take anything away from Kahneman as a researcher, his writing/communication/worldview leave much to be desired, and the same lessons can be learned far more effectively and enjoyably via a variety of other books (many of which are suggested below).
http://www.askeladdencapital.com/daniel-kahnemans-thinking-f...
https://retractionwatch.com/2017/02/20/placed-much-faith-und...
The author thinks that he relied too much on weak studies for the thesis of the book.
That said, I believe the article to be incorrect. Our brain does do various sorts of parallel processing (visual cortex, keeping your heart beating, maintaining sense of balance, etc). It's just that the cores happen to be more specialized.
Has the author has never actually written a game? The majority of games are single threaded. You calculate the positions, moves, strategy of the AI, etc. etc. and then eventually render the frame. For years, certain releases of Doom and Quake were the benchmarks for games because they were some of the first to use multiple threads and could scale to multiple CPUs/processors.
Sure, modern games tent to be able to use more cores and have some independent threads, but the majority of the work typically still happens in the main event loop.
Our brain's potential is harnessed with reptile and mammal tasks which are more asynchronous than parallel. Even if we could overclock ourselves into massive parallel thinking it would have ended up with oxygen or glucose deficit. And mind overheating, whether cpu is made from silicon or grey matter, there's a limit for FLOPS per joule.
> I feel like I get a brief glimpse of 'multithreads,' and it's somewhat emotionally unpleasant.
I think it helps not to identify the self as the thoughts/processes of the mind, the self is the observer/awareness
He must mean that conscious attention is not multi-threaded, and that is obviously true because the nature of paying attention is that you are focusing on a single thing.
The lower priority 'threads' which are not the intended focus still do take cycles in brief moments when the main task is idle only to be preemptively interrupted at the cost of many context switches and adding very little value. The same happens with hardware CPUs which is why coroutines are much more effective when the number of tasks >> number of processing units.
So it's another hypothesis, parading around as a common claim.
Pletzer, B., Kerschbaum, H., & Klimesch, W. (2010). When frequencies never synchronize: the golden mean and the resting EEG. Brain research, 1335, 91-102.