Y. Kotani · F. Ino · K. Hagihara Springer Science + Business Media B.V. 2008 Reporter:1098308111 李長霖.

Slides:



Advertisements
Similar presentations
OPERATING SYSTEM INTRODUCTION
Advertisements

Current methods for negotiating firewalls for the Condor ® system Bruce Beckles (University of Cambridge Computing Service) Se-Chang Son (University of.
Introduction Why do we need Mobile OGSI.NET? Drawbacks:
SE263 Video Analytics Course Project Initial Report Presented by M. Aravind Krishnan, SERC, IISc X. Mei and H. Ling, ICCV’09.
Chimera: Collaborative Preemption for Multitasking on a Shared GPU
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
A system Performance Model Instructor: Dr. Yanqing Zhang Presented by: Rajapaksage Jayampthi S.
1 Introduction to Load Balancing: l Definition of Distributed systems. Collection of independent loosely coupled computing resources. l Load Balancing.
Copyright © 1998 Wanda Kunkle Computer Organization 1 Chapter 2.1 Introduction.
Chapter 11 Operating Systems
Topic 1: Introduction to Computers and Programming
Use of Multimedia in Engineering. Mechatronics engineering is based on the combination from three basic engineering field that is mechaninal, electronics.
GPGPU platforms GP - General Purpose computation using GPU
Synergy.cs.vt.edu Power and Performance Characterization of Computational Kernels on the GPU Yang Jiao, Heshan Lin, Pavan Balaji (ANL), Wu-chun Feng.
What is Concurrent Programming? Maram Bani Younes.
1 Design and Implementation of an Efficient MPEG-4 Interactive Terminal on Embedded Devices Yi-Chin Huang, Tu-Chun Yin, Kou-Shin Yang, Yan-Jun Chang, Meng-Jyi.
Operating systems CHAPTER 7.
1.1 1 Introduction Foundations of Computer Science  Cengage Learning.
Predictive Runtime Code Scheduling for Heterogeneous Architectures 1.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Software Pipelining for Stream Programs on Resource Constrained Multi-core Architectures IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEM 2012 Authors:
Fall 2000M.B. Ibáñez Lecture 01 Introduction What is an Operating System? The Evolution of Operating Systems Course Outline.
Programming Concepts in GPU Computing Dušan Gajić, University of Niš Programming Concepts in GPU Computing Dušan B. Gajić CIITLab, Dept. of Computer Science.
1.1 Operating System Concepts Introduction What is an Operating System? Mainframe Systems Desktop Systems Multiprocessor Systems Distributed Systems Clustered.
The Owner Share scheduler for a distributed system 2009 International Conference on Parallel Processing Workshops Reporter: 李長霖.
Computational Biology 2008 Advisor: Dr. Alon Korngreen Eitan Hasid Assaf Ben-Zaken.
GPU Architecture and Programming
CE Operating Systems Lecture 3 Overview of OS functions and structure.
OPERATING SYSTEMS Lecture 3: we will explore the role of the operating system in a computer Networks and Communication Department 1.
Autonomic scheduling of tasks from data parallel patterns to CPU/GPU core mixes Published in: High Performance Computing and Simulation (HPCS), 2013 International.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Lecture 8: 9/19/2002CS149D Fall CS149D Elements of Computer Science Ayman Abdel-Hamid Department of Computer Science Old Dominion University Lecture.
Chapter 2 Introduction to Systems Architecture. Chapter goals Discuss the development of automated computing Describe the general capabilities of a computer.
CS 127 Introduction to Computer Science. What is a computer?  “A machine that stores and manipulates information under the control of a changeable program”
Distributed System Services Fall 2008 Siva Josyula
Principles of Information Systems, Sixth Edition Software: Systems and Application Software Chapter 4.
CIS250 OPERATING SYSTEMS Chapter One Introduction.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
Power Guru: Implementing Smart Power Management on the Android Platform Written by Raef Mchaymech.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
CS4315A. Berrached:CMS:UHD1 Introduction to Operating Systems Chapter 1.
Chapter 7 Operating Systems Foundations of Computer Science  Cengage Learning 1.
7.1 Operating Systems. 7.2 A computer is a system composed of two major components: hardware and software. Computer hardware is the physical equipment.
1 Double-Patterning Aware DSA Template Guided Cut Redistribution for Advanced 1-D Gridded Designs Zhi-Wen Lin and Yao-Wen Chang National Taiwan University.
Computer Systems Architecture Edited by Original lecture by Ian Sunley Areas: Computer users Basic topics What is a computer?
1.3 Operating system services An operating system provide services to programs and to the users of the program. It provides an environment for the execution.
Operating System Concepts with Java – 7 th Edition, Nov 15, 2006 Silberschatz, Galvin and Gagne ©2007 Chapter 0: Historical Overview.
Our Graphics Environment Landscape Rendering. Hardware  CPU  Modern CPUs are multicore processors  User programs can run at the same time as other.
Computer Organization and Architecture Lecture 1 : Introduction
Applied Operating System Concepts
Generalized and Hybrid Fast-ICA Implementation using GPU
Introduction
System Programming and administration
Chapter 1: Introduction
Where are being used the OS?
Grid Computing.
Introduction to Operating System (OS)
Chapter 1: Introduction
Quick Introduction to OS
An Introduction to Visual Basic .NET and Program Design
Chapter 1: Introduction
Chapter 2: System Structures
Basic Grid Projects – Condor (Part I)
Operating System Concepts
Operating System Introduction.
SDLC Phases Systems Design.
Operating System Overview
Chapter 1: Introduction
Operating System Concepts
Presentation transcript:

Y. Kotani · F. Ino · K. Hagihara Springer Science + Business Media B.V Reporter: 李長霖

Outline Introduction Related Work System Overview Definition of Idle Resources Detection of Idle Resources Selection of Idle Resources Experimental Results Conclusion

Introduction Modern GPUs are increasing in computational performance at greater than the rate of the CPU. Many researchers are trying to apply the GPU to non- graphics problems beyond graphics problems. These activities are called as GPGPU, which stands for general-purpose computation on GPUs. In such systems, users can be classified into two groups: (1) resource owners, namely local users, who contribute their resources to the Grid. (2) Grid users, who desire to execute their Grid applications on donated resources.

Introduction Because GPUs are originally designed to serve their owners,we must resolve some technical issues to share them with remote Grid users. The following problems must be resolved to develop GPU Grids.  P1. The lack of criteria for defining idle resources.  P2. The lack of external monitors for the GPU.  P3. The lack of efficient multitasking on the GPU.

Although problem P3 is critical, it is not easy for non- vendors to give a direct solution to this problem, because the details of GPU architecture are not open to the public. Therefore, assuming that the GPU Grid consists of cooperative multitasking systems, we tackle the remaining problems P1 and P2 to select idle GPUs appropriately from Grid resources.

To address problem P1, we experimentally define the idle state of the GPU. For problem P2, on the other hand, we develop a resource selection system based on a screensaver approach with low-overhead sensors. The sensors detect idle GPUs according to video random access memory (VRAM) usage and CPU usage on each computer.

Related Work There are two projects that utilize GPUs as general purpose resources in desktop Grids. users can run multiple CPU/GPU programs on their machine at the same time, resulting in severe slowdowns. Thus, some resource monitoring and selection framework are needed to resolve such performance issues.

The other project is Caravela, which realizes stream processing in distributed computing environments. Although it utilizes GPUs as general-purpose resources, the main focus in this project is left on security issues. Grid resources must be dedicated to the system to avoid severe slowdowns, because resource monitoring and selection issues are not addressed in this system.

System Overview

Grid jobs are executed in the following steps. 1. Job submission 2. Matchmaking 3. Task execution 4. Job completion

Definition of Idle Resources Requirements R1. Idle resources must minimize interference to resource owners when they run Grid applications. R2. Idle resources must provide maximum application performance to Grid users if they are selected for job execution.

Conditions C1. The resource owner does not interactively operate the resource. C2. The GPU does not execute any local application. C3. The CPU is idle enough to provide the full performance of the GPU to Grid users.

Condition C2 is essential to satisfy both requirements R1 and R2, because most systems currently do not support preemptive multitasking of GPU applications. Condition C1 is needed to minimize interference to resource owners (requirement R1). Condition C3 is essential to satisfy requirement R2. GPU applications generally make the CPU usage go to almost 100%, because they usually require CPU intervention during GPU execution.

Detection of Idle Resources

Advantages No modification. The VRAM usage can be easily obtained using GetCaps, namely a Direct Draw function, which is available in Windows computers. Thus, Grid resources do not need any special libraries and hardware except for the screensaver. Lower overhead. We can know the VRAM usage without GPU intervention because the GetCaps function obtains this information from the device driver.

Selection of Idle Resources The resource selection problem is combining two different approaches: a matchmaking approach a benchmarking approach

The matchmaking approach is responsible for providing a flexible, general framework for resource selection. In this approach, resources are described by attributes such as operating system, main memory capacity, and GPU model. These attributes are then used by Grid users to specify the resources they want. This constraint can be written using a formal language that supports operators to specify a group of resources from heterogeneous resources.

The benchmarking approach takes the responsibility for measuring the effective performance for GPGPU applications.

Experimental Results Setup

– LU decomposition of a 2048 × 2048 matrix. In this implementation, the matrix data is stored as textures in the VRAM. Textures are then repeatedly rendered by the programmable components in the GPU, such as single instruction multiple data and vector processing units. At each rendering step, the CPU determines the working area in textures where the GPU operates. – CG for solving linear systems with a coefficient matrix of size 64 × 64. Similar to LU decomposition, this implementation also repeats rendering against textures. However, CG has less CPU workload than LU because the working area is determined by the GPU itself. – RR for alignment between 2-D images and a 3-D volume. The CPU in this implementation has the lowest workload among the three applications. In contrast, the GPU is loaded more heavily because it operates 3-D data in addition to 2-D images.

Evaluating Definition of Idle Resources

Evaluating Overhead of Resource Selection

Conclusion Present a resource selection system for the GPU Grid, which aims at running GPGPU applications in desktop Grid environments. It also have shown criteria for defining idle resources in the GPU Grid. In order to detect idle resources, the system employs a screensaver approach with low-overhead monitors.

After this detection, the system selects the resources for job execution by performing matchmaking between the user requirements and the benchmark results. This matchmaking mechanism allows users to select appropriate resources they want, making the system flexible enough to the rapid advance of GPU architecture.