Hossein Bastan Isfahan University of Technology 1/23.

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

Threads, SMP, and Microkernels
Parallel Processing with OpenMP
Introductions to Parallel Programming Using OpenMP
Class CS 775/875, Spring 2011 Amit H. Kumar, OCCS Old Dominion University.
A Dynamic World, what can Grids do for Multi-Core computing? Daniel Goodman, Anne Trefethen and Douglas Creager
Taxanomy of parallel machines. Taxonomy of parallel machines Memory – Shared mem. – Distributed mem. Control – SIMD – MIMD.
Types of Parallel Computers
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
Introduction CS 524 – High-Performance Computing.
Graph Analysis with High Performance Computing by Bruce Hendrickson and Jonathan W. Berry Sandria National Laboratories Published in the March/April 2008.
Tuesday, September 12, 2006 Nothing is impossible for people who don't have to do it themselves. - Weiler.
Parallel Computing Overview CS 524 – High-Performance Computing.
CS 240A: Models of parallel programming: Machines, languages, and complexity measures.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Scripting Languages For Virtual Worlds. Outline Necessary Features Classes, Prototypes, and Mixins Static vs. Dynamic Typing Concurrency Versioning Distribution.
CISC 879 : Software Support for Multicore Architectures John Cavazos Dept of Computer & Information Sciences University of Delaware
High Performance Communication using MPJ Express 1 Presented by Jawad Manzoor National University of Sciences and Technology, Pakistan 29 June 2015.
 Parallel Computer Architecture Taylor Hearn, Fabrice Bokanya, Beenish Zafar, Mathew Simon, Tong Chen.
Contemporary Languages in Parallel Computing Raymond Hummel.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
What is Concurrent Programming? Maram Bani Younes.
OpenCL Introduction A TECHNICAL REVIEW LU OCT
KUAS.EE Parallel Computing at a Glance. KUAS.EE History Parallel Computing.
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
CC02 – Parallel Programming Using OpenMP 1 of 25 PhUSE 2011 Aniruddha Deshmukh Cytel Inc.
1 Programming Multicore Processors Aamir Shafi High Performance Computing Lab
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
CS240 Computer Science II Introduction to Unix Based on “UNIX for Programmers and Users” by G.Class and K. Ables.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Center for Programming Models for Scalable Parallel Computing: Project Meeting Report Libraries, Languages, and Execution Models for Terascale Applications.
Chapter 4 Threads, SMP, and Microkernels Patricia Roy Manatee Community College, Venice, FL ©2008, Prentice Hall Operating Systems: Internals and Design.
© 2010 IBM Corporation Enabling Concurrent Multithreaded MPI Communication on Multicore Petascale Systems Gabor Dozsa 1, Sameer Kumar 1, Pavan Balaji 2,
Compilation Technology SCINET compiler workshop | February 17-18, 2009 © 2009 IBM Corporation Software Group Coarray: a parallel extension to Fortran Jim.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
OpenMP – Introduction* *UHEM yaz çalıştayı notlarından derlenmiştir. (uhem.itu.edu.tr)
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Coordination Languages and their Significance Paper by: David Gelernter Nicholas Carriero Presented by: Varuna Iyengar.
Scott Ferguson Section 1
© 2009 IBM Corporation Parallel Programming with X10/APGAS IBM UPC and X10 teams  Through languages –Asynchronous Co-Array Fortran –extension of CAF with.
1 Qualifying ExamWei Chen Unified Parallel C (UPC) and the Berkeley UPC Compiler Wei Chen the Berkeley UPC Group 3/11/07.
P ARALLEL P ROCESSING F INAL P RESENTATION CILK Eliran Ben Moshe Neriya Cohen.
1 "Workshop 31: Developing a Hands-on Undergraduate Parallel Programming Course with Pattern Programming SIGCSE The 44 th ACM Technical Symposium.
CS- 492 : Distributed system & Parallel Processing Lecture 7: Sun: 15/5/1435 Foundations of designing parallel algorithms and shared memory models Lecturer/
Contemporary Languages in Parallel Computing Raymond Hummel.
OpenMP for Networks of SMPs Y. Charlie Hu, Honghui Lu, Alan L. Cox, Willy Zwaenepoel ECE1747 – Parallel Programming Vicky Tsang.
SMP Basics KeyStone Training Multicore Applications Literature Number: SPRPxxx 1.
Background Computer System Architectures Computer System Software.
COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn University
1 Chapter 5: Threads Overview Multithreading Models & Issues Read Chapter 5 pages
Computer System Structures
Chapter 4: Multithreaded Programming
Chapter 4: Threads.
Introduction to Parallel Processing
SparkBWA: Speeding Up the Alignment of High-Throughput DNA Sequencing Data - Aditi Thuse.
For Massively Parallel Computation The Chaotic State of the Art
3- Parallel Programming Models
Team 1 Aakanksha Gupta, Solomon Walker, Guanghong Wang
Chapter 3: Windows7 Part 1.
Threads, SMP, and Microkernels
MPJ: A Java-based Parallel Computing System
Chapter 4: Threads & Concurrency
WG4: Language Integration & Tools
Presentation transcript:

Hossein Bastan Isfahan University of Technology 1/23

 Parallel programming tools ◦ Shared memory programming tools  OpenMP  POSIX Threads ◦ Distributed memory programming tools  MPI ◦ Parallel Programming Languages  Linda  Erlang  Unified parallel C  Charm++  OpenCL 2/23

OpenMP POSIX Thread 3/23

4/23

 an API  C, C++, and Fortran  OpenMP is ◦ managed by the nonprofit technology consortium OpenMP Architecture Review Board ( OpenMP ARB) ◦ AMD, IBM, Intel, Cray, HP, Fujitsu, Nvidia, NEC, Microsoft, Texas Instruments, Oracle Corporation, and more  OpenMP uses a portable, scalable model ◦ simple and flexible interface ◦ standard desktop computer to the supercomputer 5/23

6/23

7/23

 POSIX standard for threads  The standard, POSIX.1c, Threads extensions (IEEE Std c-1995)  an API for creating and manipulating threads.  Pthreads defines a set of C programming language types, functions and constants  implemented with a pthread.h  There are around 100 Pthreads procedures, all prefixed "pthread_" 8/23

Message Passing Interface (MPI) 9/23

 a standardized API typically used for parallel and/or distributed computing  researchers from academia and industry  MPI's goals ◦ high performance ◦ Scalability ◦ portability  MPI standard is comprised of 2 documents ◦ MPI-1 published in 1994 ◦ MPI-2 published in /23

 MPI imlementation ◦ MPICH ◦ MPICH-G2 ◦ OpenMPI ◦ MPI.net, Pure MPI.net ◦ MPJ Express ◦ MatlabMPI, MPITB ◦ MPI for Python 11/23

Linda ErLang Unified Parallel C (UPC) Charm++ OpenCL Cilk 12/23

 a model of coordination and communication among several parallel processes operating upon objects stored in and retrieved from shared, virtual, associative memory  developed by David Gelernter and Nicholas Carriero at Yale University  implemented as a “coordination language” 13/23

 Tuple  Tuple space  Linda model requires four operations that individual workers perform on the tuples and the tuplespace ◦ In ◦ Rd ◦ out ◦ eval 14/23

 a general-purpose concurrent, garbage-collected programming language and runtime system  first version was developed by Joe Armstrong in 1986 ◦ a proprietary language within Ericsson ◦ released as open source in 1998 ◦ In 2006, native symmetric multiprocessing support was added to the runtime system and virtual machine 15/23

 designed by Ericsson to support distributed, fault- tolerant, soft-real-time, non-stop applications  Erlang provides language-level features  all concurrency is explicit in Erlang, processes communicate using message passing instead of shared variables, which removes the need for locks 16/23

 an extension of the C programming language designed for high-performance computing on large-scale parallel machines  The programmer is presented with a single shared, partitioned address space 17/23

 The programmer is presented ◦ a single shared ◦ partitioned address space ◦ variables may be directly read and written by any processor ◦ each variable is physically associated with a single processor 18/23

 a parallel object-oriented programming language based on C++ and developed in the Parallel Programming Laboratory at the University of Illinois  Programs written in Charm++ ◦ decomposed into a number of cooperating message-driven objects called chares  designed with the goal of ◦ enhancing programmer productivity ◦ good performance on a wide variety of underlying hardware platforms 19/23

 a framework for writing programs that execute across heterogeneous platforms  OpenCL includes ◦ a language (based on C99) for writing kernels ◦ APIs that are used to define and then control the platforms  was initially developed by Apple Inc  refined into an initial proposal in collaboration with technical teams at AMD, IBM, Intel, and Nvidia  an open standard maintained by the non-profit technology consortium Khronos Group 20/23

 general-purpose programming language designed for multithreaded parallel computing  has been developed since 1994 at the MIT Laboratory for Computer Science  based on ANSI C  July 2009, Intel Corporation acquired Cilk Arts, the Cilk++ technology and the Cilk trademark  In 2010, Intel released a commercial implementation in its compilers combined with some data parallel constructs with the name Intel Cilk Plus 21/23

◦ Shared memory programming tools  OpenMP  POSIX Threads ◦ Distributed memory programming tools  MPI ◦ Parallel Programming Languages  Linda  Erlang  Unified parallel C  Charm++  OpenCL 22/23

          23/23