3,127 karma · joined October 6, 2012
(Regarding the cockroach - don't Americans have the right to shoot human tresspassers? The crab on the other hand is plucked out of water which is its own home. This is not to say I'm against the practice - I'm not, unless the crab might go extinct.)
One source of variability: some care about impact on coworkers, some don't. Guess who will upset you more. Intrinsic/extrinsic is orthogonal to this.
Everybody spies on everybody, everybody accuses everybody, everybody lies about both, gets caught and mostly doesn't care. The allegations prove just as much as the denials - nothing. Eventually one side will be caught lying, and nothing will happen to them.
It also so happens that I'm dumb enough to have wasted time listening to arguments from neoreactionaries living in democracies and thinking about them. But mainly I think the test should be empirical.
I don't think "choice" is how you decide these arguments. Either your choice to make noise limits my choice to sleep or vice versa. There is not always a way to limit the choice of none.
Democracy is a lesser evil, which many people born into it fail to appreciate because their imagination does not render the greater evils realistically.
I do think that the Turing test is still the greatest test for strong AI, machines are still very far from passing it, and I feel that understanding human emotion should be a part of the general strategy of "understanding human things" on a level sufficient to pass a very long Turing test session:
* From a technology standpoint it's not clear that what we'd call human emotion requires a different approach than other "human things."
* From an application standpoint, a machine much dumber than an adult (as in totally can't pass the Turing test) but with developed emotional facilities is kinda scary, perhaps like an alien child ("human-like feelings" with undeveloped reasoning, and the reasoning is undeveloped in ways we're not familiar with - at least I'm conjecturing that this machine will not be able to pass "the human children Turing test" any more than the adult version.) It's not clear what good you can do with such a machine.
All of the above from a serious angle and without dwelling on the joy of sexprs like (Feels (Feels (Feels (Object)))).
Or you can use Chuck Moore's famous 500 lines of Forth to produce a chip for 180 nm that can't access DRAM and go on about everyone doing it wrong.
No, I meant to say that they simply obsoleted that part of their architecture when they added virtualization, because they couldn't virtualize it.
> Eg there was a brave attempt to parallelise the inner loop of bzip2 - which resists coarse parallelisation thanks to loop-carried dependencies - this way.
So you say you can do hardware-assisted message passing that can be virtualized and can speed up bzip2 by parallelizing? How few instructions per RPC call does it take for you to still be efficient vs today's software-based messaging? (This is getting fairly interesting and it should be particularly interesting to serious CPU vendors.)
Incidentally, the reason why chip companies are worth so much more than IP companies is that the cost and risk of making chips is much larger. IP and chip companies are both fabless, if the costs and risks were about the same, then I don't see why profits wouldn't be about the same.
Now it could be that in this instance, marketability, schedule and budget weren't a particularly big deal, and maybe the performance is so bad that this in itself made a lot of problems disappear. But I think it's likely that someone still sweated quite some to make it work. (TFA claims they were the first to implement this CPU in silicon, BTW - again, could be easy enough if they didn't care about performance at all, or if Imagination did all the work on the synthesis scripts and the backend or held their hand, but if they wanted high performance and had to optimize synthesis and placement themselves, that's serious work. TSMC won't do it for you, either - they want a GDS-II file, and I don't think they outsourced the actual chip design.)
BTW, from a brief glance at your comment history, most appear to have a strong anti-Chinese sentiment. I think that if you want to argue that the report is largely correct, it will be more interesting if you elaborate on that instead of talking about whatever I said in the grandparent comment.
As to software-based queues dying a fiery death - in what scenarios? As I said in a sister comment, I (think that I) know that things work out in computational parallelism scenarios where many tasks are mapped onto a thread pool, TBB-style, that is, I don't think the hardware overhead is ridiculously large in these systems. Where do things go badly? 100K lightweight threads communicating via channels, Go-style?
Incidentally, IMO shared-nothing is an inherently inefficient model for multiple actors cooperating to perform a single computation, and nothing done in hardware can fully eliminate the cost introduced by the model (and if something can be done is can be done by code analysis transforming the code into a more efficient shared memory model.) This is not to say that there's no value in such a system - far from it, just that it's a poor fit for something things which can only mapped onto it with some overhead that hardware cannot eliminate.
What will actually happen with protection mechanisms I don't know; certainly Unix-style mechanisms are used to ever more places with say HSA's idea of accelerators and CPUs being aware of the same virtual memory maps. Compatibility is a very strong force here. On the other hand there's a lot of stuff happening with the memory protection disabled as you described. My predictions here are going to be less educated than many others', to be honest, because I deal with embedded systems whereas most of the exciting stuff here happens in servers, I'd guess (but I can tell that in automotive embedded systems of all places not only do Unix-style processes gain traction right now but so do hypervisors with actual multiple OSes, some of them POSIXy, sharing chips. So this is a data point showing a trend in the "more of the same" direction.)
FOR counter_reg, init_val_reg, bound_reg, step_reg, END_OF_LOOP
...
END_OF_LOOP:
...instead of: MOVE counter_reg, init_val_reg
START_OF_LOOP:
...
ADD counter_reg, step
BRANCH_LESS_THAN counter_reg, bound_reg, START_OF_LOOP
I was saying that this obviously not-so-good idea is not much different in spirit from building hardware for quickly creating and applying lambda terms, which is what the Reduceron does. Lowering lambda calculus to simpler operations so that lambda expressions are not represented in a runtime data structure at all much of the time, the way GHC and other compilers approach the problem, is a better idea.At any rate, "not sure why anyone would prefer London with the post-EU laws" is very different from "they decided they don't want me because they're not in the EU (even though there might be an otherwise nicely sounding arrangement available for me)."
What about an EU citizen deciding to move to the US, Canada, Australia, Brazil or India? These countries were never in the EU. Did they therefore decide they don't need EU citizens? If not, why is the UK after it exits from the EU necessarily a less welcoming place for EU citizens than other non-EU countries?
Shared memory multithreading is fastest because explicitly communicating all of your tasks' inputs and outputs without any caching will transfer more data than using caches where several tasks can read the same thing from the same place. Cache coherence is not only built on shared nothing-message-passing under the hood, it's built on caches. If you cache your messages/accesses/whatever somewhere, you'll have coherence problems, if you don't, you'll have efficiency problems.
Just because you have a language with a native primitive doesn't mean this language doesn't throw efficiency out the window by building things around this primitive. Say, plenty of languages have cons cells for all the wrong reasons (I think Clojure is the one language that escaped this in its lineage) and still cons sells are fundamentally inefficient no matter what you do in hardware, this part I elaborated on in TFA. Just like having a language with a primitive solving the halting problem doesn't solve the halting problem, you can't have a language with arbitrary primitives and a magic machine making the sw+hw system as efficient as any alternative.