Computational Biology 2008 Advisor: Dr. Alon Korngreen Eitan Hasid Assaf Ben-Zaken.

Slides:



Advertisements
Similar presentations
GPGPU Programming Dominik G ö ddeke. 2Overview Choices in GPGPU programming Illustrated CPU vs. GPU step by step example GPU kernels in detail.
Advertisements

SE263 Video Analytics Course Project Initial Report Presented by M. Aravind Krishnan, SERC, IISc X. Mei and H. Ling, ICCV’09.
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
GPU Computing with CUDA as a focus Christie Donovan.
1 Lecture 6 Performance Measurement and Improvement.
Programming with CUDA, WS09 Waqar Saleem, Jens Müller Programming with CUDA and Parallel Algorithms Waqar Saleem Jens Müller.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
1 ITCS 6/8010 CUDA Programming, UNC-Charlotte, B. Wilkinson, Jan 19, 2011 Emergence of GPU systems and clusters for general purpose High Performance Computing.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
Heterogeneous Computing Dr. Jason D. Bakos. Heterogeneous Computing 2 “Traditional” Parallel/Multi-Processing Large-scale parallel platforms: –Individual.
Contemporary Languages in Parallel Computing Raymond Hummel.
Computer Science – Game DesignUC Santa Cruz Adapted from Jim Whitehead’s slides Shaders Feb 18, 2011 Creative Commons Attribution 3.0 (Except copyrighted.
Introduction What is GPU? It is a processor optimized for 2D/3D graphics, video, visual computing, and display. It is highly parallel, highly multithreaded.
Course: Introduction to Computers
GPGPU overview. Graphics Processing Unit (GPU) GPU is the chip in computer video cards, PS3, Xbox, etc – Designed to realize the 3D graphics pipeline.
To GPU Synchronize or Not GPU Synchronize? Wu-chun Feng and Shucai Xiao Department of Computer Science, Department of Electrical and Computer Engineering,
Your Interactive Guide to the Digital World Discovering Computers 2012.
AGENT SIMULATIONS ON GRAPHICS HARDWARE Timothy Johnson - Supervisor: Dr. John Rankin 1.
Introduction CSE 1310 – Introduction to Computers and Programming
Dynamic Web Pages (Flash, JavaScript)
COLLABORATIVE EXECUTION ENVIRONMENT FOR HETEROGENEOUS PARALLEL SYSTEMS Aleksandar Ili´c, Leonel Sousa 2010 IEEE International Symposium on Parallel & Distributed.
Enhancing GPU for Scientific Computing Some thoughts.
Shared memory systems. What is a shared memory system Single memory space accessible to the programmer Processor communicate through the network to the.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Computer Graphics Graphics Hardware
Implementation of Parallel Processing Techniques on Graphical Processing Units Brad Baker, Wayne Haney, Dr. Charles Choi.
GPUs and Accelerators Jonathan Coens Lawrence Tan Yanlin Li.
GPU Shading and Rendering Shading Technology 8:30 Introduction (:30–Olano) 9:00 Direct3D 10 (:45–Blythe) Languages, Systems and Demos 10:30 RapidMind.
By Arun Bhandari Course: HPC Date: 01/28/12. GPU (Graphics Processing Unit) High performance many core processors Only used to accelerate certain parts.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Uncovering the Multicore Processor Bottlenecks Server Design Summit Shay Gal-On Director of Technology, EEMBC.
Y. Kotani · F. Ino · K. Hagihara Springer Science + Business Media B.V Reporter: 李長霖.
Microcontroller Presented by Hasnain Heickal (07), Sabbir Ahmed(08) and Zakia Afroze Abedin(19)
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.
Emergence of GPU systems and clusters for general purpose high performance computing ITCS 4145/5145 April 3, 2012 © Barry Wilkinson.
Robert Liao Tracy Wang CS252 Spring Overview Traditional GPU Architecture The NVIDIA G80 Processor CUDA (Compute Unified Device Architecture) LAPACK.
Windows, Linux, Mac, Android, iOS
GPU Architecture and Programming
A Closer Look At GPUs By Kayvon Fatahalian and Mike Houston Presented by Richard Stocker.
CS662 Computer Graphics Game Technologies Jim X. Chen, Ph.D. Computer Science Department George Mason University.
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
GPU-Accelerated Computing and Case-Based Reasoning Yanzhi Ren, Jiadi Yu, Yingying Chen Department of Electrical and Computer Engineering, Stevens Institute.
CS Computer Science I. BCPL was developed in 1967 as a language for writing operating systems and software compilers In 1970, the creators of the.
GPU Accelerated MRI Reconstruction Professor Kevin Skadron Computer Science, School of Engineering and Applied Science University of Virginia, Charlottesville,
Application Software System Software.
The Effects of Parallel Programming on Gaming Anthony Waterman.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Computer Architecture Lecture 24 Parallel Processing Ralph Grishman November 2015 NYU.
The Effects of Parallel Programming on Gaming Anthony Waterman.
Introduction  Program: Set of sequence instruction that tell the computer what to do.  Software: A collection of programs, data, and information. 
GPGPU introduction. Why is GPU in the picture Seeking exa-scale computing platform Minimize power per operation. – Power is directly correlated to the.
December 13, G raphical A symmetric P rocessing Prototype Presentation December 13, 2004.
Fast and parallel implementation of Image Processing Algorithm using CUDA Technology On GPU Hardware Neha Patil Badrinath Roysam Department of Electrical.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
Chapter I: Introduction to Computer Science. Computer: is a machine that accepts input data, processes the data and creates output data. This is a specific-purpose.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
General Purpose computing on Graphics Processing Units
Computer Engg, IIT(BHU)
Computer Graphics Graphics Hardware
Emergence of GPU systems for general purpose high performance computing ITCS 4145/5145 July 12, 2012 © Barry Wilkinson CUDAIntro.ppt.
GPU Architecture and Its Application
Generalized and Hybrid Fast-ICA Implementation using GPU
Course: Introduction to Computers
Introduction CSE 1310 – Introduction to Computers and Programming
Dynamic Web Pages (Flash, JavaScript)
Matlab as a Development Environment for FPGA Design
Computer Graphics Graphics Hardware
Graphics Processing Unit
Presentation transcript:

Computational Biology 2008 Advisor: Dr. Alon Korngreen Eitan Hasid Assaf Ben-Zaken

Concepts Biological Background Computational Background Goals Methods GPU Abilities GPU Programming Conclusions The Future

Neurons Core components of the nervous system. Highly specialized for the processing and transmission of cellular signals. Communicate with one another via electrical and chemical synapses in a process called synaptic transmission. Consists of soma, axon and dendrite. Their behavior is examined by measuring voltage-gated conductances.

Compartmental Models Models used to investigate complex neuron’s physiology. Consists distributions of voltage-gated conductance. Large number of loosely constrained parameters. Almost impossible to conduct manually.

Genetic Algorithm Used to automate parameter search in the model. Multiple recordings from number of locations improved GA ability to constrain the model. Combined cost function was found to be the most effective. Problem: GA was very slow - about 25 seconds per generation. Solution: Better Computation power.

Create computer software that will perform calculations on the graphics card. Manipulate the existing algorithm to use the software whenever parallel computation can take place. Improve running time and by that allow the addition of even more parameters to the algorithm. Goals

Methods Graphics Accelerators As a tool for parallel computations. Sh – High Level Metaprogramming Language. Communication with the graphics card.C++ Wrapping of the Sh Program. GA also written in C++.

Graphic Accelerators

Performance Thanks in part to the video gaming and entertainment industries today we have graphics cards that are extremely fast and programmable. FLOPS – Floating Point Operations per Second. The FLOPS is a measure of a computer's performance, especially in fields of scientific calculations that make heavy use of floating point calculations, it is similar to instructions per second. CPU – can perform 12 gigaflops. GPU – Nvidia 6800 can perform hundreds of gigaflops.

GPU Architecture In order to understand the parallel power, the architecture need to be studied as well. The GPU holds large number of processing units. Each unit can function as a small CPU. You can send multiple inputs and receive multiple outputs for the same operation. On today’s advanced hardware you can even send a different operation for each unit.

GPGPU Stands for “General-Purpose computation on GPUs“. GPGPU Languages Why do we need them? Make programming GPUs easier! – Don’t need to know OpenGL, DirectX, or ATI/NV extensions. – Simplify common operations. – Focus on the algorithm, not on the implementation.

Main considerations Cross platform Windows\Linux. Cross platform Nvidia\ATI. Operations supported. Memory Management. Program manipulation. Ease of Learn & Documentation available.

Sh High Level Metaprogramming Language Operating Systems: Windows Linux Graphic Cards: NVIDIA GeForce FX 5200 and up. ATI Radeon 9600 and up. Stream Processing: Allows very customized operations to take place on GPU. Today, the new hardware allows even more. Help and Support: We had to compromise something… * Sh is embedded in C++ and therefore its syntax is very easy to learn.

Analyzing the algorithm gprof – a built in Linux tool for profiling programs. We used this tool to find heavy running functions The bottleneck functions were Matrix multiplication and determinant calculation that took about 57% of running time. Next we created stream processed functions to perform these calculations on GPU.

Sh Sample Code // Environment and namespace declaration #include using namespace SH; //Sh Enviroment Initialization shInit(); //Sh Program Definition //This Program adds a 3 float vector of 42.0 to an input 3 float vector ShProgram prg = SH_BEGIN_PROGRAM(“gpu:stream") { ShInputAttrib3f a; ShOutputAttrib3f b; b = a + ShAttrib3f(42.0, 42.0, 42.0); } SH_END;

Sh Sample Code //Setting up the input variable float data[] = { 1.0, 0.5, -0.5 }; ShHostMemoryPtr mem_in = new ShHostMemory(sizeof(float) * 3, data, SH_FLOAT); ShChannel in(mem_in, 1); //Setting up the output variable float outdata[3]; ShHostMemoryPtr mem_out = new ShHostMemory(sizeof(float) * 3, outdata, SH_FLOAT); ShChannel out(mem_out, 1); //Executing the program out = prg << in;

Conclusions The parallel power is unquestionable. In conjunction to a good graphics card Sh could be a possible solution for hardcore processing. Sh grants a developer the ability to develop software that runs on the GPU in real time that could not work on the CPU at interactive rates. We created a program that creates its calculations on the GPU. We still didn’t manage to create a program that its execution is faster than CPU rates because of tuples issue.

References Constraining Compartmental Models Using Multiple Voltage Recordings and Genetic Algorithms Naomi Keren, Noam Peled, and Alon Korngreen Principles of Neural Science Eric R. Kandel. GPGPU Community Website. Sh Website Metaprogramming GPUs with Sh Michael McCool, Stefanus Du Toit

Thanks for listening