NUMA Programming; OpenCL
|
|
- Oscar Cooper
- 7 years ago
- Views:
Transcription
1 NUMA Programming; OpenCL Parallel and Distributed Computing Department of Computer Science and Engineering (DEI) Instituto Superior Técnico December 2, 2009 José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
2 Outline Cache Coherent NUMA Distributed Memory Multi-core Processors AMD Opteron IBM Cell Broadband Engine Programming ccnuma Systems OpenCL José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
3 Shared-Memory Systems also known as Uniform Memory Access (UMA) architecture Symmetric Shared-Memory Multiprocessors (SMP) P P P P Main Memory I / O José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
4 Distributed-Memory Systems or Non-Uniform Memory Access (NUMA) architecture Multicomputers P P Cache Cache Main Memory I / O Main Memory I / O Interconnection Network Main Memory I / O Main Memory I / O Cache Cache P P José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
5 Cache-Coherent NUMA Limitations of UMA / SMP: José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
6 Cache-Coherent NUMA Limitations of UMA / SMP: limited scalability (8 to 12 cores), due to contention in accessing memory! Limitations of Multicomputers: José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
7 Cache-Coherent NUMA Limitations of UMA / SMP: limited scalability (8 to 12 cores), due to contention in accessing memory! Limitations of Multicomputers: high communication overhead! José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
8 Cache-Coherent NUMA Limitations of UMA / SMP: limited scalability (8 to 12 cores), due to contention in accessing memory! Limitations of Multicomputers: high communication overhead! Intermediate solution: Cache-Coherent NUMA, or ccnuma Distributed Shared Memory, DSM, typically used in these systems. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
9 NUMA (DSM) Distributed shared memory can be implemented through a distributed virtual memory scheme: logic address space is divided into pages page table keeps state of each page (similar to a directory) not-present pages in remote memories shared page available in local memory, but more copies exist exclusive page only available in local memory access to one of these pages causes a page-fault page request sent to remote processor José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
10 Cache-Coherent NUMA P P Cache Cache Main Memory I / O Main Memory I / O Interconnection Network Main Memory I / O Main Memory I / O Cache Cache P P José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
11 Cache-Coherent NUMA P P Main Memory Cache Main Memory Cache I / O Main Memory Cache P Main Memory Cache P highly scalable memory bandwidth grows with computational power cache coherence possible due to shared global bus José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
12 AMD Opteron each AMD s Opteron chip has its own memory controller, allowing for easy system extension each node may be a single- or multi-core each node has L1 and L2 caches José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
13 IBM Cell Broadband Engine Heterogeneous multiprocessor: Power Processing Element (PPE): Master processor 8 Synergistic Processing Elements (SPE): fully functional RISC processors Local storage size per SPE: 256kB SPEs can only access own local memory José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
14 NUMA Aware Systems For optimal performance on NUMA systems: processes should be located on processors that are as close as possible to the memory that the process accesses allocate all memory for a process in the same processor OS with multi-queue scheduler with a runqueue per processor dispatch all child processes on the same processor through the life of the parent processes Linux and Windows OSs are NUMA ready. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
15 NUMA Aware Systems On Linux, numactl defines scheduling and/or memory placement policy: numactl --interleave=all bigdatabase run bigdatabase with its memory interleaved on all CPUs. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
16 NUMA Aware Systems On Linux, numactl defines scheduling and/or memory placement policy: numactl --interleave=all bigdatabase run bigdatabase with its memory interleaved on all CPUs. numactl --cpubind=0 --membind=0,1 process run process on node 0 with memory allocated on node 0 and 1. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
17 NUMA Aware Systems On Linux, numactl defines scheduling and/or memory placement policy: numactl --interleave=all bigdatabase run bigdatabase with its memory interleaved on all CPUs. numactl --cpubind=0 --membind=0,1 process run process on node 0 with memory allocated on node 0 and 1. numactl --show show the NUMA state José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
18 Programming NUMA Systems gcc provides a library with a simple programming interface of NUMA systems. #include <numa.h> gcc... -lnuma Defines policies for: thread binding memory allocation Before any other routine is used, int numa available() must be called. If it returns -1, all other functions in this library are undefined. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
19 Programming NUMA Systems Querying the system: int numa max node() returns the number of nodes in the systems long numa node size(int node, long *freep) returns the memory size of node node, and the current free memory in freep int numa distance(int node1, int node2) reports the distance in the machine topology between two nodes. The factors are a multiple of 10. It returns 0 when the distance cannot be determined. A node has distance 10 to itself. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
20 Programming NUMA Systems Querying the system: int numa max node() returns the number of nodes in the systems long numa node size(int node, long *freep) returns the memory size of node node, and the current free memory in freep int numa distance(int node1, int node2) reports the distance in the machine topology between two nodes. The factors are a multiple of 10. It returns 0 when the distance cannot be determined. A node has distance 10 to itself. Thread binding: int numa run on node(int node) binds the current thread and its children to node node (for a set of nodes, a nodemask can be specified) José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
21 Programming NUMA Systems Memory allocation: void *numa alloc onnode(size t size, int node) allocates size bytes of memory on a specific node node void *numa alloc local(size t size) allocates size bytes of memory on the local node void *numa alloc interleaved(size t size) allocates size bytes of memory page interleaved on all nodes void *numa alloc(size t size) allocates size bytes of memory with the current NUMA policy void numa free(void *start, size t size) frees size bytes of memory starting at start, allocated by the numa alloc * functions above José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
22 Programming NUMA Systems Memory allocation: void *numa alloc onnode(size t size, int node) allocates size bytes of memory on a specific node node void *numa alloc local(size t size) allocates size bytes of memory on the local node void *numa alloc interleaved(size t size) allocates size bytes of memory page interleaved on all nodes void *numa alloc(size t size) allocates size bytes of memory with the current NUMA policy void numa free(void *start, size t size) frees size bytes of memory starting at start, allocated by the numa alloc * functions above Node masks: Define a subset of nodes to which thread binding and memory allocation apply. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
23 Future Architecture Trends CPUs with increased number of SMP cores Examples: Intel Core 2 Quad; AMD Bulldozer; UltraSPARC T2; Tilera TILE64 José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
24 Future Architecture Trends CPUs with increased number of SMP cores Examples: Intel Core 2 Quad; AMD Bulldozer; UltraSPARC T2; Tilera TILE64 GPUs with increased number of SIMD cores Example: NVIDIA GTX 280 / GTX 260 José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
25 Future Architecture Trends CPUs with increased number of SMP cores Examples: Intel Core 2 Quad; AMD Bulldozer; UltraSPARC T2; Tilera TILE64 GPUs with increased number of SIMD cores Example: NVIDIA GTX 280 / GTX 260 CPU / GPU convergence Examples: Intel Larrabee; AMD / ATI Fusion Future trend is: many simple cores each core with vector (SIMD) capabilities (of growing length) José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
26 Future Architecture Trends José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
27 Parallel Programming Models OpenMP, PThreads for SMP systems libnuma for ccnuma systems CUDA for NVIDIA s GPUs; Stream SDK for ATI s GPUs Message Passing Interface, MPI This disparate set of models creates challenges of targeting algorithms to optimally exploit available computational power. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
28 Parallel Programming Models OpenMP, PThreads for SMP systems libnuma for ccnuma systems CUDA for NVIDIA s GPUs; Stream SDK for ATI s GPUs Message Passing Interface, MPI This disparate set of models creates challenges of targeting algorithms to optimally exploit available computational power. Parallel algorithms need to address combinations of these models! José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
29 OpenCL Many issues are common to all parallel programming models! OpenCL cross-platform language recently proposed for data (and task) parallel programming for both GPUs and CPUs. OpenCL was created by Apple in cooperation with others, and will be an open standard administered by the Khronos Group. José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
30 OpenCL Enable use of all computational resources in a system program GPUs, CPUs, Cell, DSP and other processors as peers support both data- and task- parallel compute models José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
31 OpenCL Enable use of all computational resources in a system program GPUs, CPUs, Cell, DSP and other processors as peers support both data- and task- parallel compute models Low-level, high-performance abstraction but with silicon-portability approachable - but primarily targeted at expert developers ecosystem foundation - no middleware or convenience functions José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
32 OpenCL Enable use of all computational resources in a system program GPUs, CPUs, Cell, DSP and other processors as peers support both data- and task- parallel compute models Low-level, high-performance abstraction but with silicon-portability approachable - but primarily targeted at expert developers ecosystem foundation - no middleware or convenience functions Efficient C-based parallel programming model familiar language for rapid adoption José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
33 OpenCL Enable use of all computational resources in a system program GPUs, CPUs, Cell, DSP and other processors as peers support both data- and task- parallel compute models Low-level, high-performance abstraction but with silicon-portability approachable - but primarily targeted at expert developers ecosystem foundation - no middleware or convenience functions Efficient C-based parallel programming model familiar language for rapid adoption Close integration with OpenGL and other 3D APIs for advanced visualization application and innovation José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
34 OpenCL Enable use of all computational resources in a system program GPUs, CPUs, Cell, DSP and other processors as peers support both data- and task- parallel compute models Low-level, high-performance abstraction but with silicon-portability approachable - but primarily targeted at expert developers ecosystem foundation - no middleware or convenience functions Efficient C-based parallel programming model familiar language for rapid adoption Close integration with OpenGL and other 3D APIs for advanced visualization application and innovation Enable embedded and handheld devices through an embedded profile in the specification José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
35 OpenCL Enable use of all computational resources in a system program GPUs, CPUs, Cell, DSP and other processors as peers support both data- and task- parallel compute models Low-level, high-performance abstraction but with silicon-portability approachable - but primarily targeted at expert developers ecosystem foundation - no middleware or convenience functions Efficient C-based parallel programming model familiar language for rapid adoption Close integration with OpenGL and other 3D APIs for advanced visualization application and innovation Enable embedded and handheld devices through an embedded profile in the specification Drive future hardware requirements e.g. floating point precision requirements José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
36 OpenCL Execution Model Kernel equivalent to a C function, executed on a Compute Device entry point, arguments, no return value Program collection of kernels and functions equivalent to a dynamically loaded library Command Queue enqueues kernel invocations and other OpenCL commands (like memory map/unmap/copy) enqueue in order execute in or out-of order (optionally) Event synchronize execution within and between queues in a context José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
37 OpenCL Execution Model - NDRange Data parallel execution: kernels executed across 1, 2 or 3 dimensional two-level index space called NDRange kernels are instanced as work-items ( threads ) that are grouped in work-groups no synchronization between work-groups, they are independent barriers for synchronizing work-items within work-group choose NDRange appropriate for your problem dimensions José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
38 OpenCL Language OpenCL language is based on C99 with limitations and extensions. Limitations: no recursion, no C99 headers, no bit fields, no function pointers, no variable length arrays, no byte addressable stores Extensions: vector types, work-items and work-groups, synchronization, address space qualifiers, image access functions, conversion and other built in functions José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
39 Simple Example Regular C void vector_add( float *a, float *b, float *c, size_t n) { size_t i; } for(i = 0; i < n; i++) c[i] = a[i] + b[i]; OpenCL kernel void vector_add( global float *a, global float *b, global float *c) { size_t i; } i = get_global_id(0); c[i] = a[i] + b[i]; José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
40 Review Cache Coherent NUMA Distributed Memory Multi-core Processors AMD Opteron IBM Cell Broadband Engine Programming ccnuma Systems OpenCL José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
41 Next Class distributed systems Google s map-reduce databases José Monteiro (DEI / IST) Parallel and Distributed Computing / 25
Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child
Introducing A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child Bio Tim Child 35 years experience of software development Formerly VP Oracle Corporation VP BEA Systems Inc.
More informationMulti-Threading Performance on Commodity Multi-Core Processors
Multi-Threading Performance on Commodity Multi-Core Processors Jie Chen and William Watson III Scientific Computing Group Jefferson Lab 12000 Jefferson Ave. Newport News, VA 23606 Organization Introduction
More informationParallel Programming Survey
Christian Terboven 02.09.2014 / Aachen, Germany Stand: 26.08.2014 Version 2.3 IT Center der RWTH Aachen University Agenda Overview: Processor Microarchitecture Shared-Memory
More informationGPUs for Scientific Computing
GPUs for Scientific Computing p. 1/16 GPUs for Scientific Computing Mike Giles mike.giles@maths.ox.ac.uk Oxford-Man Institute of Quantitative Finance Oxford University Mathematical Institute Oxford e-research
More informationLecture 23: Multiprocessors
Lecture 23: Multiprocessors Today s topics: RAID Multiprocessor taxonomy Snooping-based cache coherence protocol 1 RAID 0 and RAID 1 RAID 0 has no additional redundancy (misnomer) it uses an array of disks
More informationGPU Architectures. A CPU Perspective. Data Parallelism: What is it, and how to exploit it? Workload characteristics
GPU Architectures A CPU Perspective Derek Hower AMD Research 5/21/2013 Goals Data Parallelism: What is it, and how to exploit it? Workload characteristics Execution Models / GPU Architectures MIMD (SPMD),
More informationIntroduction GPU Hardware GPU Computing Today GPU Computing Example Outlook Summary. GPU Computing. Numerical Simulation - from Models to Software
GPU Computing Numerical Simulation - from Models to Software Andreas Barthels JASS 2009, Course 2, St. Petersburg, Russia Prof. Dr. Sergey Y. Slavyanov St. Petersburg State University Prof. Dr. Thomas
More informationSymmetric Multiprocessing
Multicore Computing A multi-core processor is a processing system composed of two or more independent cores. One can describe it as an integrated circuit to which two or more individual processors (called
More informationIntroduction to GPU hardware and to CUDA
Introduction to GPU hardware and to CUDA Philip Blakely Laboratory for Scientific Computing, University of Cambridge Philip Blakely (LSC) GPU introduction 1 / 37 Course outline Introduction to GPU hardware
More informationCOSCO 2015 Heterogeneous Computing Programming
COSCO 2015 Heterogeneous Computing Programming Michael Meyer, Shunsuke Ishikuro Supporters: Kazuaki Sasamoto, Ryunosuke Murakami July 24th, 2015 Heterogeneous Computing Programming 1. Overview 2. Methodology
More informationGPU System Architecture. Alan Gray EPCC The University of Edinburgh
GPU System Architecture EPCC The University of Edinburgh Outline Why do we want/need accelerators such as GPUs? GPU-CPU comparison Architectural reasons for GPU performance advantages GPU accelerated systems
More informationOverview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming
Overview Lecture 1: an introduction to CUDA Mike Giles mike.giles@maths.ox.ac.uk hardware view software view Oxford University Mathematical Institute Oxford e-research Centre Lecture 1 p. 1 Lecture 1 p.
More informationSYCL for OpenCL. Andrew Richards, CEO Codeplay & Chair SYCL Working group GDC, March 2014. Copyright Khronos Group 2014 - Page 1
SYCL for OpenCL Andrew Richards, CEO Codeplay & Chair SYCL Working group GDC, March 2014 Copyright Khronos Group 2014 - Page 1 Where is OpenCL today? OpenCL: supported by a very wide range of platforms
More informationParallel Algorithm Engineering
Parallel Algorithm Engineering Kenneth S. Bøgh PhD Fellow Based on slides by Darius Sidlauskas Outline Background Current multicore architectures UMA vs NUMA The openmp framework Examples Software crisis
More informationCourse materials. In addition to these slides, C++ API header files, a set of exercises, and solutions, the following are useful:
Course materials In addition to these slides, C++ API header files, a set of exercises, and solutions, the following are useful: OpenCL C 1.2 Reference Card OpenCL C++ 1.2 Reference Card These cards will
More informationIntroduction to Cloud Computing
Introduction to Cloud Computing Parallel Processing I 15 319, spring 2010 7 th Lecture, Feb 2 nd Majd F. Sakr Lecture Motivation Concurrency and why? Different flavors of parallel computing Get the basic
More informationDynamic Profiling and Load-balancing of N-body Computational Kernels on Heterogeneous Architectures
Dynamic Profiling and Load-balancing of N-body Computational Kernels on Heterogeneous Architectures A THESIS SUBMITTED TO THE UNIVERSITY OF MANCHESTER FOR THE DEGREE OF MASTER OF SCIENCE IN THE FACULTY
More informationIntroduction to GPU Programming Languages
CSC 391/691: GPU Programming Fall 2011 Introduction to GPU Programming Languages Copyright 2011 Samuel S. Cho http://www.umiacs.umd.edu/ research/gpu/facilities.html Maryland CPU/GPU Cluster Infrastructure
More informationOpenCL Optimization. San Jose 10/2/2009 Peng Wang, NVIDIA
OpenCL Optimization San Jose 10/2/2009 Peng Wang, NVIDIA Outline Overview The CUDA architecture Memory optimization Execution configuration optimization Instruction optimization Summary Overall Optimization
More informationNext Generation GPU Architecture Code-named Fermi
Next Generation GPU Architecture Code-named Fermi The Soul of a Supercomputer in the Body of a GPU Why is NVIDIA at Super Computing? Graphics is a throughput problem paint every pixel within frame time
More informationIntroduction to GPU Architecture
Introduction to GPU Architecture Ofer Rosenberg, PMTS SW, OpenCL Dev. Team AMD Based on From Shader Code to a Teraflop: How GPU Shader Cores Work, By Kayvon Fatahalian, Stanford University Content 1. Three
More informationBLM 413E - Parallel Programming Lecture 3
BLM 413E - Parallel Programming Lecture 3 FSMVU Bilgisayar Mühendisliği Öğr. Gör. Musa AYDIN 14.10.2015 2015-2016 M.A. 1 Parallel Programming Models Parallel Programming Models Overview There are several
More informationLecture 11: Multi-Core and GPU. Multithreading. Integration of multiple processor cores on a single chip.
Lecture 11: Multi-Core and GPU Multi-core computers Multithreading GPUs General Purpose GPUs Zebo Peng, IDA, LiTH 1 Multi-Core System Integration of multiple processor cores on a single chip. To provide
More informationOptimizing Code for Accelerators: The Long Road to High Performance
Optimizing Code for Accelerators: The Long Road to High Performance Hans Vandierendonck Mons GPU Day November 9 th, 2010 The Age of Accelerators 2 Accelerators in Real Life 3 Latency (ps/inst) Why Accelerators?
More informationOpenCL. Administrivia. From Monday. Patrick Cozzi University of Pennsylvania CIS 565 - Spring 2011. Assignment 5 Posted. Project
Administrivia OpenCL Patrick Cozzi University of Pennsylvania CIS 565 - Spring 2011 Assignment 5 Posted Due Friday, 03/25, at 11:59pm Project One page pitch due Sunday, 03/20, at 11:59pm 10 minute pitch
More information22S:295 Seminar in Applied Statistics High Performance Computing in Statistics
22S:295 Seminar in Applied Statistics High Performance Computing in Statistics Luke Tierney Department of Statistics & Actuarial Science University of Iowa August 30, 2007 Luke Tierney (U. of Iowa) HPC
More informationHigh Performance Computing
High Performance Computing Trey Breckenridge Computing Systems Manager Engineering Research Center Mississippi State University What is High Performance Computing? HPC is ill defined and context dependent.
More informationMitglied der Helmholtz-Gemeinschaft. OpenCL Basics. Parallel Computing on GPU and CPU. Willi Homberg. 23. März 2011
Mitglied der Helmholtz-Gemeinschaft OpenCL Basics Parallel Computing on GPU and CPU Willi Homberg Agenda Introduction OpenCL architecture Platform model Execution model Memory model Programming model Platform
More informationCross-Platform GP with Organic Vectory BV Project Services Consultancy Services Expertise Markets 3D Visualization Architecture/Design Computing Embedded Software GIS Finance George van Venrooij Organic
More informationHIGH PERFORMANCE CONSULTING COURSE OFFERINGS
Performance 1(6) HIGH PERFORMANCE CONSULTING COURSE OFFERINGS LEARN TO TAKE ADVANTAGE OF POWERFUL GPU BASED ACCELERATOR TECHNOLOGY TODAY 2006 2013 Nvidia GPUs Intel CPUs CONTENTS Acronyms and Terminology...
More informationultra fast SOM using CUDA
ultra fast SOM using CUDA SOM (Self-Organizing Map) is one of the most popular artificial neural network algorithms in the unsupervised learning category. Sijo Mathew Preetha Joy Sibi Rajendra Manoj A
More informationChapter 1 Computer System Overview
Operating Systems: Internals and Design Principles Chapter 1 Computer System Overview Eighth Edition By William Stallings Operating System Exploits the hardware resources of one or more processors Provides
More informationCUDA programming on NVIDIA GPUs
p. 1/21 on NVIDIA GPUs Mike Giles mike.giles@maths.ox.ac.uk Oxford University Mathematical Institute Oxford-Man Institute for Quantitative Finance Oxford eresearch Centre p. 2/21 Overview hardware view
More informationIntroduction to GP-GPUs. Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1
Introduction to GP-GPUs Advanced Computer Architectures, Cristina Silvano, Politecnico di Milano 1 GPU Architectures: How do we reach here? NVIDIA Fermi, 512 Processing Elements (PEs) 2 What Can It Do?
More informationOptimizing a 3D-FWT code in a cluster of CPUs+GPUs
Optimizing a 3D-FWT code in a cluster of CPUs+GPUs Gregorio Bernabé Javier Cuenca Domingo Giménez Universidad de Murcia Scientific Computing and Parallel Programming Group XXIX Simposium Nacional de la
More informationExperiences on using GPU accelerators for data analysis in ROOT/RooFit
Experiences on using GPU accelerators for data analysis in ROOT/RooFit Sverre Jarp, Alfio Lazzaro, Julien Leduc, Yngve Sneen Lindal, Andrzej Nowak European Organization for Nuclear Research (CERN), Geneva,
More informationMulti-core and Linux* Kernel
Multi-core and Linux* Kernel Suresh Siddha Intel Open Source Technology Center Abstract Semiconductor technological advances in the recent years have led to the inclusion of multiple CPU execution cores
More informationOverview on Modern Accelerators and Programming Paradigms Ivan Giro7o igiro7o@ictp.it
Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o igiro7o@ictp.it Informa(on & Communica(on Technology Sec(on (ICTS) Interna(onal Centre for Theore(cal Physics (ICTP) Mul(ple Socket
More informationHigh Performance Computing. Course Notes 2007-2008. HPC Fundamentals
High Performance Computing Course Notes 2007-2008 2008 HPC Fundamentals Introduction What is High Performance Computing (HPC)? Difficult to define - it s a moving target. Later 1980s, a supercomputer performs
More informationPrinciples and characteristics of distributed systems and environments
Principles and characteristics of distributed systems and environments Definition of a distributed system Distributed system is a collection of independent computers that appears to its users as a single
More informationIntroduction to Numerical General Purpose GPU Computing with NVIDIA CUDA. Part 1: Hardware design and programming model
Introduction to Numerical General Purpose GPU Computing with NVIDIA CUDA Part 1: Hardware design and programming model Amin Safi Faculty of Mathematics, TU dortmund January 22, 2016 Table of Contents Set
More informationScheduling Task Parallelism" on Multi-Socket Multicore Systems"
Scheduling Task Parallelism" on Multi-Socket Multicore Systems" Stephen Olivier, UNC Chapel Hill Allan Porterfield, RENCI Kyle Wheeler, Sandia National Labs Jan Prins, UNC Chapel Hill Outline" Introduction
More informationOpenCL Programming for the CUDA Architecture. Version 2.3
OpenCL Programming for the CUDA Architecture Version 2.3 8/31/2009 In general, there are multiple ways of implementing a given algorithm in OpenCL and these multiple implementations can have vastly different
More informationBinary search tree with SIMD bandwidth optimization using SSE
Binary search tree with SIMD bandwidth optimization using SSE Bowen Zhang, Xinwei Li 1.ABSTRACT In-memory tree structured index search is a fundamental database operation. Modern processors provide tremendous
More informationGraphics Cards and Graphics Processing Units. Ben Johnstone Russ Martin November 15, 2011
Graphics Cards and Graphics Processing Units Ben Johnstone Russ Martin November 15, 2011 Contents Graphics Processing Units (GPUs) Graphics Pipeline Architectures 8800-GTX200 Fermi Cayman Performance Analysis
More informationWrite a technical report Present your results Write a workshop/conference paper (optional) Could be a real system, simulation and/or theoretical
Identify a problem Review approaches to the problem Propose a novel approach to the problem Define, design, prototype an implementation to evaluate your approach Could be a real system, simulation and/or
More informationProgramming Techniques for Supercomputers: Multicore processors. There is no way back Modern multi-/manycore chips Basic Compute Node Architecture
Programming Techniques for Supercomputers: Multicore processors There is no way back Modern multi-/manycore chips Basic ompute Node Architecture SimultaneousMultiThreading (SMT) Prof. Dr. G. Wellein (a,b),
More informationData Centric Systems (DCS)
Data Centric Systems (DCS) Architecture and Solutions for High Performance Computing, Big Data and High Performance Analytics High Performance Computing with Data Centric Systems 1 Data Centric Systems
More informationPerformance Characteristics of Large SMP Machines
Performance Characteristics of Large SMP Machines Dirk Schmidl, Dieter an Mey, Matthias S. Müller schmidl@rz.rwth-aachen.de Rechen- und Kommunikationszentrum (RZ) Agenda Investigated Hardware Kernel Benchmark
More informationScalability evaluation of barrier algorithms for OpenMP
Scalability evaluation of barrier algorithms for OpenMP Ramachandra Nanjegowda, Oscar Hernandez, Barbara Chapman and Haoqiang H. Jin High Performance Computing and Tools Group (HPCTools) Computer Science
More informationMulti-core architectures. Jernej Barbic 15-213, Spring 2007 May 3, 2007
Multi-core architectures Jernej Barbic 15-213, Spring 2007 May 3, 2007 1 Single-core computer 2 Single-core CPU chip the single core 3 Multi-core architectures This lecture is about a new trend in computer
More informationStream Processing on GPUs Using Distributed Multimedia Middleware
Stream Processing on GPUs Using Distributed Multimedia Middleware Michael Repplinger 1,2, and Philipp Slusallek 1,2 1 Computer Graphics Lab, Saarland University, Saarbrücken, Germany 2 German Research
More informationLecture 1. Course Introduction
Lecture 1 Course Introduction Welcome to CSE 262! Your instructor is Scott B. Baden Office hours (week 1) Tues/Thurs 3.30 to 4.30 Room 3244 EBU3B 2010 Scott B. Baden / CSE 262 /Spring 2011 2 Content Our
More informationVers des mécanismes génériques de communication et une meilleure maîtrise des affinités dans les grappes de calculateurs hiérarchiques.
Vers des mécanismes génériques de communication et une meilleure maîtrise des affinités dans les grappes de calculateurs hiérarchiques Brice Goglin 15 avril 2014 Towards generic Communication Mechanisms
More informationSPEEDUP - optimization and porting of path integral MC Code to new computing architectures
SPEEDUP - optimization and porting of path integral MC Code to new computing architectures V. Slavnić, A. Balaž, D. Stojiljković, A. Belić, A. Bogojević Scientific Computing Laboratory, Institute of Physics
More informationVorlesung Rechnerarchitektur 2 Seite 178 DASH
Vorlesung Rechnerarchitektur 2 Seite 178 Architecture for Shared () The -architecture is a cache coherent, NUMA multiprocessor system, developed at CSL-Stanford by John Hennessy, Daniel Lenoski, Monica
More informationA GPU COMPUTING PLATFORM (SAGA) AND A CFD CODE ON GPU FOR AEROSPACE APPLICATIONS
A GPU COMPUTING PLATFORM (SAGA) AND A CFD CODE ON GPU FOR AEROSPACE APPLICATIONS SUDHAKARAN.G APCF, AERO, VSSC, ISRO 914712564742 g_suhakaran@vssc.gov.in THOMAS.C.BABU APCF, AERO, VSSC, ISRO 914712565833
More informationMixing Multi-Core CPUs and GPUs for Scientific Simulation Software
SUBMITTED TO IEEE TRANS. ON PARALLEL AND DISTRIBUTED SYSTEMS 1 Mixing Multi-Core CPUs and GPUs for Scientific Simulation Software K.A. Hawick, Member, IEEE, A. Leist, and D.P. Playne Abstract Recent technological
More informationOpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC
OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC Driving industry innovation The goal of the OpenPOWER Foundation is to create an open ecosystem, using the POWER Architecture to share expertise,
More informationCUDA Basics. Murphy Stein New York University
CUDA Basics Murphy Stein New York University Overview Device Architecture CUDA Programming Model Matrix Transpose in CUDA Further Reading What is CUDA? CUDA stands for: Compute Unified Device Architecture
More informationAccelerating sequential computer vision algorithms using OpenMP and OpenCL on commodity parallel hardware
Accelerating sequential computer vision algorithms using OpenMP and OpenCL on commodity parallel hardware 25 August 2014 Copyright 2001 2014 by NHL Hogeschool and Van de Loosdrecht Machine Vision BV All
More informationLecture 2 Parallel Programming Platforms
Lecture 2 Parallel Programming Platforms Flynn s Taxonomy In 1966, Michael Flynn classified systems according to numbers of instruction streams and the number of data stream. Data stream Single Multiple
More informationOptimizing Application Performance with CUDA Profiling Tools
Optimizing Application Performance with CUDA Profiling Tools Why Profile? Application Code GPU Compute-Intensive Functions Rest of Sequential CPU Code CPU 100 s of cores 10,000 s of threads Great memory
More information~ Greetings from WSU CAPPLab ~
~ Greetings from WSU CAPPLab ~ Multicore with SMT/GPGPU provides the ultimate performance; at WSU CAPPLab, we can help! Dr. Abu Asaduzzaman, Assistant Professor and Director Wichita State University (WSU)
More informationIntro to GPU computing. Spring 2015 Mark Silberstein, 048661, Technion 1
Intro to GPU computing Spring 2015 Mark Silberstein, 048661, Technion 1 Serial vs. parallel program One instruction at a time Multiple instructions in parallel Spring 2015 Mark Silberstein, 048661, Technion
More informationAccelerating Intensity Layer Based Pencil Filter Algorithm using CUDA
Accelerating Intensity Layer Based Pencil Filter Algorithm using CUDA Dissertation submitted in partial fulfillment of the requirements for the degree of Master of Technology, Computer Engineering by Amol
More informationAuto-Tunning of Data Communication on Heterogeneous Systems
1 Auto-Tunning of Data Communication on Heterogeneous Systems Marc Jordà 1, Ivan Tanasic 1, Javier Cabezas 1, Lluís Vilanova 1, Isaac Gelado 1, and Nacho Navarro 1, 2 1 Barcelona Supercomputing Center
More informationFast Implementations of AES on Various Platforms
Fast Implementations of AES on Various Platforms Joppe W. Bos 1 Dag Arne Osvik 1 Deian Stefan 2 1 EPFL IC IIF LACAL, Station 14, CH-1015 Lausanne, Switzerland {joppe.bos, dagarne.osvik}@epfl.ch 2 Dept.
More informationEECS 750: Advanced Operating Systems. 01/28 /2015 Heechul Yun
EECS 750: Advanced Operating Systems 01/28 /2015 Heechul Yun 1 Recap: Completely Fair Scheduler(CFS) Each task maintains its virtual time V i = E i 1 w i, where E is executed time, w is a weight Pick the
More informationCHAPTER 1 INTRODUCTION
1 CHAPTER 1 INTRODUCTION 1.1 MOTIVATION OF RESEARCH Multicore processors have two or more execution cores (processors) implemented on a single chip having their own set of execution and architectural recourses.
More informationChapter 2 Parallel Computer Architecture
Chapter 2 Parallel Computer Architecture The possibility for a parallel execution of computations strongly depends on the architecture of the execution platform. This chapter gives an overview of the general
More informationLBM BASED FLOW SIMULATION USING GPU COMPUTING PROCESSOR
LBM BASED FLOW SIMULATION USING GPU COMPUTING PROCESSOR Frédéric Kuznik, frederic.kuznik@insa lyon.fr 1 Framework Introduction Hardware architecture CUDA overview Implementation details A simple case:
More informationHow To Understand The Concept Of A Distributed System
Distributed Operating Systems Introduction Ewa Niewiadomska-Szynkiewicz and Adam Kozakiewicz ens@ia.pw.edu.pl, akozakie@ia.pw.edu.pl Institute of Control and Computation Engineering Warsaw University of
More informationProgramming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga
Programming models for heterogeneous computing Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga Talk outline [30 slides] 1. Introduction [5 slides] 2.
More informationClient/Server Computing Distributed Processing, Client/Server, and Clusters
Client/Server Computing Distributed Processing, Client/Server, and Clusters Chapter 13 Client machines are generally single-user PCs or workstations that provide a highly userfriendly interface to the
More informationProgram Grid and HPC5+ workshop
Program Grid and HPC5+ workshop 24-30, Bahman 1391 Tuesday Wednesday 9.00-9.45 9.45-10.30 Break 11.00-11.45 11.45-12.30 Lunch 14.00-17.00 Workshop Rouhani Karimi MosalmanTabar Karimi G+MMT+K Opening IPM_Grid
More informationIntroduction to OpenCL Programming. Training Guide
Introduction to OpenCL Programming Training Guide Publication #: 137-41768-10 Rev: A Issue Date: May, 2010 Introduction to OpenCL Programming PID: 137-41768-10 Rev: A May, 2010 2010 Advanced Micro Devices
More informationAMD GPU Architecture. OpenCL Tutorial, PPAM 2009. Dominik Behr September 13th, 2009
AMD GPU Architecture OpenCL Tutorial, PPAM 2009 Dominik Behr September 13th, 2009 Overview AMD GPU architecture How OpenCL maps on GPU and CPU How to optimize for AMD GPUs and CPUs in OpenCL 2 AMD GPU
More informationDistributed Systems. REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1
Distributed Systems REK s adaptation of Prof. Claypool s adaptation of Tanenbaum s Distributed Systems Chapter 1 1 The Rise of Distributed Systems! Computer hardware prices are falling and power increasing.!
More informationOperating Systems. 05. Threads. Paul Krzyzanowski. Rutgers University. Spring 2015
Operating Systems 05. Threads Paul Krzyzanowski Rutgers University Spring 2015 February 9, 2015 2014-2015 Paul Krzyzanowski 1 Thread of execution Single sequence of instructions Pointed to by the program
More informationCellular Computing on a Linux Cluster
Cellular Computing on a Linux Cluster Alexei Agueev, Bernd Däne, Wolfgang Fengler TU Ilmenau, Department of Computer Architecture Topics 1. Cellular Computing 2. The Experiment 3. Experimental Results
More informationMaking Multicore Work and Measuring its Benefits. Markus Levy, president EEMBC and Multicore Association
Making Multicore Work and Measuring its Benefits Markus Levy, president EEMBC and Multicore Association Agenda Why Multicore? Standards and issues in the multicore community What is Multicore Association?
More informationDesign and Implementation of the Heterogeneous Multikernel Operating System
223 Design and Implementation of the Heterogeneous Multikernel Operating System Yauhen KLIMIANKOU Department of Computer Systems and Networks, Belarusian State University of Informatics and Radioelectronics,
More informationThe High Performance Internet of Things: using GVirtuS for gluing cloud computing and ubiquitous connected devices
WS on Models, Algorithms and Methodologies for Hierarchical Parallelism in new HPC Systems The High Performance Internet of Things: using GVirtuS for gluing cloud computing and ubiquitous connected devices
More informationGPGPU Parallel Merge Sort Algorithm
GPGPU Parallel Merge Sort Algorithm Jim Kukunas and James Devine May 4, 2009 Abstract The increasingly high data throughput and computational power of today s Graphics Processing Units (GPUs), has led
More informationOpenCL for programming shared memory multicore CPUs
Akhtar Ali, Usman Dastgeer and Christoph Kessler. OpenCL on shared memory multicore CPUs. Proc. MULTIPROG-212 Workshop at HiPEAC-212, Paris, Jan. 212. OpenCL for programming shared memory multicore CPUs
More informationGPGPUs, CUDA and OpenCL
GPGPUs, CUDA and OpenCL Timo Lilja January 21, 2010 Timo Lilja () GPGPUs, CUDA and OpenCL January 21, 2010 1 / 42 Course arrangements Course code: T-106.5800 Seminar on Software Techniques Credits: 3 Thursdays
More informationAltera SDK for OpenCL
Altera SDK for OpenCL Best Practices Guide Subscribe OCL003-15.0.0 101 Innovation Drive San Jose, CA 95134 www.altera.com TOC-2 Contents...1-1 Introduction...1-1 FPGA Overview...1-1 Pipelines... 1-2 Single
More informationChapter 2 Parallel Architecture, Software And Performance
Chapter 2 Parallel Architecture, Software And Performance UCSB CS140, T. Yang, 2014 Modified from texbook slides Roadmap Parallel hardware Parallel software Input and output Performance Parallel program
More informationOptimization. NVIDIA OpenCL Best Practices Guide. Version 1.0
Optimization NVIDIA OpenCL Best Practices Guide Version 1.0 August 10, 2009 NVIDIA OpenCL Best Practices Guide REVISIONS Original release: July 2009 ii August 16, 2009 Table of Contents Preface... v What
More informationEmbedded Systems: map to FPGA, GPU, CPU?
Embedded Systems: map to FPGA, GPU, CPU? Jos van Eijndhoven jos@vectorfabrics.com Bits&Chips Embedded systems Nov 7, 2013 # of transistors Moore s law versus Amdahl s law Computational Capacity Hardware
More informationA general-purpose virtualization service for HPC on cloud computing: an application to GPUs
A general-purpose virtualization service for HPC on cloud computing: an application to GPUs R.Montella, G.Coviello, G.Giunta* G. Laccetti #, F. Isaila, J. Garcia Blas *Department of Applied Science University
More informationGPU Computing - CUDA
GPU Computing - CUDA A short overview of hardware and programing model Pierre Kestener 1 1 CEA Saclay, DSM, Maison de la Simulation Saclay, June 12, 2012 Atelier AO and GPU 1 / 37 Content Historical perspective
More informationADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM
ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM 1 The ARM architecture processors popular in Mobile phone systems 2 ARM Features ARM has 32-bit architecture but supports 16 bit
More informationSo#ware Tools and Techniques for HPC, Clouds, and Server- Class SoCs Ron Brightwell
So#ware Tools and Techniques for HPC, Clouds, and Server- Class SoCs Ron Brightwell R&D Manager, Scalable System So#ware Department Sandia National Laboratories is a multi-program laboratory managed and
More informationCOMP 422, Lecture 3: Physical Organization & Communication Costs in Parallel Machines (Sections 2.4 & 2.5 of textbook)
COMP 422, Lecture 3: Physical Organization & Communication Costs in Parallel Machines (Sections 2.4 & 2.5 of textbook) Vivek Sarkar Department of Computer Science Rice University vsarkar@rice.edu COMP
More informationMCA Standards For Closely Distributed Multicore
MCA Standards For Closely Distributed Multicore Sven Brehmer Multicore Association, cofounder, board member, and MCAPI WG Chair CEO of PolyCore Software 2 Embedded Systems Spans the computing industry
More informationIntroduction to GPGPU. Tiziano Diamanti t.diamanti@cineca.it
t.diamanti@cineca.it Agenda From GPUs to GPGPUs GPGPU architecture CUDA programming model Perspective projection Vectors that connect the vanishing point to every point of the 3D model will intersecate
More informationNVIDIA Tools For Profiling And Monitoring. David Goodwin
NVIDIA Tools For Profiling And Monitoring David Goodwin Outline CUDA Profiling and Monitoring Libraries Tools Technologies Directions CScADS Summer 2012 Workshop on Performance Tools for Extreme Scale
More informationOptimizing GPU-based application performance for the HP for the HP ProLiant SL390s G7 server
Optimizing GPU-based application performance for the HP for the HP ProLiant SL390s G7 server Technology brief Introduction... 2 GPU-based computing... 2 ProLiant SL390s GPU-enabled architecture... 2 Optimizing
More information