An overview of… Luis Guerrero Plain Concepts

Slides:



Advertisements
Similar presentations
Ofir Aspis 1/2010 VS 2010 Targets High Level - IDE New Features VS 2010 As Editor and Platform Demo Editor features Extending.
Advertisements

Eiffel: Analysis, Design and Programming Bertrand Meyer (Nadia Polikarpova) Chair of Software Engineering.
Operating Systems Part III: Process Management (Process Synchronization)
RIA 1.0 AA We need…. We need….. BBCC RIA 1.0 We need….. DDEEFFGGHHIIJJKK We need….
MINJAE HWANG THAWAN KOOBURAT CS758 CLASS PROJECT FALL 2009 Extending Task-based Programming Model beyond Shared-memory Systems.
James Kolpack, InRAD LLC popcyclical.com. CodeStock is proudly partnered with: Send instant feedback on this session via Twitter: Send a direct message.
Chair of Software Engineering Concurrent Object-Oriented Programming Prof. Dr. Bertrand Meyer Lecture 10: Advanced Object-Oriented Mechanisms (based on.
Parallel Extensions to the.NET Framework Daniel Moth Microsoft
Building Localized Applications with Microsoft.NET Framework and Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corp.
Concurrency Important and difficult (Ada slides copied from Ed Schonberg)
NewsFlash!! Earth Simulator no longer #1. In slightly less earthshaking news… Homework #1 due date postponed to 10/11.
Microkernels How to build a dependable, modular and secure operating system?
Chapter 14 Multithreading Yingcai Xiao. Multithreading is a mechanism for performing two or more tasks concurrently.  In the managed world of the common.
Managed Extensibility Framework Georges
Intro to Threading CS221 – 4/20/09. What we’ll cover today Finish the DOTS program Introduction to threads and multi-threading.
Task Scheduling and Distribution System Saeed Mahameed, Hani Ayoub Electrical Engineering Department, Technion – Israel Institute of Technology
490dp Synchronous vs. Asynchronous Invocation Robert Grimm.
Virtual techdays INDIA │ 9-11 February 2011 Parallelism in.NET 4.0 Parag Paithankar │ Technology Advisor - Web, Microsoft India.
Computer Architecture II 1 Computer architecture II Programming: POSIX Threads OpenMP.
Parallel Programming in Visual Studio 2010 Sasha Goldshtein Senior Consultant, Sela Group
Threads 1 CS502 Spring 2006 Threads CS-502 Spring 2006.
Chapter 11 Operating Systems
User-Level Interprocess Communication for Shared Memory Multiprocessors Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented.
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Parallel Programming in.NET Kevin Luty.  History of Parallelism  Benefits of Parallel Programming and Designs  What to Consider  Defining Types of.
© 2011 Autodesk Single Job 1 Processor 1 Single Job 2 Single Job 3 Processor 2 Processor 3 Big Job 1 Big Job 2 Single Job 4 Processor 1 Single Job 5 Single.
Parallel Extensions A glimpse into the parallel universe By Eric De Carufel Microsoft.NET Solution Architect at Orckestra
Parallel Extensions A glimpse into the parallel universe Eric De Carufel
Advanced / Other Programming Models Sathish Vadhiyar.
Task Parallel Library (TPL)
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Chapter 3 Parallel Programming Models. Abstraction Machine Level – Looks at hardware, OS, buffers Architectural models – Looks at interconnection network,
About Me Microsoft MVP Intel Blogger TechEd Israel, TechEd Europe Expert C++ Book
1 Web Based Programming Section 8 James King 12 August 2003.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
Parallel Extensions A glimpse into the parallel universe By Eric De Carufel Microsoft.NET Solution Architect at Orckestra
Buddy Scheduling in Distributed Scientific Applications on SMT Processors Nikola Vouk December 20, 2004 In Fulfillment of Requirement for Master’s of Science.
Java Thread and Memory Model
Building State of the art presentation tiers Nauzad Kapadia
Module 8 Enhancing User Interface Responsiveness.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Visual Studio 2010 and.NET Framework 4 Training Workshop.
3/12/2013Computer Engg, IIT(BHU)1 OpenMP-1. OpenMP is a portable, multiprocessing API for shared memory computers OpenMP is not a “language” Instead,
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Jean-Claude Trachsel Senior Consultant, Trivadis AG The good news.
Systems Development Life Cycle
Enterprise Library 3.0 Memi Lavi Solution Architect Microsoft Consulting Services Guy Burstein Senior Consultant Advantech – Microsoft Division.
Parallel Computing Chapter 3 - Patterns R. HALVERSON MIDWESTERN STATE UNIVERSITY 1.
© Copyright SELA software & Education Labs Ltd Baruch Hirsch St.Bnei Brak Israel
Technologies For Creating Rich Internet Applications Presenter's name
1.1 Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 1: Introduction What Operating Systems Do √ Computer-System Organization.
Prepared by Oussama Jebbar
Building Custom Workflows
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
CS427 Multicore Architecture and Parallel Computing
Parallel Programming By J. H. Wang May 2, 2017.
Operating System (013022) Dr. H. Iwidat
Async or Parallel? No they aren’t the same thing!
Computer Engg, IIT(BHU)
C++ Forever: Interactive Applications in the Age of Manycore
AVG 24th 2015 ADVANCED c# - part 1.
Present by Andie Saizan, MCP
Multithreaded Programming
Selection Insertion and Merge
Threads and Concurrency
How and When to Use MEF: Too Much Is Never Enough
Virtual Memory: Policies (Part II)
Mattan Erez The University of Texas at Austin
Presentation transcript:

An overview of… Luis Guerrero Plain Concepts

 Finding exploitable parallelism  Organizing by Tasks  Organizing by Data  Organizing by Ordering

 Linear or recursive?  Task parallel  Divide and conquer  Enough task?  Too many – thrashing  Too few – under utilization  Dependencies between tasks  Scheduling work to tasks {}

 Work per task?  Small workloads  Variable workloads  Dependencies between tasks?  Removable  Separable  Read only or read/write {}

 Linear or recursive?  Geometric decomposition  Recursive data  Data “chunk” size?  Too big – under utilization  Too small – trashing  Chunk layout?  Cache and cache line size  False cache sharing {}

 Implementation Patterns  Fork / Join  Loop Parallel  Divide and Conquer  Producer / Consumer  Pipeline  Asynchronous Agents

 Task Parallel Library  Parallel LINQ (PLINQ)  Data Structures for Parallel Programming  Parallel Diagnostic Tools

 Data parallelism: The Parallel Class  Parallel  For  For<>  Foreach  Invoke

Parallel class

 Task is the minimum unit of work in TPL  Can be scheduled by request  2 Scheduled inside.NET box, ThreadPool y UI  Can have a result  Is observable  Can be continue with another task  Can be securely cancelled  Someone can wait for a completion

Creating Tasks

Task continuation

Exceptions and cancellation support

A Barrier is a synchronization primitive that enforces the stopping of execution between a number of threads or processes at a given point and prevents further execution until all threads or processors have reached the given point. A CountdownEvent is a synchronization primitive that enables ongoing tracking of a given workload in order to determine if processing of that workload is finished or not.

Barrier y CountdownEvent

PLINQ

An introduction to….

The Managed Extensibility Framework (MEF) is a new library in.NET 4 for building applications that can be incrementally extended.  For customers  For you and your team  Always there, always ready

The Managed Extensibility Framework (MEF) is a new library in the.NET Framework that enables greater reuse of applications and components. Using MEF,.NET applications can make the shift from being statically compiled to dynamically composed

In software engineering, extensibility is a systemic measure of the ability to extend a system and the level of effort required to implement the extension.

Software entities should be open for extension, but closed for modification.

KnownUnknown VS.

 An Application is built of parts.

 Export it.  Import it.  Compose it.

Widget1 [Export(typeof(UserControl))] public class Widget1 : UserControl { public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } Export

Widget1 [Export(typeof(UserControl))] public class Widget1 : UserControl { [Import] public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } Import

Widget1 [Export(typeof(UserControl))] public class Widget1 : UserControl { [Import(“HelloMEF.Message”)] public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } Import

Main Page [Export(typeof(UserControl))] public class MainPage: UserControl { [ImportMany(typeof(UserControl))] public IEnumerable { get;set; } ImportMany

PartIntializer: “Compose yourself” Main Page Compose public MainPage() { InitializeComponent(); PartInitializer.SatisfyImports(this); }

Widget1 [ExportMetadata(“Location”,Location.Top)] [Export(typeof(UserControl))] public class Widget1 : UserControl { public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } Export

Main Page [Export(typeof(UserControl))] public class MainPage: UserControl { [ImportMany(typeof(UserControl))] public IEnumerable { get;set; } ImportMany

Widget1 [ExportMetadata(“Location”,Location.Top)] [Export(typeof(UserControl))] public class Widget1 : UserControl { public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } Export

Widget1 [Widget(Location=Location.Top)] public class Widget1 : UserControl { public string Message { get{return(string) Button.Content;} set{Button.Content=value;} } Export

Container

Catalog

Container Catalog TypeCatalog AssemblyCatalog DirectoryCatalog AggregatingCatalog

Part B Export Export [Import(typeof(ILogger))] public ILogger Export Logger { get; set; }

Container Part A Part B [CompositionOptions(CreationPolicy=CreationPolicy.NonShared)] [CompositionOptions(CreationPolicy=CreationPolicy.Shared)] Shared Non-Shared On Export [Import(RequiredCreationPolicy=CreationPolicy.NonShared)] [Import(RequiredCreationPolicy=CreationPolicy.Shared)] On Import