Live data from Hacker News

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

spectrum.ieee.org

101–110 of 204 posts

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

#101
post #94

It seems like hardware is moving away from RISC and even CISC architectures in favor of lots of different types of silicon for specialized applications (GPU, machine learning, vision, DSP, hashing, encryption, SIMD). It makes sense from a hardware perspective but it seems software development is not keeping pace. General purpose languages have trouble targeting this kind of hardware.

This sounds good, as a person who specializes in domain specific languages. Maybe we'll see higher demand and corresponding salary increases...

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

#102
post #37

Earlier quoted context omitted.

I generally agree: it's about weighing trade-offs, and calling software companies "lazy" is perhaps an oversimplification. However, I do believe the speed of light and size of atoms puts an upper limit on the degree you can keep throwing hardware at the problem. We may continue to find tricks such as quantum computing, but I suspect it will get ever tougher. There's a theoretical limit to how small you squeeze data a…

Software companies are lazy in exactly the same way that the entire rest of the economy is lazy. Companies in every industry try to cut costs as much as they can.

That's only half of it. Users choose software, and that includes developers when choosing programming languages / OSes / servers. We are "lazy" too.

If you really cared about security without regard to any other property, you would probably be using DJB's software to serve your website and such.

But you probably don't, because it doesn't have the features you want and you might not want to spend the time figuring out how to set it up.

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

#103
post #76
post #37

Earlier quoted context omitted.

I generally agree: it's about weighing trade-offs, and calling software companies "lazy" is perhaps an oversimplification. However, I do believe the speed of light and size of atoms puts an upper limit on the degree you can keep throwing hardware at the problem. We may continue to find tricks such as quantum computing, but I suspect it will get ever tougher. There's a theoretical limit to how small you squeeze data a…

> 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…

Some have suggested that certain common algorithms (or needs) can be rewritten into the types QC are good at. I'm not an expert so cannot confirm such. It may await new algorithm discoveries to answer anyhow.

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

#105

Earlier quoted context omitted.

Assembly typically requires you to declare your own alignments. There are some higher-level assemblers, with macros and things, but you're right, there's rarely an abstract language offering low-level memory specification. I also dislike the tendency to only expose the abstract view, although I think that trend is due to the difficulties involved in designing a language and compiler whose job is to output code for mu…

probably a dumb question but if you exposed the low level memory manipulation wouldn't you just end up with something like assembly?

I don't think it's a dumb question. And I think you're right: the closer you get to the way the CPU you're targeting likes its memory optimally managed, you're basically heading towards assembly.

I have notions that there can be something 'between' assembly and, for instance, C, but that's a daydream of mine without any details worked out yet.

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

#106

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,…

> But I'm not aware of languages where e.g. declaring alignments is part of the base language

It is part of the base language in zig: https://ziglang.org/documentation/master/#Alignment

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

#107

I want a language where you can express time and constraints on time within the language and the type system. I want to be able to guarantee program correctness, pre-calculate fine-grained energy usage, optimize for energy/power-saving mode usage, interface with asynchronous signals, and whatnot -- all with respect to program execution at the ISA-level within some hard real-time constraints. Compilers make optimizati…

It turns out that it is possible to optimally minimize the number of beta reductions in a lambda calculus program. See this excellent blog post: https://medium.com/@maiavictor/some-functions-may-have-negat...

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

#108
post #2

It's really hard. Remember the Itanium and the Cell. You can build it, but they may not come. GPUs, though. Those have turned out to be very successful, they can be parallelized as much as you're willing to pay for, and they're good for some non-graphics tasks. Much of machine learning is a simple repetitive computation running at low precision. Special purpose hardware can do that very well. So what's the next usefu…

Even SIMD, a feature of processors for over 20 years, is not handled well by compilers for automatic optimization. It seems like all code taking advantage of SIMD either drops into ASM, or uses a library from ARM/Intel to give descriptive C functions names for the underlying ASM.

I wonder why high level languages themselves don't add syntax support for wide-math instructions? I understand why loop unpacking is a little tricky, so why not let the programmer take care of it?

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

#109

It's way easier to push the limits on simple things. We need languages with fewer features and clear design, running on hardware with less exotic features.

I agree in general, and while I think that is totally completely possible in languages and operating environments, I'm not so sure it is in hardware, at least not without sacrificing a lot of performance. People respected by people I trust, who have a lot more domain knowledge than I do, don't seem to think it is.

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

#110
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…

Take a look at Datalog. It's a subset of Prolog optimized for use on top of structured data.
Post reply on HN