Srini K
02/11/2021, 7:15 PMibdknox
02/11/2021, 7:44 PMSrini K
02/11/2021, 8:14 PMSrini K
02/11/2021, 8:15 PMSrini K
02/11/2021, 8:16 PMSrini K
02/11/2021, 8:16 PMSrini K
02/11/2021, 8:16 PMSrini K
02/11/2021, 8:16 PMibdknox
02/11/2021, 8:18 PMSrini K
02/11/2021, 8:18 PMSrini K
02/11/2021, 8:18 PMSrini K
02/11/2021, 8:19 PMSrini K
02/11/2021, 8:19 PMibdknox
02/11/2021, 8:23 PMibdknox
02/11/2021, 8:25 PMibdknox
02/11/2021, 8:25 PMibdknox
02/11/2021, 8:25 PMYousef El-Dardiry
02/11/2021, 8:37 PMYousef El-Dardiry
02/11/2021, 8:40 PMRay Imber
02/11/2021, 8:51 PMSrini K
02/11/2021, 8:56 PMRay Imber
02/11/2021, 10:32 PMMy hope is to flip the problem on its head and show that part of the problem is we didnât actually go high level enough. Languages like python still let you specify too many details and those details are what prevent us from creating compilers that output extremely high performance programs by default.This reminds me of the Haskell ethos a bit? A language designed to describe pure computation at an extremely high level, then let the compiler figure out efficient ways to run those computations. The language is so high level that it didn't support the very concept of side effects (causing them to invent/discover the monad...) The result is that the GHC compiler truly is a marvel of modern engineering. But (devils advocate time), It took 30 years of the most advanced CS research to get here, and it still has extremely unpredictable performance gotchas in some places. Maybe it's because I've been jaded by our current world, but I can't see "higher level" as a solution. Mainly because "creating compilers that output extremely high performance programs by default" is actually a really hard problem for the general case. Part of the problem being: there is no single general case. @Srini K makes the point, a higher level language often results in poorer systems understanding, not greater. Or to put it another way, all abstractions are leaky eventually... How do you handle it when the leaks happen?
ibdknox
02/11/2021, 10:33 PMibdknox
02/11/2021, 10:38 PMibdknox
02/11/2021, 10:38 PMibdknox
02/11/2021, 10:40 PMibdknox
02/11/2021, 10:43 PMRay Imber
02/11/2021, 10:48 PMRay Imber
02/11/2021, 10:48 PMibdknox
02/11/2021, 10:50 PMibdknox
02/11/2021, 10:51 PMibdknox
02/11/2021, 10:51 PMibdknox
02/11/2021, 10:53 PMibdknox
02/11/2021, 10:55 PMibdknox
02/11/2021, 10:56 PMRay Imber
02/11/2021, 10:57 PMibdknox
02/11/2021, 10:59 PMibdknox
02/11/2021, 11:11 PMibdknox
02/11/2021, 11:12 PMRay Imber
02/11/2021, 11:19 PMibdknox
02/11/2021, 11:22 PMibdknox
02/11/2021, 11:23 PMSrini K
02/12/2021, 12:07 AMComputational performance is such a fascinating topic to me and it took me a long time to realize that itâs actually much simpler in concept than I thought. To go fast, you just canât do much stuff. All of those super fancy structures weâd read about in research papers? They were almost always slower because in the end the only cleverness that matters is the bit where the total amount of work you do is less. You were often saving 10% here and hiding an extra 20% over there without realizing it.This is a profound insight. I remember Jonthan Blow talking about just this in an older talk he gave: TL;DR lists are often fine! Start there, optimize only later / avoid premature optimization. All data structures are fundamentally about optimization. Fun story of him looking at DOOM source code when it came out how he was chewed out by John Romero when Blow said asset loading was done sub-optimally (back when he wasnât enlightened!)
Florian Cäsar
02/13/2021, 10:35 AMwtaysom
02/13/2021, 11:33 AM