This is absolutely what happens. It's even more tricky since our sensory inputs have different latencies which the brain must compile back into something consistent. While doing so it interprets and filters out a lot of unsurprising, expected data.
No, it's to make it easier to dose different kind of biologically active substances. They can have significantly different "recommended weight to eat of this per day", IUs make that sort-of comparable and easier to remember.
The usability issue with IUs is that people are used to scales measuring weight and containers measuring volume, but an IU is different for each substance.
Another issue is insulin syringes are labeled in "insulin units," which hapless folks reasonably assume can be abbreviated "IU."
If you are measuring out a certain number of IUs, and your calculator or formula hasn't asked you which substance you're working with, you're gonna have a bad time.
It's mixed. You get something in the neighborhood of a 3-4x speedup with SHA-NI, but the algorithm is fundamentally serial. Fully parallel algorithms like BLAKE3 and K12, which can use wide vector extensions like AVX-512, can be substantially faster (10x+) even on one core. And multithreading compounds with that, if you have enough input to keep a lot of cores occupied. On the other hand, if you're limited to one thread and older/smaller vector extensions (SSE, NEON), hardware-accelerated SHA-256 can win. It can also win in the short input regime where parallelism isn't possible (< 4 KiB for BLAKE3).
Israel is using those methods in their airport security, quite successfully given their threat level. The problem is that it does not scale well and requires very well trained and attentive personnel.
I have not been recently to Israel, so I do not know if there have been any changes in their system.
However, some time ago, for a few years I had been a frequent flyer into Israel.
In my opinion their system of airport security seemed far more efficient than what is now typical in Europe and immensely better than the circus that seems typical for USA.
The disadvantage is as you said, that their system requires numerous well trained personnel.
At least at that time, their system had very little emphasis on physical searching and luggage scanning, but it was based mainly on interviewing the traveler, normally by 2 different agents.
During a great number of security checks, my luggage has been searched only once, and it was definitely my fault. That flight was at the end of an extremely busy day and I was very tired, so I just wished for the security check to end as quickly as possible, to be able to finally rest in the plane. My impatience was transparent, which made me suspicious, leading to this singular case of physical searching, instead of just psychological assessment.
No. They might believe it works quite well, though, but they're seriously mistaken.
My old neuroscience lab was approached 20 years ago by a three-letter agency looking to develop a rapid reaction time tool to measure the trustworthiness of new people in time-critical hostile situations.
Because of that proposal, I reviewed the literature on "lie" detector tests and their ilk. The evidence is great for them measuring stress, and flimsy for them measuring deception. Normal people get nervous when questioned. Psychopaths may show less autonomic responses. People can train to alter their stress levels. Data interpretation varies wildly by operator, as does accuracy. The only real value is trying to convince criminals they work, in the hopes they make a true mistake or confess.
tl;dr The accuracy is really low, and anyone arguing otherwise is trying to fool the criminals, trying to fool agencies into buying their equipment, or fooling themselves.
Why not "just use a different machine for banking" etc.
The point is that most people won't do that. Just like with backups, strong passwords, 2FA, hardware tokens etc. Security and safety features must be either strictly enforced or on enabled by default and very simple to use. Otherwise you leave "the masses" vulnerable.
There's a "Profiles" menu in Chrome to use a different profile. Most people won't. That's fine. I don't deal with them. The people I deal with; my mom has a separate computer that I bought her for banking.
> (d) AVX512 is quite hardware specific. Some processors execute these instructions much better than others. It's really a collection of extensions, and you get frequency downclocking that's better/worse on different processors as these instructions are executed.
To re-iterate, this is our observation as well. The first AVX512 processors would execute such code quite fast for a short time, then overheat and throttle, leading to a worse wall-time performance than the corresponding AVX256 code.
I am not sure if there is a better way to find the fastest code path besides "measure on the target system", which of course comes with its own challenges.
The processors with severe throttling from AVX-512 were server CPUs, i.e. Skylake Server and its derivatives, like Cascade Lake and Cooper Lake.
Only few of those CPUs have been used in workstations, i.e. high-end desktop computers.
The vast majority of the CPUs with AVX-512 that can be encountered at the general population are either AMD Zen 4 and Zen 5 CPUs or some old Intel CPUs from the Tiger Lake, Ice Lake and Rocket Lake families. All these do not have AVX-512 throttling problems.
The owners of server computers are more likely to be knowledgeable about them and choose programs compiled with an appropriate target CPU model.
Therefore I believe that nowadays, when the percentage of computers with good AVX-512 support is increasing, and even Intel is expected to introduce by the end of the year Nova Lake with AVX-512 support, an application should be compiled such that whenever it detects AVX-512 support it should dispatch to the corresponding branch.
On the computers with AVX-512 support, using it can provide a significant increase in performance, while the computers where this could be harmful are more and more unlikely to be encountered outside datacenters that have failed to update their servers.
Skylake Server was introduced 9 years ago and Ice Lake Server, which corrected the behavior, was introduced 6 years ago. Therefore, wherever performance matters, the Skylake Server derivatives would have been replaced by now, as a single Epyc server can replace a cluster of servers with Skylake Server CPUs, at a much lower power consumption and with a higher performance.
There is a large variance in AVX-512 performance across the microarchitectures, particularly the early ones. In addition to throttling, which was mitigated relatively early, some relatively feature-complete microarchitectures (e.g. Ice Lake) were sensitive to alignment. The microarchitectures with these issues are approaching obsolescence at this point. AVX-512 runs very well with predictable performance on most vaguely recent microarchitectures.
In my case I find AVX-512 to be usable in practice because the kinds of users that are obsessed with performance-engineered systems are typically not running creaky hardware.
> I am not sure if there is a better way to find the fastest code path besides "measure on the target system", which of course comes with its own challenges.
Yeah, and it's incredibly frustrating because there is almost zero theory on how to write performant code. Will caching things in memory be faster than re-requesting them over network? Who knows! Sometimes it won't! But you can't predict what those times will be beforehand which turns this whole field into pure black magic instead of anything remotely similar to engineering or science, since theoretical knowledge has no relation to reality.
At my last job we had one of the weirdest "memory access is slo-o-o-ow" scenarios I've ever seen (and it would reproduce pretty reliably... after about 20 hours of the service's continuous execution): somehow, due to peculiarities of the GC and Linux physical memory manager, almost all of the working set of our application would end up in a single physical DDR stick, as opposed to being evenly spread across 4 stick the server actually has. Since a single memory stick literally can't cope with such high data throughput, the performance tanked. And it took quite some time us to figure out what the hell was going on because nothing came up on the perf graphs or metrics or whatever: it's just that almost everything in the the application's userspace became slower. No, the CPU is definitely not throttled, it's actually 20–30% idle. No, there is almost zero disk activity, and the network is fine. Huh?!
Well, we didn't, for obvious reasons, patch JVM to manually finagle with physical memory allocation — which it probably wouldn't be able to do anyway, being run in a container.
That is an excellent point. The development costs of such low-volume projects are often way higher than the production costs. Having production in house or close often allows tighter, thus faster, prototyping and feedback during development, which in turn saves money.
The whole "But how can this be scaled and monetized" crowd here also does not seem to understand the point of such projects and Germany's Hacker community. It is about learning and just doing it, much less about building a high–revenue business.
I think so too, because the bar to economic sustainability is not incredibly high. I know a lot of one-man businesses operating with one Siplace pick and place machine and making a good living out of it.
Many people don't have the desire to expand forever. In my case I hope the company grows o 20 or 30 employees, and then I would work stabilizing it so it can last 50+ years. e.g. setting up a trust to oversee the well being of employees, the quality of the products, etc.
This is completely alien to most american founders and businessmen, in the words of Larry Elison: "it's not enough for me to win, it's about everybody else losing"
https://www.youtube.com/watch?v=wo_e0EvEZn8
reply