Optimizing Applications for Multicore by Intel Software Engineer Levent Akyil Welcome to the Parallel Universe

Total Page:16

File Type:pdf, Size:1020Kb

Optimizing Applications for Multicore by Intel Software Engineer Levent Akyil Welcome to the Parallel Universe Letter to the Editor by parallelism author and expert James Reinders Are You Ready to Enter a Parallel Universe: Optimizing Applications for Multicore by Intel software engineer Levent Akyil Welcome to the Parallel Universe Contents Think Parallel or Perish, BY JAMES REINDERS .........................................................................................2 James Reinders, Lead Evangelist and a Director with Intel® Software Development Products, sees a future where every software developer needs to be thinking about parallelism first when programming. He first published“ Think Parallel or Perish“ three years ago. Now he revisits his comments to offer an update on where we have gone and what still lies ahead. Parallelization Methodology...................................................................................................................... 4 The four stages of parallel application development addressed by Intel® Parallel Studio. Writing Parallel Code Safely, BY PETER VARHOL ........................................................................... 5 Writing multithreaded code to take full advantage of multiple processors and multicore processors is difficult. The new Intel® Parallel Studio should help us bridge that gap. Are You Ready to Enter a Parallel Universe: Optimizing Applications for Multicore, BY LEVENT AKYIL .............................................. 8 A look at parallelization methods made possible by the new Intel® Parallel Studio—designed for Microsoft Visual Studio* C/C++ developers of Windows* applications. 8 Rules for Parallel Programming for Multicore, BY JAMES REINDERS ...................................................................................................................................................................... 16 There are some consistent rules that can help you solve the parallelism challenge and tap into the potential of multicore. EVOLVE YOUR CODE. Get robust parallelism from analysis and compiling through debugging and tuning. Intel® Parallel Studio is the ultimate all-in-one toolset for Windows* applications. These advanced software tools enable agile multicore software development for Microsoft Visual Studio* C/C++ developers. Everything you need to take serial code to parallel and parallel to perfection. Preorder now. Product shipping May 26. www.intel.com/software/parallelstudio © 2009 – 2010, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries. *Other names and brands may be claimed as the property of others. © 2009-2010, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries. *Other names and brands may be claimed as the property of others. 1 Welcome to the Parallel Universe Welcome to the Parallel Universe Three years ago, as I thought Think about my own future in software de- A good design comes velopment, I penned a piece noting that as software developers we all need to from a human developer, personally “Think Parallel” or face a future where others will do so and we will cease to be competitive. I am still confident that not the tools. software development in 2016 will not This dawning of manycore proces- And, we have gone to beta with our be kind to programmers who have not What we must all learn to Parallel learned to “Think Parallel.” sors, as profound as it is, will not affect Intel® Parallel Studio project. This takes ev- do is “Think Parallel.” or Some of us will write parallel programs, very many programmers in 2009. It will, erything we’ve done to date, and makes it however, make this new parallel era even much more intuitive, robust, and exciting. By James Reinders some of us will not. Some will write using James Reinders, Lead Evangelist new languages to implement in, changing more real than multicore processors Soon, it will be a full product from Intel. and a Director with Intel® Software the way we do most everything. Most have. The opportunity for hardware to be These new projects are in addition to Development Products, sees a future where every software developer will not. enormously parallel is staggering. all the tools we had a few years ago. We needs to be thinking about parallelism What we must all do is learn to “Think The “not parallel” era we are now exit- are growing and expanding our tools to first when programming. He first Perish We are leaving behind an era of ing will appear to be a very primitive time support customers, while they expand published “Think Parallel or Perish“ Parallel.” Understanding how parallelism is too little parallelism. three years ago. Now he revisits and will be used on computers, in in the history of computers when people to use parallelism. We are generally not his comments to offer an update on Where are we now? where we have gone and what still applications, and in our environment is look back in a hundred years. The forcing obsolescence as we expand to To which I say: “It’s about lies ahead. critical to our future. Grasping how to use world works in parallel, and it is time for offer parallelism. Our customers appreci- time!” the good and avoid the bad in this new computer programs to do the same. We ate that. world, intuitively, is the challenge ahead are leaving behind an era of too little I’m also quite excited about Intel’s Ct of us in “Thinking Parallel.” parallelism, to which I say: “It’s about technology, and we’ll be talking more I still have my note stuck to my cube time!” Doing one thing at a time is “so about that as the year goes on. It is one wall: “Memo to self: The fastest way to yesterday.” of several more projects we have been unemployment is to not hone my pro- In less than a decade, a programmer experimenting with, and talking with gramming skills for exploiting parallelism.” who does not “Think Parallel” first will not customers about, to guide us on what This year, 2009, is the fifth year in be a programmer. more we should be doing to help. which Intel is shipping multicore proces- We are building tools that help with sors. Those five years were not the first What’s Intel doing to help? parallel programming. We are embracing five years of multicore processors, but When I first wrote about this a few years standards, extending current languages, they were the five years that drove x86 ago, Intel was already a longtime cham- using library APIs—all with an eye on scal- processors to multicore in servers and pion for the OpenMP* standard (www. ability, correctness, and maintainability. desktop and laptop computers. In this openmp.org) and had many tools for MPI It is still up to us, as software develop- time span, we’ve gone from a few multi- support. Our performance analysis tools ers, to know what to do with these core processor offerings to “game over” and debuggers were ahead of their time wonderful tools. Just as before parallelism, for single-core processors. with top to bottom support for paral- a good design comes from the human This year, 2009, we will also witness lelism. We also had emerging tools for developer—not the tools. Parallelism will another monumental milestone: this will finding deadlocks and race conditions in be no different. Hence, we humans need be the first year that Intel has a produc- parallel programs. to work on “Think Parallel.” tion manycore processor. Manycore pro- Since then, we’ve helped update James Reinders cessors differ from multicore processors OpenMP to specification version 3.0 and Portland, Oregon by having a more sophisticated system of were among the very first to support it in April 2009 interconnecting processors, caches, mem- our compilers. We launched our own MPI ories, and I/O. This is needed at about library, which is more portable and higher James Reinders is Chief Software Evangelist 16 or so cores—so manycore processors performing than prior options. and Director of Software Development Products, can be expected to have more cores than We created Intel® Threading Building Intel Corporation. His articles and books on paral- multicore processors. The world has never Blocks (Intel® TBB), which has become the lelism include Intel Threading Building Blocks: Outfitting C++ for Multicore seen a high-volume manycore processor, best and most popular way to program Processor Parallelism. Find out more at but over the next few years it will. parallelism in C++. www.go-parallelcom. 2 3 For more information regarding performance and optimization choices in Intel software products, visit http://software.intel.com/en-us/articles/optimization-notice. Welcome to the Parallel Universe Welcome to the Parallel Universe Writing Parallel PARALLELIZATION METHODOLOGY ® The Intel Software Development Tools solve four barriers, locks, and thread teams. To debug an Safely Code stages of parallel application development: application with the Intel Parallel Debugger the application must be built with the Intel® C++ Writing multithreaded With the explosion of multicore processors, the pressure is now ® 1. Code and Debug with Intel Parallel Composer: Compiler using the /debug:parallel option. code to take full on application developers to make effective use of this computing Use source code analysis capabilities of Intel Parallel advantage of multiple ® power. Developers are increasingly going to have to better identify Composer to identify errors in the source code during 2. Verify with Intel Parallel Inspector: Run Intel Paral- processors and compilation phase. To enable source code analysis lel Inspector to find threading errors such as data multicore processors opportunities for multithreading and independent parallel operation you will need to use the /Qdiag-enable:sc {[1|2|3]} races and deadlocks and memory errors that are likely is difficult. The in their applications, and to be able to implement those techniques compiler option. The number specifies the severity to occur. If you found errors, fix them and rebuild the ® level of the diagnostics (1=all critical errors, 2=all application with Intel Parallel Composer. new Intel Parallel in their code. errors, and 3=all errors and warnings).
Recommended publications
  • Here I Led Subcommittee Reports Related to Data-Intensive Science and Post-Moore Computing) and in CRA’S Board of Directors Since 2015
    Vivek Sarkar Curriculum Vitae Contents 1 Summary 2 2 Education 3 3 Professional Experience 3 3.1 2017-present: College of Computing, Georgia Institute of Technology . 3 3.2 2007-present: Department of Computer Science, Rice University . 5 3.3 1987-2007: International Business Machines Corporation . 7 4 Professional Awards 11 5 Research Awards 12 6 Industry Gifts 15 7 Graduate Student and Other Mentoring 17 8 Professional Service 19 8.1 Conference Committees . 20 8.2 Advisory/Award/Review/Steering Committees . 25 9 Keynote Talks, Invited Talks, Panels (Selected) 27 10 Teaching 33 11 Publications 37 11.1 Refereed Conference and Journal Publications . 37 11.2 Refereed Workshop Publications . 51 11.3 Books, Book Chapters, and Edited Volumes . 58 12 Patents 58 13 Software Artifacts (Selected) 59 14 Personal Information 60 Page 1 of 60 01/06/2020 1 Summary Over thirty years of sustained contributions to programming models, compilers and runtime systems for high performance computing, which include: 1) Leading the development of ASTI during 1991{1996, IBM's first product compiler component for optimizing locality, parallelism, and the (then) new FORTRAN 90 high-productivity array language (ASTI has continued to ship as part of IBM's XL Fortran product compilers since 1996, and was also used as the foundation for IBM's High Performance Fortran compiler product); 2) Leading the research and development of the open source Jikes Research Virtual Machine at IBM during 1998{2001, a first-of-a-kind Java Virtual Machine (JVM) and dynamic compiler implemented
    [Show full text]
  • Ultra-Large-Scale Sites
    Ultra-large-scale Sites <working title> – Scalability, Availability and Performance in Social Media Sites (picture from social network visualization?) Walter Kriha With a forword by << >> Walter Kriha, Scalability and Availability Aspects…, V.1.9.1 page 1 03/12/2010 Copyright <<ISBN Number, Copyright, open access>> ©2010 Walter Kriha This selection and arrangement of content is licensed under the Creative Commons Attribution License: http://creativecommons.org/licenses/by/3.0/ online: www.kriha.de/krihaorg/ ... <a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by/3.0/de/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type"> Building Scalable Social Media Sites</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="wwww.kriha.de/krihaorg/books/ultra.pdf" property="cc:attributionName" rel="cc:attributionURL">Walter Kriha</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by/3.0/de/">Creative Commons Attribution 3.0 Germany License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="www.kriha.org" rel="cc:morePermissions">www.kriha.org</a>. Walter Kriha, Scalability and Availability Aspects…, V.1.9.1 page 2 03/12/2010 Acknowledgements <<master course, Todd Hoff/highscalability.com..>> Walter Kriha, Scalability and Availability Aspects…, V.1.9.1 page 3 03/12/2010 ToDo’s - The role of ultra fast networks (Infiniband) on distributed algorithms and behaviour with respect to failure models - more on group behaviour from Clay Shirky etc.
    [Show full text]
  • August 2009 Volume 34 Number 4
    AUGUST 2009 VOLUME 34 NUMBER 4 OPINION Musings 2 Rik Farrow FILE SYSTEMS Cumulus: Filesystem Backup to the Cloud 7 Michael VR able, SteFan SaVage, and geoffrey M. VoelkeR THE USENIX MAGAZINE PROGRAMMinG Rethinking Browser Performance 14 leo MeyeRoVich Programming Video Cards for ­Database Applications 21 tiM kaldewey SECURITY Malware to Crimeware: How Far Have They Gone, and How Do We Catch Up? 35 daVid dittRich HARDWARE A Home-Built NTP Appliance 45 Rudi Van dRunen CoLUMns Practical Perl Tools: Scratch the ­Webapp Itch with CGI::Application, Part 1 56 daVid n. blank-edelMan Pete’s All Things Sun: T Servers—Why, and Why Not 61 PeteR baeR galVin iVoyeur: Who Invited the Salesmen? 67 daVe JoSePhSen /dev/random 71 RobeRt g. Ferrell BooK REVIEWS Book Reviews 74 elizabeth zwicky et al. USEniX NOTES USENIX Lifetime Achievement Award 78 STUG Award 79 USENIX Association Financial Report for 2008 79 ellie young Writing for ;login: 83 ConfERENCES NSDI ’09 Reports 84 Report on the 8th International Workshop on Peer-to-Peer Systems (IPTPS ’09) 97 Report on the First USENIX Workshop on Hot Topics in Parallelism (HotPar ’09) 99 Report on the 12th Workshop on Hot Topics in Operating Systems (HotOS XII) 109 The Advanced Computing Systems Association aug09covers.indd 1 7.13.09 9:21:47 AM Upcoming Events 22n d ACM Sy M p o S i u M o n op e r A t i n g Sy S t e ms 7t H uSENIX Sy M p o S i u M o n ne t w o r k e d Sy S t e ms prinCipleS (SoSp ’09) de S i g n A n d iM p l e M e n t A t i o n (nSDI ’10) Sponsored by ACM SIGOPS in cooperation with USENIX Sponsored
    [Show full text]
  • Andrzej Nowak - Bio
    Multi-core Architectures Multi-core Architectures Andrzej Nowak - Bio 2005-2006 Intel Corporation IEEE 802.16d/e WiMax development Theme: Towards Reconfigggurable High-Performance Comppguting Linux kernel performance optimizations research Lecture 2 2006 Master Engineer diploma in Computer Science Multi-core Architectures Distributed Applications & Internet Systems Computer Systems Modeling 2007-2008 CERN openlab Andrzej Nowak Multi-core technologies CERN openlab (Geneva, Switzerland) Performance monitoring Systems architecture Inverted CERN School of Computing, 3-5 March 2008 1 iCSC2008, Andrzej Nowak, CERN openlab 2 iCSC2008, Andrzej Nowak, CERN openlab Multi-core Architectures Multi-core Architectures Introduction Objectives: Explain why multi-core architectures have become so popular Explain why parallelism is such a good bet for the near future Provide information about multi-core specifics Discuss the changes in computing landscape Discuss the impact of hardware on software Contents: Hardware part THEFREERIDEISOVERTHE FREE RIDE IS OVER Software part Recession looms? Outlook 3 iCSC2008, Andrzej Nowak, CERN openlab 4 iCSC2008, Andrzej Nowak, CERN openlab Towards Reconfigurable High-Performance Computing Lecture 2 iCSC 2008 3-5 March 2008, CERN Multi-core Architectures 1 Multi-core Architectures Multi-core Architectures Fundamentals of scalability Moore’s Law (1) Scalability – “readiness for enlargement” An observation made in 1965 by Gordon Moore, the co- founder of Intel Corporation: Good scalability: Additional
    [Show full text]
  • Efficiency, Energy Efficiency and Programming of Accelerated HPC Servers: Highlights of PRACE Studies
    Efficiency, energy efficiency and programming of accelerated HPC servers: Highlights of PRACE studies Lennart Johnsson Department of Computer Science University of Houston and School of Computer Science and Communications KTH To appear in Springer Verlag “GPU Solutions to Multi-scale Problems in Science and Engineering”, 2011 2 Lennart Johnsson Abstract During the last few years the convergence in architecture for High-Performance Computing systems that took place for over a decade has been replaced by a di- vergence. The divergence is driven by the quest for performance, cost- performance and in the last few years also energy consumption that during the life-time of a system have come to exceed the HPC system cost in many cases. Mass market, specialized processors, such as the Cell Broadband Engine (CBE) and Graphics Processors, have received particular attention, the latter especially after hardware support for double-precision floating-point arithmetic was intro- duced about three years ago. The recent support of Error Correcting Code (ECC) for memory and significantly enhanced performance for double-precision arithme- tic in the current generation of Graphic Processing Units (GPUs) have further so- lidified the interest in GPUs for HPC. In order to assess the issues involved in potentially deploying clusters with nodes consisting of commodity microprocessors with some type of specialized processor for enhanced performance or enhanced energy efficiency or both for science and engineering workloads, PRACE, the Partnership for Advanced Com- puting in Europe, undertook a study that included three types of accelerators, the CBE, GPUs and ClearSpeed, and tools for their programming. The study focused on assessing performance, efficiency, power efficiency for double-precision arithmetic and programmer productivity.
    [Show full text]
  • Design of a Parallel Multi-Threaded Programming Model for Multi-Core Processors
    DESIGN OF A PARALLEL MULTI-THREADED PROGRAMMING MODEL FOR MULTI-CORE PROCESSORS By Muhammad Ali Ismail Thesis submitted for the Degree of Doctor of Philosophy Department of Computer and Information Systems Engineering NED University of Engineering & Technology University Road, Karachi - 75270, Pakistan 2011 DESIGN OF A PARALLEL MULTI-THREADED PROGRAMMING MODEL FOR MULTI-CORE PROCESSORS PhD Thesis By Muhammad Ali Ismail Batch: 2008-2009 Project Advisor: Prof. Dr. Shahid Hafeez Mirza Project Co-supervisor: Prof. Dr. Talat Altaf 2011 Department of Computer and Information Systems Engineering NED University of Engineering & Technology University Road, Karachi - 75270, Pakistan Certificate Certified that the thesis entitled, “DEVELOPMENT OF A NEW PARALLEL MULTI-THREADED PROGRAMMING MODEL FOR MULTI-CORE PROCESSORS” which is being submitted by Mr. Muhammad Ali Ismail for the award of degree of Doctor of Philosophy in Computer & Information Systems Engineering Department of NED University of Engineering and Technology is a record of candidate’s own original work carried out by him under our supervision and guidance. The work incorporated in this thesis has not been submitted elsewhere for the award of any other degree. ___________________ _________________________ Prof. Dr. Talat Altaf, Prof. Dr. Shahid Hafeez Mirza Dean (ECE ), NEDUET Professor, UIT PhD Co-supervisor PhD Supervisor Acknowledgements In first place, I would like to thank the Almighty Allah for His countless blessings. In fact, all praise and glory belongs to Him and none has the right and worth to be worshipped but He. Next, I would like to acknowledge my home university, NED university of Engineering and Technology, for giving me the opportunity and funding for conducting this PhD research.
    [Show full text]
  • High Performance Neural Network Inference, Streaming, and Visualization of Medical Images Using FAST
    Received August 15, 2019, accepted September 16, 2019, date of publication September 19, 2019, date of current version October 2, 2019. Digital Object Identifier 10.1109/ACCESS.2019.2942441 High Performance Neural Network Inference, Streaming, and Visualization of Medical Images Using FAST ERIK SMISTAD 1,2, ANDREAS ØSTVIK 1,2, AND ANDRÉ PEDERSEN 1 1SINTEF Medical Technology, 7465 Trondheim, Norway 2Department of Circulation and Medical Imaging, Norwegian University of Science and Technology, 7491 Trondheim, Norway Corresponding author: Erik Smistad ([email protected]) This work was supported by the Research Council of Norway under Grant 270941 and Grant 237887. ABSTRACT Deep convolutional neural networks have quickly become the standard for medical image analysis. Although there are many frameworks focusing on training neural networks, there are few that focus on high performance inference and visualization of medical images. Neural network inference requires an inference engine (IE), and there are currently several IEs available including Intel's OpenVINO, NVIDIA's TensorRT, and Google's TensorFlow which supports multiple backends, including NVIDIA's cuDNN, AMD's ROCm and Intel's MKL-DNN. These IEs only work on specific processors and have completely different application programming interfaces (APIs). In this paper, we presents methods for extending FAST, an open-source high performance framework for medical imaging, to use any IE with a common programming interface. Thereby making it easier for users to deploy and test their neural networks on different processors. This article provides an overview of current IEs and how they can be combined with existing software such as FAST. The methods are demonstrated and evaluated on three performance demanding medical use cases: real-time ultrasound image segmentation, computed tomography (CT) volume segmentation, and patch-wise classification of whole slide microscopy images.
    [Show full text]
  • Download (633Kb)
    Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED “AS IS”. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO THIS INFORMATION INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Performance tests and ratings are measured using specific computer systems and/or components and reflect the approximate performance of Intel products as measured by those tests. Any difference in system hardware or software design or configuration may affect actual performance. Buyers should consult other sources of information to evaluate the performance of systems or components they are considering purchasing. For more information on performance tests and on the performance of Intel products, reference www.intel.com/software/products. Intel, Intel Core and the Intel logo are trademarks of Intel Corporation in the U.S. and other countries. Ct: A New Paradigm for Data Parallel Computing *Other names and brands may be claimed as the property of others. Hans–Christian Hoppe Intel Visual Computing Institute, Intel Labs Copyright © 2009. Intel Corporation. using material from http://intel.com/software/products Anwar Ghuloum, CJ Newburn, Michael McCool and Stefanus Du Toit Performance and Productivity Libraries, Developer Products Division, Software and Services Group Software & Services Group, Developer Products Division Software & Services Group, Developer Products Division Copyright © 2009, Intel Corporation. All rights reserved. Copyright © 2009, Intel Corporation. All rights reserved. *Other brands and names are the property of their respective owners.
    [Show full text]
  • Comparison and Analysis of Parallel Computing Performance Using Openmp and MPI
    Send Orders for Reprints to [email protected] 38 The Open Automation and Control Systems Journal, 2013, 5, 38-44 Open Access Comparison and Analysis of Parallel Computing Performance Using OpenMP and MPI Shen Hua1,2,* and Zhang Yang1 1Department of Electronic Engineering, Dalian Neusoft University of Information Dalian, 116023/Liaoning, China 2Department of Biomedical Engineering, Faculty of Electronic Information and Electrical Engineering, Dalian Univer- sity of Technology, Dalian, 116024/Liaoning, China Abstract: The developments of multi-core technology have induced big challenges to software structures. To take full advantages of the performance enhancements offered by new multi-core hardware, software programming models have made a great shift from sequential programming to parallel programming. OpenMP (Open Multi-Processing) and MPI (Message Passing Interface), as the most common parallel programming models, can provide different performance characteristics of parallelism in different cases. This paper intends to compare and analyze the parallel computing ability between OpenMP and MPI, and then some proposals are provided in parallel programming. The processing tools used include Intel VTune Performance Analyzer and Intel Thread Checker. The find- ings indicate that OpenMP is in favor of implementation and provides good performance in shared memory systems , and that MPI is propitious to programming models which require nodes performing a large number of tasks and little commu- nications in processes. Keywords: Parallel computing, Multi-core, multithread programming, OpenMP, MPI. 1. INTRODUCTION library routines and environment variables. OpenMP em- ploys the fork-join model, where different tasks are imple- As the number of transistors has increased to fit within a mented by multiple threads within the same address space.
    [Show full text]
  • Threading Building Blocks Getting Started Guide
    Intel(R) Threading Building Blocks Getting Started Guide Intel® Threading Building Blocks is a runtime-based parallel programming model for C++ code that uses threads. It consists of a template-based runtime library to help you harness the latent performance of multicore processors. Use Intel® Threading Building Blocks to write scalable applications that: • Specify logical parallel structure instead of threads • Emphasize data parallel programming • Take advantage of concurrent collections and parallel algorithms This guide provides a complete example that uses Intel® Threading Building Blocks to write, compile, link, and run a parallel application. The example shows you how to explore a key feature of the library and to successfully build and link an application. After completing this guide, you should be ready to write and build your own code using Intel® Threading Building Blocks. Contents 10H Note Default Directory Paths...............................................................................29H 21H Set Up Environment ..........................................................................................310H 32H Develop an Application Using parallel_for .............................................................411H 43H Build the Application..........................................................................................812H 54H Run the Application .........................................................................................1013H 65H Next Steps.....................................................................................................1114H
    [Show full text]
  • Programming Models & Environments Summit
    REPORT OF THE 2014 Programming Models & Environments Summit EDITOR: Michael Heroux CO-EDITOR: Richard Lethin CONTRIBUTORS: Michael Garland, Mary Hall, Michael Heroux, Larry Kaplan, Richard Lethin, Kathryn O’Brien, Vivek Sarkar, John Shalf, Marc Snir, Armando Solar-Lezama, Thomas Sterling, and Katherine Yelick DOE ASCR REVIEWER: Sonia R. Sachs September 19, 2016 Sponsored by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research (ASCR) 17-CS-3270 Contents 1 Executive Summary 5 2 Introduction 7 2.1 Hardware Challenges for Programming Environments ...................... 8 2.2 Application Challenges for Programming Models and Environments .............. 10 2.3 Application Software Design Challenges .............................. 12 2.4 Principles of Exascale Programming Models and Environments ................. 12 2.5 Ecosystem Considerations ...................................... 14 3 Role of Programming Models and Environments Research 15 3.1 Challenges ............................................... 16 3.2 Metrics for Success .......................................... 17 4 Background, Challenges and Opportunities 18 4.1 Characterizing Programming Models and Environments ..................... 18 4.2 Design Choices ............................................ 22 4.2.1 Low Level ........................................... 22 4.2.2 Uniform vs. Hybrid ..................................... 23 4.2.3 Physical vs. Virtual ..................................... 23 4.2.4 Scheduling and Mapping ..................................
    [Show full text]
  • General Purpose Programming on Modern Graphics Hardware
    GENERAL PURPOSE PROGRAMMING ON MODERN GRAPHICS HARDWARE Robert Fleming, B.Sc. Thesis Prepared for the Degree of MASTER OF SCIENCE UNIVERSITY OF NORTH TEXAS May 2008 APPROVED: Robert Renka, Major Professor Armin Mikler, Committee Member Tom Jacob, Committee Member Krishna Kavi, Chair of the Department of Computer Science and Engineering Oscar Garcia, Dean of the College of Engineering Sandra L. Terrell, Dean of the Robert B. Toulouse School of Graduate Studies Fleming, Robert. General Purpose Programming on Modern Graphics Hardware. Master of Science (Computer Science), May 2008, 90 pp., 1 table, 3 figures, references, 124 titles. I start with a brief introduction to the graphics processing unit (GPU) as well as general-purpose computation on modern graphics hardware (GPGPU). Next, I explore the motivations for GPGPU programming, and the capabilities of modern GPUs (including advantages and disadvantages). Also, I give the background required for further exploring GPU programming, including the terminology used and the resources available. Finally, I include a comprehensive survey of previous and current GPGPU work, and end with a look at the future of GPU programming. Copyright 2008 by Robert Fleming ii To Wanda and Cheesepuff, my partners in crime. iii TABLE OF CONTENTS Page LIST OF TABLES AND ILLUSTRATIONS ......................................................................vi Chapters 1. MOTIVATION ............................................................................................ 1 1.1 What Kinds of Computation Suit the
    [Show full text]