David Patterson Says It’s Time for New Computer Architectures and Languages
Are there languages that have first-class support for representing&#x2F;optimizing memory hierarchy characteristics? Optimizing C compilers, for example, may have extensions to force specific alignments:<p><a href="https:&#x2F;&#x2F;software.intel.com&#x2F;en-us&#x2F;articles&#x2F;coding-for-performance-data-alignment-and-structures" rel="nofollow">https:&#x2F;&#x2F;software.intel.com&#x2F;en-us&#x2F;articles&#x2F;coding-for-perform...</a><p>But I&#x27;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, is increasingly important to writing high performance code. Every language I&#x27;ve ever used exposes nothing of that hierarchy; it&#x27;s all just &quot;memory&quot;.<p>People who write performance-critical code are already aware of these issues and can measure&#x2F;hint&#x2F;optimize to work with the memory hierarchy in existing languages. But I feel like this could be better if we had languages that modeled these issues up front instead of only exposing the abstracted view. Maybe such languages already exist and I just haven&#x27;t encountered them yet.