1 / 9

Platform Abstraction

Platform Abstraction. Group 3. Question. How to deal with different types hardware and software platforms? What detail to expose to the programmer? What detail to expose to the modeler? What are the layers in the abstraction?. Properties of hardware platform. 1. Number of cores

kolina
Download Presentation

Platform Abstraction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Platform Abstraction Group 3

  2. Question • How to deal with different types hardware and software platforms? • What detail to expose to the programmer? • What detail to expose to the modeler? • What are the layers in the abstraction?

  3. Properties of hardware platform 1. Number of cores 2. Type of cores (special purpose, GPU, CPU) 3. Memory bus (one, two, cross bars) 3! Cache lay-out (size, strategy, layers, …) 4. Memory architecture (NUMA, …) 5. Instruction set • (number indicates relevance to model) • Like to have: order relates to impact on accuracy • Priority list reflects how well it is understood

  4. Properties of HW/SW(?) platform • Software locks in threads/processes • Locking strategy and lock density • Hardware execution or software implementation • Is there an abstraction layer such as a JVM? • Synchronization strategy / atomic operations used by Java, .Net, C++ vs. C libraries

  5. Layers • Domain specific • Sometimes hardware features (e.g., branch prediction) are turned off to make performance predictable • All layers would profit from more collaboration. • E.g. Hyper-threaded cores (more on next slide) • Trade-off: complexity • Do we need standardization?

  6. Layers

  7. 8 HT cores on Intel 4-core • We assume we are programming an application • We assume parallel tasks scale with the number of processing resources • Same task on 8 cores, hurts? • What expectation of performance should we have? • No direct relation between core count and performance • Should the programmer know about the HW platform?

  8. Ctd. • We do not know how many ‘real’ cores we have? What is the core’s speed? … • Parallel behavior dependent on input • Monitoring and adaptation at runtime is necessary • There is a strong link between runtime adaptation and platform abstraction

  9. Open problems • Can collaboration between layers improve the situation? • What gain is possible by collaboration? • What are the properties of the layers? • How can we then abstract these properties? • Who builds the ‘low’ level models? • Can the lower level provide a contract to satisfy our need for performance information?

More Related