Live data from Hacker News

David Patterson Says It’s Time for New Computer Architectures and Languages

spectrum.ieee.org

161–170 of 204 posts

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#161
post #120

I have had this fun idea for an odd architecture floating in my head for ages. Lots of small processors with local work ram, cached ram, shared ram. Each processor has a numerical id, communicates with each processor with one bit different in the id by optical link plus an additional link with to the processor complimenting all bits. They send messages and fill their caches from the pool of shared ram. Place even par…

> This is the sort of thing that would also probably need a new language.

I have a good idea for a name of that new language: occam ;)

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#162

Earlier quoted context omitted.

Does anyone else have real-world Itanium experience? We've got a couple 5+ year old HP Integrity servers running OpenVMS on Itanium at work that we use to batch process large ASCII vendor files in an ETL process written in C. They certainly don't embarrass themselves. We'll be connecting them to a new Pure Storage SAN in a few months and the IT guys are really excited to see what happens to performance. I take the sa…

At my previous job we used itanium servers for the secure64 dns platform[1]. It performed well, the logic behind itanium is security not performance (according to secure64) but performance was never an issue. I do know the hardware support for rsa did give nice performance for dnssec signing. [1] https://secure64.com/dns-products/secure64-platforms/secure-...

The logic behind Itanium was mostly to have a 64-bit architecture that was specific to Intel without any cross-licensing to other vendors like AMD. And which would also replace proprietary RISC flavors like PA-RISC.

It did also have a fair bit of security acceleration built-in. As I recall, one of the principals behind Secure64 was one of the HP leads associated with the original IA64 announcement. Secure64 pushed Itanium for security applications when it was becoming clear that it was never going to be a mainstream 64-bit architecture.

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#163

How about instead of inventing new languages we just pick a couple and tell people that if care at all about performance not to use the rest. I would start by throwing away all the interpreted/GC'ed languages because even after decades of massive effort they are frequently lucky if they even manage to keep up with unoptimized C.. But that really isn't the problem, the problem is that they cannot be debugged for perfo…

"unoptimized C" can easily take 10x as much effort to write as heavily optimized python/Java/..., and has a much higher defect rate. Make it work, then make it right, then make it fast; people working in C rarely get past step 1.

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#165

Are there languages that have first-class support for representing/optimizing memory hierarchy characteristics? Optimizing C compilers, for example, may have extensions to force specific alignments: https://software.intel.com/en-us/articles/coding-for-perform... But I'm not aware of languages where e.g. declaring alignments is part of the base language. Awareness of L1, L2, L3 cache characteristics, plus NUMA nodes,…

There's interesting work being done by the guys working on the Unity game engine. Their new data-oriented programming model (still based on C#) promises efficient packing of objects into arrays of properties which (supposedly) results in massive performance gains thanks to sequential processing. They also have a custom compiler optimized for this scenario. However, AFAIK there are no plans to provide this separately from the engine (on the other hand, they've been separating out a lot of functionality into optional modules so you can go really light).

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#166
post #114
post #76

Earlier quoted context omitted.

> We may continue to find tricks such as quantum computing Quantum computing does not magically speed up general purpose computing tasks. We only know a handful of algorithms where quantum computers provide algorithmic complexity reductions and even that that does not mean they necessarily calculate fast in terms of IPC, they just calculate previously intractable problems in reasonable timescales. TL;DR: you won't po…

Totally glib reply, but here it is. If I can represent screen state as quibits, and I have a whole lot of quibits, I can represent a game as a little list of player inputs. Set up an enormous superposition, and as players hit keys, collapse the next frame. The imaginary hardware could be super quick! TL;DR: yeah probably, but you never know.

[deleted]

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#167
post #131

Earlier quoted context omitted.

Part of the reason most languages obscure this is because it's a moving target. If a language let you say, "this chunk of code here should run in 7 cycles", what happens when a new optimization finds a way to reduce that, or a new architecture comes up where that operation gets slower but lots of others get faster? I'm not arguing against your desire, just explaining that it's not unreasonable that we're where we are…

This could only ever be doable with extremely simple architectures anyway. Off the top of my head, add in just one of branch prediction, micro-op fusion, out-of-order execution, pipelines and pipeline stalls, or cache misses, and this becomes impossible. Of course, this assumes you even know which CPU you are targeting its specific instruction latencies. That's already an extremely niche set of processors. Further, t…

To add to that there's also the difference between cycles spent executing an instruction and how many of those instructions can be executed at once in the pipeline. So there is a difference between executing a set of instructions once versus executing them millions of times.

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#168
post #156
post #3

What's happening with that Mill Arch? Is it moving forward outside of them publishing papers? It seemed promising.

I believe end of next month there will be another Talk where the Mill designers will talk about Spectre and Meltdown attacks in relation to Mill (though the spoiler would be that the talk mentions the point "and why Mill is immune" so I guess it'll be a very fun talk). I do hope a lot that Mill will succeed, it's an incredibly promising architecture.

I do hope they just put paper to silicon and implement the damn thing, even if they just distribute simple RaspberryPi type boards with a slow version on it.

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#169
post #136
post #66

Here's something that seems shockingly under-explored to me: languages that incorporate relational data structures natively. We have SQL of course, but SQL is not a general purpose language and is (intentionally) often not Turing-complete. I'm imagining something like Go, Ruby, JavaScript, or Rust with native tables, queries, and other SQL-ish relational data structures. The long term goal would be to kill the age-ol…

Data frames in R give you the relational model with a Turing complete language. I think of it as a better SQL, at least for analytics (as opposed to transaction processing). Besides its data structures, R is surprisingly similar to JavaScript -- it's has Scheme-like semantics but C-like syntax. For certain problems, it's a pleasure to program in. You don't have to go through "objects" to get to your tables; you just…

Yes, but I'm thinking of a general purpose language like Go that would be used to implement normal things. R is specialized for data analysis.

Most "normal things" have designs that are deeply inefficient and compromised by bad under-powered data models.

Re: David Patterson Says It’s Time for New Computer Architectures and Languages

#170
post #24

Earlier quoted context omitted.

Sequoia is what I thought of at first (mentioned in sibling comment), but Scala has something related: http://scala-miniboxing.org/ldl/ Basically you can write an algorithm that is independent of the exact data layout, and then the compiler has some flexibility to work with. I haven't worked with it all, just read the paper awhile ago. But I'm pretty sure they did something with SoA - AoS transformation (structure of…

One of the differentiating features of Jonathan Blow's language, Jai, is supposed to be AoS/SoA transformation. I wasn't aware other languages were experimenting with this as well. I thought it was something fairly specific to game programming, but I guess it shouldn't be surprising that other performance sensitive domains might also find it useful.

That was true long ago when he demo'd such a feature, but seems to have since disappeared from the language. Jon claims there's "something better" that replaces it, a mysterious yet-to-be-revealed feature.
Post reply on HN