Here you dropped this:
#define ifnt(x) if (!(x))
Here you dropped this:
#define ifnt(x) if (!(x))
Oh God. Did the kettle boil over?
The argument is that processing data physically “near” where the data is stored (also known as NDP, near data processing, unlike traditional architecture designs, where data is stored off-chip) is more power efficient and lower latency for a variety of reasons (interconnect complexity, pin density, lane charge rate, etc). Someone came up with a design that can do complex computations much faster than before using NDP.
Personally, I’d say traditional Computer Architecture is not going anywhere for two reasons: first, these esoteric new architecture ideas such as NDP, SIMD (probably not esoteric anymore. GPUs and vector instructions both do this), In-network processing (where your network interface does compute) are notoriously hard to work with. It takes CS MS levels of understanding of the architecture to write a program in the P4 language (which doesn’t allow loops, recursion, etc). No matter how fast your fancy new architecture is, it’s worthless if most programmers on the job market won’t be able to work with it. Second, there’re too many foundational tools and applications that rely on traditional computer architecture. Nobody is going to port their 30-year-old stable MPI program to a new architecture every 3 years. It’s just way too costly. People want to buy new hardware, install it, compile existing code, and see big numbers go up (or down, depending on which numbers)
I would say the future is where you have a mostly Von Newman machine with some of these fancy new toys (GPUs, Memory DIMMs with integrated co-processors, SmartNICs) as dedicated accelerators. Existing application code probably will not be modified. However, the underlying libraries will be able to detect these accelerators (e.g. GPUs, DMA engines, etc) and offload supported computations to them automatically to save CPU cycles and power. Think your standard memcpy() running on a dedicated data mover on the memory DIMM if your computer supports it. This way, your standard 9to5 programmer can still work like they used to and leave the fancy performance optimization stuff to a few experts.
No, the 2037 problem is fixing the Y2k38 problem in 2037.
Before that there’s no problem :)
I’m in academia and I can report that still nobody uses those.
For your own archiving, just use Zotero.
For writing papers, use bibtex.
All those citing websites are just scams for high school/undergrad students trying to find their footing. There is no reason they should exist.
Or just any dpdk program, where any gdb caused slowdown causes the code to “behave as expected”
I believe it. Linux is not a good measure of efficiency (see kernel bypass tcp stacks, af_xdp, dpdk, spdk, etc). You can almost always make something more efficient/faster than Linux for a given task. The problem is doing that while having support for almost all hardware/configurations/uses cases under the sun.