programming models for future high performance computing
play

Programming Models for Future High Performance Computing Systems - PowerPoint PPT Presentation

Programming Models for Future High Performance Computing Systems John Gurd University of Manchester United Kingdom Darlingtons Dream (c.1985) functional programming languages plus program transformation Key Requirement To cope with


  1. Programming Models for Future High Performance Computing Systems John Gurd University of Manchester United Kingdom

  2. Darlington’s Dream (c.1985) functional programming languages plus program transformation

  3. Key Requirement To cope with continuing divergence of trends in: • applications (what we want to compute) • attitudes (how we expect, or are expected, to work) • systems (what is provided to help us)

  4. Application Trends • large-scale – much data – many operations • mixed models – multiple physics – numerical + symbolic data/info/knowledge • better science => more computing => performance

  5. Attitude Trends • maintainability => abstraction away from architecture • reusability – especially of design • predictability – error/accuracy – solution time

  6. System Trends • distribution – more than parallelism • heterogeneity – more than homogeneity • dynamic multi-computing – more than batch • scale – more

  7. Tool Trends • in the midst of this divergence, clearly tools play an important role, however . . . • tools are always playing “catch-up”

  8. What’s Wrong? • attention still on performance (not even on expressing the application well, let alone on maintainability and design reuse) • application-oriented approaches currently sacrifice performance for other things • performance-oriented approaches currently rely on explicit control of architectural features • performance-oriented tools lag behind architecture and application innovations

  9. Analysis • architecture trends are all in directions that make explicit programming more difficult, and tools cannot (be expected to) keep up; • hence it is becoming ever more essential to develop programs that are independent of (abstracted away from) hardware, and • to find ways to automate generation of high performance implementations from these

  10. Aspects (a way forward?) “Aspect Oriented Programming (AOP) is based on the idea that computer systems are better programmed by separately specifying the various concerns (properties or areas of interest) of a system and some description of their relationships, and then relying on mechanisms in the underlying AOP environment to weave or compose them together into a coherent program.” [CACM special issue, Oct.2001]

  11. Gurd’s Dream aspect (inc. performance) oriented code s plus automated, dynamic code “weaver”

  12. Legacy Code? given that legacy high performance software is bespoke to old architecture, surely the main question is whether we should even try to efficiently port it to new architectures – if we ever realised Gurd’s Dream, we would re-write at a higher level and let the weaver do the hard work in the interim, the usual pragmatic methods will have to be used: define interfaces; wrap up in the form of components; compose into new programs

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend