computational biology 2008 advisor: dr. alon korngreen

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

Upload: ajay

Post on 22-Jan-2016

39 views

Category:

Documents


0 download

DESCRIPTION

Computational Biology 2008 Advisor: Dr. Alon Korngreen Eitan Hasid Assaf Ben-Zaken. Parallel Computations on Neural Cells Models. Concepts. Biological Background Computational Background Goals Methods GPU Abilities GPU Programming Conclusions The Future. Neurons. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Computational Biology2008

Advisor: Dr. Alon Korngreen

Eitan Hasid Assaf Ben-Zaken

Page 2: Computational Biology 2008 Advisor: Dr. Alon Korngreen

ConceptsConcepts

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

Page 3: Computational Biology 2008 Advisor: Dr. Alon Korngreen

NeuronsNeurons

• 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.

Page 4: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Compartmental ModelsCompartmental 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.

Page 5: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Genetic AlgorithmGenetic 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.

Page 6: Computational Biology 2008 Advisor: Dr. Alon Korngreen

• 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.

GoalsGoals

Page 7: Computational Biology 2008 Advisor: Dr. Alon Korngreen

MethodsMethodsGraphics Accelerators Graphics Accelerators •As a tool for parallel computations.

Sh – High Level Metaprogramming Language.Sh – High Level Metaprogramming Language.•Communication with the graphics card.

C++C++•Wrapping of the Sh Program.•GA also written in C++.

Page 8: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Graphic AcceleratorsGraphic Accelerators

Page 9: Computational Biology 2008 Advisor: Dr. Alon Korngreen

PerformancePerformance• 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.

Page 10: Computational Biology 2008 Advisor: Dr. Alon Korngreen

GPU ArchitectureGPU Architecture• In order to understand the parallel

power, the architecture need to bestudied as well.

• The GPU holds large numberof 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.

Page 11: Computational Biology 2008 Advisor: Dr. Alon Korngreen

GPGPUGPGPU• Stands for “General-Purpose computation on

GPUs“ .

GPGPU LanguagesGPGPU LanguagesWhy 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.

Page 12: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Main considerationsMain considerations

• Cross platform Windows\Linux.

• Cross platform Nvidia\ATI.

• Operations supported.

• Memory Management.

• Program manipulation.

• Ease of Learn & Documentation available.

Page 13: Computational Biology 2008 Advisor: Dr. Alon Korngreen

ShShHigh Level Metaprogramming LanguageHigh 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.

Page 14: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Analyzing the algorithmAnalyzing 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 calculationthat took about 57% of running time.

• Next we created stream processed functions to perform these calculations on GPU.

Page 15: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Sh Sample CodeSh Sample Code// Environment and namespace declaration#include <sh/sh.hpp>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;

Page 16: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Sh Sample CodeSh 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<ShAttrib3f> in(mem_in, 1);

//Setting up the output variable float outdata[3]; ShHostMemoryPtr mem_out = new ShHostMemory(sizeof(float) * 3, outdata,

SH_FLOAT); ShChannel<ShAttrib3f> out(mem_out, 1);

//Executing the program out = prg << in;

Page 17: Computational Biology 2008 Advisor: Dr. Alon Korngreen

ConclusionsConclusions• 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.

Page 18: Computational Biology 2008 Advisor: Dr. Alon Korngreen

ReferencesReferences• Constraining Compartmental Models Using Multiple Voltage Recordings and

Genetic AlgorithmsNaomi Keren, Noam Peled, and Alon Korngreen

• Principles of Neural ScienceEric R. Kandel.

• GPGPU Community Website. http://www.gpgpu.org.

• Sh Websitehttp://www.libsh.org

• Metaprogramming GPUs with Sh Michael McCool, Stefanus Du Toit

Page 19: Computational Biology 2008 Advisor: Dr. Alon Korngreen

Thanks for listening