Dynamic load-balancing on multi-fpga systems a case study
|
|
- Laurence Marshall
- 6 years ago
- Views:
Transcription
1 Dynamic load-balancing on multi-fpga systems a case study Volodymyr Kindratenko Innovative Systems Lab (ISL) (NCSA) Robert Brunner and Adam Myers Department of Astronomy University of Illinois at Urbana-Champaign (UIUC)
2 SRC-6 Reconfigurable Computer SRC Hi-Bar 4-port Switch SNAP Memory MAPC Common Memory MAPE µp PCI-X dual-xeon 2.8 GHz, 1 GB memory OBM A OBM B OBM C Control FPGA OBM D 1.4 GB/s sustained payload OBM E OBM F Carte 2.2 User FPGA Dual-ported Memory 192 User FPGA MB/s each
3 Angular Correlation Function TPACF, denoted as ( ), is the frequency distribution of angular separations between celestial objects in the interval (, + ) is the angular distance between two points Blue points (random data) are, on average, randomly distributed, red points (observed data) are clustered Blue points: ( )=0 Red points: ( )>0 Can vary as a function of angular distance, (yellow circles) Blue: ( )=0 on all scales Red: ( ) is larger on smaller scales Image source:
4 The Method The angular correlation function is calculated using the estimator derived by Landy & Szalay (1993): 1 2 nd DD 1 n 2 R where DD( ) and RR( ) are the autocorrelation function of the data and random points, respectively, and DR( ) is the cross-correlation between the data and random points. 2 n n D RR R i DR i 1
5 Serial Code Organization // pre-compute bin boundaries, binb // compute DD docompute{cpu MAP(data, npd, data, npd, 1, DD, binb, nbins); // loop through random data files for (i = 0; i < random_count; i++) { // compute RR docompute{cpu MAP(random[i], npr[i], random[i], npr[i], 1, RRS, binb, nbins); // compute DR docompute{cpu MAP(data, npd, random[i], npr[i], 0, DRS, binb, nbins); // compute w for (k = 0; k < nbins; k++) { w[k] = (random_count * 2*DD[k] - DRS[k]) / RRS[k] + 1.0;
6 Reference C Kernel Implementation for (i = 0; i < ((autocorrelation)? n1-1 : n1); i++) { double xi = data1[i].x, yi = data1[i].y, zi = data1[i].z; for (j = ((autocorrelation)? i+1 : 0); j < n2; j++) { double dot = xi * data2[j].x + yi * data2[j].y + * data2[j].z; pi pj register int k, min = 0, max = nbins; if (dot >= binb[min]) data_bins[min] += 1; else if (dot < binb[max]) data_bins[max+1] += 1; // run binary search else { while (max > min+1) { k = (min + max) / 2; if (dot >= binb[k]) max = k; else min = k; ; data_bins[max] += 1; q 0 q 1 q 2 q 3 q 4 q 5
7 execution time (seconds) execution time (s) speedup OpenMP Implementation µp speedup CPU MAP 140x 120x Hi-Bar Switch x 82.8x 84.9x 86.7x 88.1x 89.1x 89.6x 89.7x 89.3x 100x 80x x MAP C MAP E x 20x 0x dataset size for (i = 0; i < random_count; i++) { #pragma omp parallel sections #pragma omp section docomputemap1(, mapc); #pragma omp section docomputemap2(, mape); MAP C MAP E number of points in the dataset (x10,000) MAP C processor is idle 18% of the time
8 Simplified Performance Model Analysis of a data/random file with 100 data points each Autocorrelation between the points in the random data file requires 100*(100-1)/2=4,950 Cross-correlation between the observed data and random data requires 100*100=10,000 MAP Series C processor is idle about 50% of the time! MAP C MAP E Autocorrelation (AC) 4,950 Cross-correlation () 10,000
9 Consider Data Partitioning A1Dataset A: A2100 pointsa3 B1Dataset B: B2100 pointsb3 Autocorrelation Jobs A1-A1 (ac) A1-A2 (cc) A1-A3 (cc) A2-A2 (ac) A2-A3 (cc) A3-A3 (ac) Cross-correlation Jobs A1-B1 (cc) A1-B2 (cc) A1-B3 (cc) A2-B1 (cc) A2-B2 (cc) A2-B3 (cc) A3-B1 (cc) A3-B2 (cc) A3-B3 (cc) MAP C MAP E
10 Consider Data Partitioning Analysis of a data/random file with 100 data points each Each data file is divided into 3 equally sized segments Autocorrelation is computed first, followed by the cross-correlation Each MAP processor is invoked with the first available unprocessed pair of segments MAP Series C processor is idle about 7% of the time! MAP C AC 528 1,122 1,122 1,089 1,089 1,122 1,089 MAP E 1,089 AC 528 AC 561 1,089 1,122 1,089 1,089 1,122
11 Job Scheduler `workers` dataset 1 dataset 2 Scheduler for each pair of d1/d2 segments, p ij for each MAP processor, m if m is free assign p ij to m break endif endfor endfor MAP C MAP E `jobs`
12 Job Scheduler Implementation do { for (k = 0; k < K; k++) { if (job[k].status == running) continue; if (job[k].status == done) continue; if (job[k].status == finished) { pthread_join(job[k].thread, (void **)&mytd); for (i = 0; i < nbins+2; i++) res[i] += mytd->res[i]; job[k].status = done; // loop thru all the jobs // let it run // nothing to do anymore // need to get results back // join the thread // copy results // set status to done TOTAL++; // count number of fully executed jobs continue; for (t = NPROCS-1; t >= 0; t--) { // is there a free MAP to run this job? if (thread_stat[t] == busy) continue; // thread is busy if (self && i == j && t == 1) continue; // not suitable thread for 'self struct my_thread_data *mytd = (struct my_thread_data *)malloc(sizeof(struct my_thread_data)); pthread_create(&(job[k].thread), NULL, my_map_proc, (void *)mytd); thread_stat[t] = busy; // lock it job[k].status = running; // set status to running break; // no need to check the rest of the MAPs usleep(1000); while (TOTAL!= K);
13 execution time (s) execution time (seconds) speedup Load-balanced Implementation µp speedup CPU MAP 140x Hi-Bar Switch x 84.8x 88.9x 92.8x 94.7x 95.8x 96.4x 96.2x 120x 100x 80x x 60x MAP C MAP E x 20x 0x dataset size for (i = 0; i < random_count; i++) { JobScheduler(data, random); JobScheduler(random, random); MAP C MAP E MAP E processor is idle lees than 1% of the time number of points in the dataset (x10,000)
14 Pros Conclusions A 9% performance improvement due to a better utilization of the idle resources Near-identical load on each of the MAPs Scalable solution that allows to mix compute subroutines with different performance characteristics Cons Performance hit for the smaller datasets due to the overhead in calling the MAP processors More complex execution flow and data management
15 Acknowledgements This work is funded by NASA Applied Information Systems Research (AISR) award number NNG06GH15G Prof. Robert Brunner and Dr. Adam Myers from UIUC Department of Astronomy NCSA Collaborators Dr. Rob Pennington, Dr. Craig Steffen, David Raila, Michael Showerman, Jeremy Enos, John Larson, David Meixner, Ken Sartain SRC Computers, Inc. David Caliga, Dr. Jeff Hammes, Dan Poznanovic, David Pointer, Jon Huppenthal
Accelerating Cosmology Applications
Accelerating Cosmology Applications from 80 MFLOPS to 8 GFLOPS in 4 steps Volodymyr Kindratenko Innovative Systems Lab (ISL) (NCSA) Robert Brunner and Adam Myers Department of Astronomy University of Illinois
More informationAccelerating Cosmological Data Analysis with Graphics Processors Dylan W. Roeh Volodymyr V. Kindratenko Robert J. Brunner
Accelerating Cosmological Data Analysis with Graphics Processors Dylan W. Roeh Volodymyr V. Kindratenko Robert J. Brunner University of Illinois at Urbana-Champaign Presentation Outline Motivation Digital
More informationNCSA GPU programming tutorial day 4. Dylan Roeh
NCSA GPU programming tutorial day 4 Dylan Roeh droeh2@illinois.edu Introduction Application: Two Point Angular Correlation Function The goal is, given a large set D of unit vectors, to compute a histogram
More informationOn Using Simulink to Program SRC-6 Reconfigurable Computer
In Proc. 9 th Military and Aerospace Programmable Logic Devices (MAPLD) International Conference September, 2006, Washington, DC. On Using Simulink to Program SRC-6 Reconfigurable Computer David Meixner,
More informationDeveloping and Deploying Advanced Algorithms to Novel Supercomputing Hardware
Developing and Deploying Advanced Algorithms to Novel Supercomputing Hardware Robert J. Brunner 1,2, Volodymyr V. Kindratenko 2, and Adam D. Myers 1 1) Department of Astronomy, 2) National Center for Supercomputing
More informationMitrion-C Application Development on SGI Altix 350/RC100
In Proc. IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM 07), April 23-25, 2006, Napa, California Mitrion-C Application Development on SGI Altix 350/RC100 Volodymyr V. Kindratenko,
More informationAccelerating Scientific Applications with High-Performance Reconfigurable Computing (HPRC)
Accelerating Scientific Applications with High-Performance Reconfigurable Computing (HPRC) Volodymyr V. Kindratenko Innovative Systems Laboratory (ISL) (NCSA) University of Illinois at Urbana-Champaign
More informationImplementation of the two-point angular correlation function on a high-performance reconfigurable computer
Scientific Programming 17 (2009) 247 259 247 DOI 10.3233/SPR-2009-0286 IOS Press Implementation of the two-point angular correlation function on a high-performance reconfigurable computer Volodymyr V.
More informationQP: A Heterogeneous Multi-Accelerator Cluster
10th LCI International Conference on High-Performance Clustered Computing March 10-12, 2009; Boulder, Colorado QP: A Heterogeneous Multi-Accelerator Cluster Michael Showerman 1, Jeremy Enos, Avneesh Pant,
More informationOverview and Power Monitoring of NCSA-UIUC- NVIDIA EcoG Computational Cluster
Overview and Power Monitoring of NCSA-UIUC- NVIDIA EcoG Computational Cluster Craig Steffen NCSA Innovative Systems Lab at the SC 2010 Green500 BOF November 18, 2010 National Center for Supercomputing
More informationHigh Performance Computing with Accelerators
High Performance Computing with Accelerators Volodymyr Kindratenko Innovative Systems Laboratory @ NCSA Institute for Advanced Computing Applications and Technologies (IACAT) National Center for Supercomputing
More informationImplementing Simulink Designs on SRC-6 System
Implementing Simulink Designs on SRC-6 System 1. Introduction David Meixner, Volodymyr Kindratenko 1, David Pointer Innovative Systems Laboratory National Center for Supercomputing Applications University
More informationEvaluation and Exploration of Next Generation Systems for Applicability and Performance Volodymyr Kindratenko Guochun Shi
Evaluation and Exploration of Next Generation Systems for Applicability and Performance Volodymyr Kindratenko Guochun Shi National Center for Supercomputing Applications University of Illinois at Urbana-Champaign
More informationPorting MILC to GPU: Lessons learned
Porting MILC to GPU: Lessons learned Dylan Roeh Jonathan Troup Guochun Shi Volodymyr Kindratenko Innovative Systems Laboratory National Center for Supercomputing Applications University of Illinois at
More informationFirst-hand experience on porting MATPHOT code to SRC platform
First-hand experience on porting MATPHOT code to SRC platform Volodymyr (Vlad) Kindratenko NCSA, UIUC kindr@ncsauiucedu Presentation outline What is MATPHOT? MATPHOT code Testbed code Implementations on
More informationGPU Clusters for High- Performance Computing Jeremy Enos Innovative Systems Laboratory
GPU Clusters for High- Performance Computing Jeremy Enos Innovative Systems Laboratory National Center for Supercomputing Applications University of Illinois at Urbana-Champaign Presentation Outline NVIDIA
More informationPERFORMANCE PORTABILITY WITH OPENACC. Jeff Larkin, NVIDIA, November 2015
PERFORMANCE PORTABILITY WITH OPENACC Jeff Larkin, NVIDIA, November 2015 TWO TYPES OF PORTABILITY FUNCTIONAL PORTABILITY PERFORMANCE PORTABILITY The ability for a single code to run anywhere. The ability
More informationLecture 1: Introduction and Computational Thinking
PASI Summer School Advanced Algorithmic Techniques for GPUs Lecture 1: Introduction and Computational Thinking 1 Course Objective To master the most commonly used algorithm techniques and computational
More informationParallel Programming. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University
Parallel Programming Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Challenges Difficult to write parallel programs Most programmers think sequentially
More informationExploiting GPU Caches in Sparse Matrix Vector Multiplication. Yusuke Nagasaka Tokyo Institute of Technology
Exploiting GPU Caches in Sparse Matrix Vector Multiplication Yusuke Nagasaka Tokyo Institute of Technology Sparse Matrix Generated by FEM, being as the graph data Often require solving sparse linear equation
More informationB. Evaluation and Exploration of Next Generation Systems for Applicability and Performance (Volodymyr Kindratenko, Guochun Shi)
A. Summary - In the area of Evaluation and Exploration of Next Generation Systems for Applicability and Performance, over the period of 10/1/10 through 12/30/10 the NCSA Innovative Systems Lab team continued
More informationHardware Oriented Security
1 / 20 Hardware Oriented Security SRC-7 Programming Basics and Pipelining Miaoqing Huang University of Arkansas Fall 2014 2 / 20 Outline Basics of SRC-7 Programming Pipelining 3 / 20 Framework of Program
More informationPerformance Analysis of Memory Transfers and GEMM Subroutines on NVIDIA TESLA GPU Cluster
Performance Analysis of Memory Transfers and GEMM Subroutines on NVIDIA TESLA GPU Cluster Veerendra Allada, Troy Benjegerdes Electrical and Computer Engineering, Ames Laboratory Iowa State University &
More informationJCudaMP: OpenMP/Java on CUDA
JCudaMP: OpenMP/Java on CUDA Georg Dotzler, Ronald Veldema, Michael Klemm Programming Systems Group Martensstraße 3 91058 Erlangen Motivation Write once, run anywhere - Java Slogan created by Sun Microsystems
More informationCIS 601 Graduate Seminar. Dr. Sunnie S. Chung Dhruv Patel ( ) Kalpesh Sharma ( )
Guide: CIS 601 Graduate Seminar Presented By: Dr. Sunnie S. Chung Dhruv Patel (2652790) Kalpesh Sharma (2660576) Introduction Background Parallel Data Warehouse (PDW) Hive MongoDB Client-side Shared SQL
More informationC Grundlagen - Threads
Michael Strassberger saremox@linux.com Proseminar C Grundlagen Fachbereich Informatik Fakultaet fuer Mathematik, Informatik und Naturwissenschaften Universitaet Hamburg 3. Juli 2014 Table of Contents 1
More informationECE Spring 2017 Exam 2
ECE 56300 Spring 2017 Exam 2 All questions are worth 5 points. For isoefficiency questions, do not worry about breaking costs down to t c, t w and t s. Question 1. Innovative Big Machines has developed
More informationIntroduction to parallel computers and parallel programming. Introduction to parallel computersand parallel programming p. 1
Introduction to parallel computers and parallel programming Introduction to parallel computersand parallel programming p. 1 Content A quick overview of morden parallel hardware Parallelism within a chip
More informationA Work Stealing Scheduler for Parallel Loops on Shared Cache Multicores
A Work Stealing Scheduler for Parallel Loops on Shared Cache Multicores Marc Tchiboukdjian Vincent Danjean Thierry Gautier Fabien Le Mentec Bruno Raffin Marc Tchiboukdjian A Work Stealing Scheduler for
More informationIntroduction to OpenMP. OpenMP basics OpenMP directives, clauses, and library routines
Introduction to OpenMP Introduction OpenMP basics OpenMP directives, clauses, and library routines What is OpenMP? What does OpenMP stands for? What does OpenMP stands for? Open specifications for Multi
More informationAcknowledgments. Amdahl s Law. Contents. Programming with MPI Parallel programming. 1 speedup = (1 P )+ P N. Type to enter text
Acknowledgments Programming with MPI Parallel ming Jan Thorbecke Type to enter text This course is partly based on the MPI courses developed by Rolf Rabenseifner at the High-Performance Computing-Center
More informationParallelization of Shortest Path Graph Kernels on Multi-Core CPUs and GPU
Parallelization of Shortest Path Graph Kernels on Multi-Core CPUs and GPU Lifan Xu Wei Wang Marco A. Alvarez John Cavazos Dongping Zhang Department of Computer and Information Science University of Delaware
More informationCPS343 Parallel and High Performance Computing Project 1 Spring 2018
CPS343 Parallel and High Performance Computing Project 1 Spring 2018 Assignment Write a program using OpenMP to compute the estimate of the dominant eigenvalue of a matrix Due: Wednesday March 21 The program
More informationSummary of Current and Future CyberChem Activities at ISL/NCSA
Summary of Current and Future CyberChem Activities at ISL/NCSA Volodymyr Kindratenko Innovative Systems Laboratory (ISL) (NCSA) University of Illinois at Urbana-Champaign (UIUC) ISL Technology Overview
More informationMarwan Burelle. Parallel and Concurrent Programming
marwan.burelle@lse.epita.fr http://wiki-prog.infoprepa.epita.fr Outline 1 2 3 OpenMP Tell Me More (Go, OpenCL,... ) Overview 1 Sharing Data First, always try to apply the following mantra: Don t share
More informationOpenMP - II. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS15/16. HPAC, RWTH Aachen
OpenMP - II Diego Fabregat-Traver and Prof. Paolo Bientinesi HPAC, RWTH Aachen fabregat@aices.rwth-aachen.de WS15/16 OpenMP References Using OpenMP: Portable Shared Memory Parallel Programming. The MIT
More informationNVIDIA Think about Computing as Heterogeneous One Leo Liao, 1/29/2106, NTU
NVIDIA Think about Computing as Heterogeneous One Leo Liao, 1/29/2106, NTU GPGPU opens the door for co-design HPC, moreover middleware-support embedded system designs to harness the power of GPUaccelerated
More informationParallel Programming. Marc Snir U. of Illinois at Urbana-Champaign & Argonne National Lab
Parallel Programming Marc Snir U. of Illinois at Urbana-Champaign & Argonne National Lab Summing n numbers for(i=1; i++; i
More informationParallel Programming in C with MPI and OpenMP
Parallel Programming in C with MPI and OpenMP Michael J. Quinn Chapter 17 Shared-memory Programming 1 Outline n OpenMP n Shared-memory model n Parallel for loops n Declaring private variables n Critical
More informationProgramming Shared Memory Systems with OpenMP Part I. Book
Programming Shared Memory Systems with OpenMP Part I Instructor Dr. Taufer Book Parallel Programming in OpenMP by Rohit Chandra, Leo Dagum, Dave Kohr, Dror Maydan, Jeff McDonald, Ramesh Menon 2 1 Machine
More informationParallel Programming
Parallel Programming OpenMP Dr. Hyrum D. Carroll November 22, 2016 Parallel Programming in a Nutshell Load balancing vs Communication This is the eternal problem in parallel computing. The basic approaches
More informationEE/CSCI 451: Parallel and Distributed Computation
EE/CSCI 451: Parallel and Distributed Computation Lecture #11 2/21/2017 Xuehai Qian Xuehai.qian@usc.edu http://alchem.usc.edu/portal/xuehaiq.html University of Southern California 1 Outline Midterm 1:
More informationOpenMP Device Offloading to FPGA Accelerators. Lukas Sommer, Jens Korinth, Andreas Koch
OpenMP Device Offloading to FPGA Accelerators Lukas Sommer, Jens Korinth, Andreas Koch Motivation Increasing use of heterogeneous systems to overcome CPU power limitations 2017-07-12 OpenMP FPGA Device
More informationIntroduction to CUDA (1 of n*)
Administrivia Introduction to CUDA (1 of n*) Patrick Cozzi University of Pennsylvania CIS 565 - Spring 2011 Paper presentation due Wednesday, 02/23 Topics first come, first serve Assignment 4 handed today
More informationThe Art of Parallel Processing
The Art of Parallel Processing Ahmad Siavashi April 2017 The Software Crisis As long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a
More informationLecture 2. Memory locality optimizations Address space organization
Lecture 2 Memory locality optimizations Address space organization Announcements Office hours in EBU3B Room 3244 Mondays 3.00 to 4.00pm; Thurs 2:00pm-3:30pm Partners XSED Portal accounts Log in to Lilliput
More informationFaster, Cheaper, Better: Biomolecular Simulation with NAMD, VMD, and CUDA
Faster, Cheaper, Better: Biomolecular Simulation with NAMD, VMD, and CUDA John Stone Theoretical and Computational Biophysics Group Beckman Institute for Advanced Science and Technology University of Illinois
More informationLarge-Scale GPU programming
Large-Scale GPU programming Tim Kaldewey Research Staff Member Database Technologies IBM Almaden Research Center tkaldew@us.ibm.com Assistant Adjunct Professor Computer and Information Science Dept. University
More informationComputed Tomography (CT) Scan Image Reconstruction on the SRC-7 David Pointer SRC Computers, Inc.
Computed Tomography (CT) Scan Image Reconstruction on the SRC-7 David Pointer SRC Computers, Inc. CT Image Reconstruction Herman Head Sinogram Herman Head Reconstruction CT Image Reconstruction for all
More informationEvolving HPCToolkit John Mellor-Crummey Department of Computer Science Rice University Scalable Tools Workshop 7 August 2017
Evolving HPCToolkit John Mellor-Crummey Department of Computer Science Rice University http://hpctoolkit.org Scalable Tools Workshop 7 August 2017 HPCToolkit 1 HPCToolkit Workflow source code compile &
More informationGPU Histogramming: Radial Distribution Functions
GPU Histogramming: Radial Distribution Functions John Stone Theoretical and Computational Biophysics Group Beckman Institute for Advanced Science and Technology University of Illinois at Urbana-Champaign
More informationSHARCNET Workshop on Parallel Computing. Hugh Merz Laurentian University May 2008
SHARCNET Workshop on Parallel Computing Hugh Merz Laurentian University May 2008 What is Parallel Computing? A computational method that utilizes multiple processing elements to solve a problem in tandem
More informationPARALLEL ID3. Jeremy Dominijanni CSE633, Dr. Russ Miller
PARALLEL ID3 Jeremy Dominijanni CSE633, Dr. Russ Miller 1 ID3 and the Sequential Case 2 ID3 Decision tree classifier Works on k-ary categorical data Goal of ID3 is to maximize information gain at each
More informationAllows program to be incrementally parallelized
Basic OpenMP What is OpenMP An open standard for shared memory programming in C/C+ + and Fortran supported by Intel, Gnu, Microsoft, Apple, IBM, HP and others Compiler directives and library support OpenMP
More informationHybrid Implementation of 3D Kirchhoff Migration
Hybrid Implementation of 3D Kirchhoff Migration Max Grossman, Mauricio Araya-Polo, Gladys Gonzalez GTC, San Jose March 19, 2013 Agenda 1. Motivation 2. The Problem at Hand 3. Solution Strategy 4. GPU Implementation
More informationTools for Intel Xeon Phi: VTune & Advisor Dr. Fabio Baruffa - LRZ,
Tools for Intel Xeon Phi: VTune & Advisor Dr. Fabio Baruffa - fabio.baruffa@lrz.de LRZ, 27.6.- 29.6.2016 Architecture Overview Intel Xeon Processor Intel Xeon Phi Coprocessor, 1st generation Intel Xeon
More informationLock Yourself Out. Ruud van der Pas. Distinguished Engineer SPARC Microelectronics. Santa Clara, CA, USA
Lock Yourself Out Distinguished Engineer SPARC Microelectronics Santa Clara, CA, USA SC 17 Talk at OpenMP Booth Tuesday, November 14, 2017 1 Heads Up! Mini Tutorial! If you have a question Our friendly
More informationLecture 14: Mixed MPI-OpenMP programming. Lecture 14: Mixed MPI-OpenMP programming p. 1
Lecture 14: Mixed MPI-OpenMP programming Lecture 14: Mixed MPI-OpenMP programming p. 1 Overview Motivations for mixed MPI-OpenMP programming Advantages and disadvantages The example of the Jacobi method
More informationPath to Exascale? Intel in Research and HPC 2012
Path to Exascale? Intel in Research and HPC 2012 Intel s Investment in Manufacturing New Capacity for 14nm and Beyond D1X Oregon Development Fab Fab 42 Arizona High Volume Fab 22nm Fab Upgrades D1D Oregon
More informationParallel Mesh Partitioning in Alya
Available online at www.prace-ri.eu Partnership for Advanced Computing in Europe Parallel Mesh Partitioning in Alya A. Artigues a *** and G. Houzeaux a* a Barcelona Supercomputing Center ***antoni.artigues@bsc.es
More informationOpenMP I. Diego Fabregat-Traver and Prof. Paolo Bientinesi WS16/17. HPAC, RWTH Aachen
OpenMP I Diego Fabregat-Traver and Prof. Paolo Bientinesi HPAC, RWTH Aachen fabregat@aices.rwth-aachen.de WS16/17 OpenMP References Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press,
More informationOpenMP and more Deadlock 2/16/18
OpenMP and more Deadlock 2/16/18 Administrivia HW due Tuesday Cache simulator (direct-mapped and FIFO) Steps to using threads for parallelism Move code for thread into a function Create a struct to hold
More informationMetaFork: A Compilation Framework for Concurrency Platforms Targeting Multicores
MetaFork: A Compilation Framework for Concurrency Platforms Targeting Multicores Presented by Xiaohui Chen Joint work with Marc Moreno Maza, Sushek Shekar & Priya Unnikrishnan University of Western Ontario,
More informationCOMP528: Multi-core and Multi-Processor Computing
COMP528: Multi-core and Multi-Processor Computing Dr Michael K Bane, G14, Computer Science, University of Liverpool m.k.bane@liverpool.ac.uk https://cgi.csc.liv.ac.uk/~mkbane/comp528 2X So far Why and
More informationUnderstanding Dynamic Parallelism
Understanding Dynamic Parallelism Know your code and know yourself Presenter: Mark O Connor, VP Product Management Agenda Introduction and Background Fixing a Dynamic Parallelism Bug Understanding Dynamic
More informationParallel Programming in C with MPI and OpenMP
Parallel Programming in C with MPI and OpenMP Michael J. Quinn Chapter 17 Shared-memory Programming Outline OpenMP Shared-memory model Parallel for loops Declaring private variables Critical sections Reductions
More informationSecure Virtual Architecture. John Criswell University of Illinois at Urbana- Champaign
Secure Virtual Architecture John Criswell University of Illinois at Urbana- Champaign Secure Virtual Machine Software LLVA VM Hardware Virtual ISA Native ISA What is it? A compiler-based virtual machine
More informationApplying Multi-Core Model Checking to Hardware-Software Partitioning in Embedded Systems
V Brazilian Symposium on Computing Systems Engineering Applying Multi-Core Model Checking to Hardware-Software Partitioning in Embedded Systems Alessandro Trindade, Hussama Ismail, and Lucas Cordeiro Foz
More informationPerformance Issues in Parallelization Saman Amarasinghe Fall 2009
Performance Issues in Parallelization Saman Amarasinghe Fall 2009 Today s Lecture Performance Issues of Parallelism Cilk provides a robust environment for parallelization It hides many issues and tries
More informationBetty Holberton Multitasking Gives the illusion that a single processor system is running multiple programs simultaneously. Each process takes turns running. (time slice) After its time is up, it waits
More information8. Binary Search Tree
8 Binary Search Tree Searching Basic Search Sequential Search : Unordered Lists Binary Search : Ordered Lists Tree Search Binary Search Tree Balanced Search Trees (Skipped) Sequential Search int Seq-Search
More informationFork / Join Parallelism
Fork / Join Parallelism Image courtesy of http://www.llnl.gov/computing/tutorials/openmp/ Speedup limited by linear portion Amdahl s Law, Speedup = 1 / [(1- F) + F/S] Synchronization wait time OpenMP:
More informationParallel Programming in C with MPI and OpenMP
Parallel Programming in C with MPI and OpenMP Michael J. Quinn Chapter 17 Shared-memory Programming 1 Outline n OpenMP n Shared-memory model n Parallel for loops n Declaring private variables n Critical
More informationIMPLICIT+EXPLICIT Architecture
IMPLICIT+EXPLICIT Architecture Fortran Carte Programming Environment C Implicitly Controlled Device Dense logic device Typically fixed logic µp, DSP, ASIC, etc. Implicit Device Explicit Device Explicitly
More informationCSE 160 Lecture 10. Instruction level parallelism (ILP) Vectorization
CSE 160 Lecture 10 Instruction level parallelism (ILP) Vectorization Announcements Quiz on Friday Signup for Friday labs sessions in APM 2013 Scott B. Baden / CSE 160 / Winter 2013 2 Particle simulation
More informationFast and Scalable Subgraph Isomorphism using Dynamic Graph Techniques. James Fox
Fast and Scalable Subgraph Isomorphism using Dynamic Graph Techniques James Fox Collaborators Oded Green, Research Scientist (GT) Euna Kim, PhD student (GT) Federico Busato, PhD student (Universita di
More informationMulti-core Architecture and Programming
Multi-core Architecture and Programming Yang Quansheng( 杨全胜 ) http://www.njyangqs.com School of Computer Science & Engineering 1 http://www.njyangqs.com Programming with OpenMP Content What is PpenMP Parallel
More informationGPGPU Offloading with OpenMP 4.5 In the IBM XL Compiler
GPGPU Offloading with OpenMP 4.5 In the IBM XL Compiler Taylor Lloyd Jose Nelson Amaral Ettore Tiotto University of Alberta University of Alberta IBM Canada 1 Why? 2 Supercomputer Power/Performance GPUs
More informationSynchronization. Event Synchronization
Synchronization Synchronization: mechanisms by which a parallel program can coordinate the execution of multiple threads Implicit synchronizations Explicit synchronizations Main use of explicit synchronization
More informationScientific Programming in C XIV. Parallel programming
Scientific Programming in C XIV. Parallel programming Susi Lehtola 11 December 2012 Introduction The development of microchips will soon reach the fundamental physical limits of operation quantum coherence
More informationEcient nondestructive equality checking for trees and graphs
Ecient nondestructive equality checking for trees and graphs Michael D. Adams R. Kent Dybvig ICFP, 2008 Overview 1 Background 2 Basic Implementations R5RS Implementation Union-nd implementation 3 Optimized
More informationOpenMP Tutorial. Seung-Jai Min. School of Electrical and Computer Engineering Purdue University, West Lafayette, IN
OpenMP Tutorial Seung-Jai Min (smin@purdue.edu) School of Electrical and Computer Engineering Purdue University, West Lafayette, IN 1 Parallel Programming Standards Thread Libraries - Win32 API / Posix
More informationGLADE: A Scalable Framework for Efficient Analytics. Florin Rusu University of California, Merced
GLADE: A Scalable Framework for Efficient Analytics Florin Rusu University of California, Merced Motivation and Objective Large scale data processing Map-Reduce is standard technique Targeted to distributed
More informationDynamic SIMD Scheduling
Dynamic SIMD Scheduling Florian Wende SC15 MIC Tuning BoF November 18 th, 2015 Zuse Institute Berlin time Dynamic Work Assignment: The Idea Irregular SIMD execution Caused by branching: control flow varies
More informationNUMA-aware OpenMP Programming
NUMA-aware OpenMP Programming Dirk Schmidl IT Center, RWTH Aachen University Member of the HPC Group schmidl@itc.rwth-aachen.de Christian Terboven IT Center, RWTH Aachen University Deputy lead of the HPC
More informationECE 574 Cluster Computing Lecture 10
ECE 574 Cluster Computing Lecture 10 Vince Weaver http://www.eece.maine.edu/~vweaver vincent.weaver@maine.edu 1 October 2015 Announcements Homework #4 will be posted eventually 1 HW#4 Notes How granular
More informationExtreme-scale Graph Analysis on Blue Waters
Extreme-scale Graph Analysis on Blue Waters 2016 Blue Waters Symposium George M. Slota 1,2, Siva Rajamanickam 1, Kamesh Madduri 2, Karen Devine 1 1 Sandia National Laboratories a 2 The Pennsylvania State
More informationShared-memory Parallel Programming with Cilk Plus
Shared-memory Parallel Programming with Cilk Plus John Mellor-Crummey Department of Computer Science Rice University johnmc@rice.edu COMP 422/534 Lecture 4 30 August 2018 Outline for Today Threaded programming
More informationParallel Numerical Algorithms
Parallel Numerical Algorithms http://sudalab.is.s.u-tokyo.ac.jp/~reiji/pna16/ [ 9 ] Shared Memory Performance Parallel Numerical Algorithms / IST / UTokyo 1 PNA16 Lecture Plan General Topics 1. Architecture
More informationPARALLELIZING COMPUTER VISION ALGORITHMS ON ACCELERATION TECHNOLOGIES: A SIFT CASE STUDY. Miaoqing Huang, Chenggang Lai
PARALLELIZING COMPUTER VISION ALGORITHMS ON ACCELERATION TECHNOLOGIES: A SIFT CASE STUDY Miaoqing Huang, Chenggang Lai Department of Computer Science and Computer Engineering University of Arkansas Email:
More informationContour Forests: Fast Multi-threaded Augmented Contour Trees
Contour Forests: Fast Multi-threaded Augmented Contour Trees Journée Visu 2017 Charles Gueunet, UPMC and Kitware Pierre Fortin, UPMC Julien Jomier, Kitware Julien Tierny, UPMC Introduction Context Related
More informationSRC MAPstation Image Processing: Edge Detection
SRC MAPstation Image Processing: Edge Detection David Caliga, Director Software Applications SRC Computers, Inc. dcaliga@srccomputers.com Motivations The purpose of detecting sharp changes in image brightness
More informationOpenMP Programming. Prof. Thomas Sterling. High Performance Computing: Concepts, Methods & Means
High Performance Computing: Concepts, Methods & Means OpenMP Programming Prof. Thomas Sterling Department of Computer Science Louisiana State University February 8 th, 2007 Topics Introduction Overview
More informationAUTOMATIC SMT THREADING
AUTOMATIC SMT THREADING FOR OPENMP APPLICATIONS ON THE INTEL XEON PHI CO-PROCESSOR WIM HEIRMAN 1,2 TREVOR E. CARLSON 1 KENZO VAN CRAEYNEST 1 IBRAHIM HUR 2 AAMER JALEEL 2 LIEVEN EECKHOUT 1 1 GHENT UNIVERSITY
More informationEfficiently Introduce Threading using Intel TBB
Introduction This guide will illustrate how to efficiently introduce threading using Intel Threading Building Blocks (Intel TBB), part of Intel Parallel Studio XE. It is a widely used, award-winning C++
More information12:00 13:20, December 14 (Monday), 2009 # (even student id)
Final Exam 12:00 13:20, December 14 (Monday), 2009 #330110 (odd student id) #330118 (even student id) Scope: Everything Closed-book exam Final exam scores will be posted in the lecture homepage 1 Parallel
More informationGPU ACCELERATION OF WSMP (WATSON SPARSE MATRIX PACKAGE)
GPU ACCELERATION OF WSMP (WATSON SPARSE MATRIX PACKAGE) NATALIA GIMELSHEIN ANSHUL GUPTA STEVE RENNICH SEID KORIC NVIDIA IBM NVIDIA NCSA WATSON SPARSE MATRIX PACKAGE (WSMP) Cholesky, LDL T, LU factorization
More informationQuantifying the Impact of GPUs on Performance and Energy Efficiency in HPC Clusters
Quantifying the Impact of GPUs on Performance and Energy Efficiency in HPC Clusters Craig Steffen csteffen@ncsa.uiuc.edu NCSA Innovative Systems Lab First International Green Computing Conference Workshop
More informationAnalysis and Visualization Algorithms in VMD
1 Analysis and Visualization Algorithms in VMD David Hardy Research/~dhardy/ NAIS: State-of-the-Art Algorithms for Molecular Dynamics (Presenting the work of John Stone.) VMD Visual Molecular Dynamics
More informationIntroduction to Parallel Computing
Portland State University ECE 588/688 Introduction to Parallel Computing Reference: Lawrence Livermore National Lab Tutorial https://computing.llnl.gov/tutorials/parallel_comp/ Copyright by Alaa Alameldeen
More information