pl efforts in upmarc
play

PL efforts in UPMARC an excerpt Tobias Wrigstad assistant - PowerPoint PPT Presentation

PL efforts in UPMARC an excerpt Tobias Wrigstad assistant professor onsdag den 11 maj 2011 Short Bio 06 PhD @ Royal Inst. of Technology, Sweden 07 Postdoc @ Purdue University, IN US 09 Associate prof @ Stockholm University 10


  1. PL efforts in UPMARC an excerpt Tobias Wrigstad assistant professor onsdag den 11 maj 2011

  2. Short Bio ’06 PhD @ Royal Inst. of Technology, Sweden ’07 Postdoc @ Purdue University, IN US ’09 Associate prof @ Stockholm University ’10 Assistant prof @ Uppsala University Aliasing in OOPLs (Pluggable) type systems Concurrent and parallel programming Dynamic programming languages onsdag den 11 maj 2011

  3. Spaghetti Code (~1968) onsdag den 11 maj 2011

  4. Spaghetti Data (present day) Races etc. Thread B Object Thread A Reference Visualisation of a heap from an OO program onsdag den 11 maj 2011

  5. Capsule Summary Spaghetti data + ubiquitous parallelism is a no-go — However, sharing state is key to performance! Our goal • Bring order to object-oriented data Our approach • Enable programmers to express sharing, locality, etc. • Use this information for checking and parallelisation (correctness) (e ffi cency) • Avoid problems (races, compositionality, etc.) by design onsdag den 11 maj 2011

  6. P 1 r s o t p o Thread-Local Heaps in Loci [ECOOP 2009] s a l + Shared accesses identified Races + Fine grained etc. + Pluggable + Low syntactic overhead … – Shared heap still a mess – Locks are not compositional Thread 1 Thread 2 Thread n Shared heap http://loci.java.net/ onsdag den 11 maj 2011

  7. P 2 r n o d p Active Object 2 o s Isolated Active a l Objects in Joelle [TOOLS 2008] + Compositional + No races + Low syntactic overhead – Coarse grained Immutable – No internal (no races) (no access) parallelism Active Object n Transferrable (no races) Active Object 1 onsdag den 11 maj 2011

  8. The Way Forward: Our Core Design + = Loci Joelle Joelle 2.0 onsdag den 11 maj 2011

  9. Ultimate Goals • Replace Java as the safe mainstream programming language Simple & gradual system, legacy, do not ignore the programming craft… • Deal with parallelism and concurrency better than Erlang E ffi ciency, locality, migration, high-level errors only… • Without compromising with object-orientation Support shared mutable state as e ff ortlessly as possible, encapsulation… onsdag den 11 maj 2011

  10. Current Goals • Avoid races, deadlocks, subtle memory model considerations • Better utilise shared resources (caches, shared bu ff ers, etc.) • Implicit parallelism where possible • Facilitate manual and automated reasoning • Language a superset of Java (or C++) Interested industry: Ericsson, ABB, IBM, Oracle (no real committment from anyone yet) Impact: OOPSLA 2010, ECOOP 2009, APLAS 2008, TOOLS 2008 ( Community: sc IWACO ’07–11; is UPMARC summer school ’10; pc FTfJP ’11, IWACO ’11, OOPSLA ’11, ECOOP ’12 je LNCS state-of-the-art aliasing in OOP Journal) onsdag den 11 maj 2011

  11. The Way Forward: Our Core Design + = Loci Joelle Joelle 2.0 Ownership types E ff ect systems Alias Analysis Inference onsdag den 11 maj 2011

  12. N e w ! Fine-grained parallelism inside active objects Use run-time adaptation techniques for performance Active object model is safe by design onsdag den 11 maj 2011

  13. N e w Static ! Bring structure to active Dynamic object subheap Safe sharing Preserve isolation Minimal clone operations Safe transfer Ownership types E ff ect systems Alias Analysis Inference onsdag den 11 maj 2011

  14. N e w Static ! Allow implicit parallelism Dynamic Guarantee race freedom under sharing Scheduling to maximise cache utilisation Fine- grained sharing Prefetching from message queue analysis Ownership types E ff ect systems Alias Analysis Inference onsdag den 11 maj 2011

  15. N e w Static ! Dynamic Improve e ff ect analysis result Compile fast-path and avoid synch to main memory Simplify coding with shared and unshared values Ownership types E ff ect systems Alias Analysis Inference onsdag den 11 maj 2011

  16. N e w Static ! Dynamic Lighten annotation burden Facilitate reuse Facilitate refactoring Ownership types E ff ect systems Alias Analysis Inference onsdag den 11 maj 2011

  17. Immediate UPMARC Synergy Programs in our system exhibit strong properties that facilitate program analysis • e.g., alias freedom, locality information, e ff ects of expressions • Previous work on verification @ UU could capitalise on this Parosh Abdulla Migrating legacy code to active objects • Can it be done automatically? • Inference in isolated enclosures — a smaller problem? • Maybe annotations can be partially inferred? Jonathan Cederberg Ownership and e ff ect information used for scheduling, resource management Wang Yi David Black-Scha ff er onsdag den 11 maj 2011

  18. Obstacles & Some Open Questions Need more ”warm bodies” (PhD students & PostDocs) Need representative legacy code (tentative from ABB) What are the e ff ects on common idioms and programming practises? Inference vs. programmer annotations—what is a good balance? • Inference is flexible but brittle • Annotations are stable but stale Will a single active object concept fit all circumstances? How to feedback that we cannot run something in parallel to the programmer? … onsdag den 11 maj 2011

  19. Our Unique Footprint: Related Work (Excerpt) Flexible yet powerful aliasing constraints; ownership-based e ff ects; Proactive, Scoop, Akka, etc. — active object systems for Java, 2D rep splitting Ei ff el, Scala; no isolation guarantees, not for parallel programs Active-object based DPJ — share some ideas but for threads and task-based parallelism only; extreme programming overhead Combination of anno- tations and inference; full X10 — captures where a computation takes place in the ”place static checking type” Both coarse-grain (AO) CoBoxes, JCoBoxes — similar ideas for encapsulation but and fine-grain (task, etc.) completely dynamic parallelism FlexoTask and StreamFlex — shares ideas for encapsulation but Run-time reliance on for stream programming ownership and e ff ects for A wealth of systems for ownership types, linearity, e ff ect scheduling and implicit systems (Clarke, Boyland, Noble, Vitek, Aldrich, Rinard, Liskov, …) parallelism Ownership types inference work by Milanova et al., Ma & Foster Consider programming surroundings & legacy Jade — implicit parallelism; Futures; Erlang; … onsdag den 11 maj 2011

  20. Thank you! Questions? onsdag den 11 maj 2011

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