What is Multi Core Architecture?

Similar documents
Hybrid Programming with MPI and OpenMP

WinBioinfTools: Bioinformatics Tools for Windows Cluster. Done By: Hisham Adel Mohamed

Parallel Algorithm for Dense Matrix Multiplication

Parallel Computing. Parallel shared memory computing with OpenMP

Multi-Threading Performance on Commodity Multi-Core Processors

Parallel Computing. Shared memory parallel programming with OpenMP

OpenMP & MPI CISC 879. Tristan Vanderbruggen & John Cavazos Dept of Computer & Information Sciences University of Delaware

#pragma omp critical x = x + 1; !$OMP CRITICAL X = X + 1!$OMP END CRITICAL. (Very inefficiant) example using critical instead of reduction:

COMP/CS 605: Introduction to Parallel Computing Lecture 21: Shared Memory Programming with OpenMP

Parallel Algorithm Engineering

Spring 2011 Prof. Hyesoon Kim

Workshare Process of Thread Programming and MPI Model on Multicore Architecture

MPI and Hybrid Programming Models. William Gropp

Matrix Multiplication

Parallel Programming Survey

1.4 Arrays Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright /6/11 12:33 PM!

Parallel and Distributed Computing Programming Assignment 1

Basic Concepts in Parallelization

Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming

High Performance Computing

Load Balancing. computing a file with grayscales. granularity considerations static work load assignment with MPI

Programação pelo modelo partilhada de memória

Debugging with TotalView

SQL/XML-IMDBg GPU boosted In-Memory Database for ultra fast data management Harald Frick CEO QuiLogic In-Memory DB Technology

Scalability evaluation of barrier algorithms for OpenMP

CUDA Programming. Week 4. Shared memory and register

Big Data and Parallel Work with R

OpenMP and Performance

Introduction to Cloud Computing

High Performance Cloud: a MapReduce and GPGPU Based Hybrid Approach

Multicore Parallel Computing with OpenMP

Introduction. Reading. Today MPI & OpenMP papers Tuesday Commutativity Analysis & HPF. CMSC 818Z - S99 (lect 5)

High Performance Computing. Course Notes HPC Fundamentals

Introduction to Programming (in C++) Multi-dimensional vectors. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC

Incorporating Multicore Programming in Bachelor of Science in Computer Engineering Program

University of Amsterdam - SURFsara. High Performance Computing and Big Data Course

A Pattern-Based Approach to. Automated Application Performance Analysis

A Comparison Of Shared Memory Parallel Programming Models. Jace A Mogill David Haglin

A Case Study - Scaling Legacy Code on Next Generation Platforms

Objectives. Overview of OpenMP. Structured blocks. Variable scope, work-sharing. Scheduling, synchronization

Architecture Aware Programming on Multi-Core Systems

Rule-Based Program Transformation for Hybrid Architectures CSW Workshop Towards Portable Libraries for Hybrid Systems

Optimization on Huygens

Software Pipelining by Modulo Scheduling. Philip Sweany University of North Texas

Software Configuration Management AE6382

Lecture 1 Introduction to Parallel Programming

Getting OpenMP Up To Speed

Distributed communication-aware load balancing with TreeMatch in Charm++

Advances in Smart Systems Research : ISSN : Vol. 3. No. 3 : pp.

Parallelization of video compressing with FFmpeg and OpenMP in supercomputing environment

Parallelization: Binary Tree Traversal

OpenACC Programming on GPUs

Using the Intel Inspector XE

Shared Memory Abstractions for Heterogeneous Multicore Processors

Intel Many Integrated Core Architecture: An Overview and Programming Models

Load Balancing & DFS Primitives for Efficient Multicore Applications

aicas Technology Multi Core und Echtzeit Böse Überraschungen vermeiden Dr. Fridtjof Siebert CTO, aicas OOP 2011, 25 th January 2011

Scheduling Task Parallelism" on Multi-Socket Multicore Systems"

Intro to GPU computing. Spring 2015 Mark Silberstein, , Technion 1

Multi-core Programming System Overview

An Incomplete C++ Primer. University of Wyoming MA 5310

The Double-layer Master-Slave Model : A Hybrid Approach to Parallel Programming for Multicore Clusters

To copy all examples and exercises to your local scratch directory type: /g/public/training/openmp/setup.sh

Controlling a Dot Matrix LED Display with a Microcontroller

OpenCL for programming shared memory multicore CPUs

Towards OpenMP Support in LLVM

Maximize Performance and Scalability of RADIOSS* Structural Analysis Software on Intel Xeon Processor E7 v2 Family-Based Platforms

MAQAO Performance Analysis and Optimization Tool

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Lecture 3. Optimising OpenCL performance

Introduction to GPU Programming Languages

The Design and Implementation of Scalable Parallel Haskell

IUmd. Performance Analysis of a Molecular Dynamics Code. Thomas William. Dresden, 5/27/13

Practical Introduction to

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

5x in 5 hours Porting SEISMIC_CPML using the PGI Accelerator Model

OpenMP Application Program Interface

Library (versus Language) Based Parallelism in Factoring: Experiments in MPI. Dr. Michael Alexander Dr. Sonja Sewera.

Petascale Software Challenges. William Gropp

OpenACC Basics Directive-based GPGPU Programming

Exascale Challenges and General Purpose Processors. Avinash Sodani, Ph.D. Chief Architect, Knights Landing Processor Intel Corporation

Bringing Big Data Modelling into the Hands of Domain Experts

Lecture 3: Evaluating Computer Architectures. Software & Hardware: The Virtuous Cycle?

OpenMP Application Program Interface

An Introduction to Parallel Programming with OpenMP

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp

Case Study on Productivity and Performance of GPGPUs

Driving force. What future software needs. Potential research topics

Parallel Computing for Data Science

Universität Karlsruhe (TH)

Chapter 6: Programming Languages

An examination of the dual-core capability of the new HP xw4300 Workstation

Common Mistakes in OpenMP and How To Avoid Them

OpenMP* 4.0 for HPC in a Nutshell

Introduction to Hybrid Programming

A Pattern-Based Comparison of OpenACC & OpenMP for Accelerators

Introduction to Multicore Programming

LS-DYNA Scalability on Cray Supercomputers. Tin-Ting Zhu, Cray Inc. Jason Wang, Livermore Software Technology Corp.

PROACTIVE BOTTLENECK PERFORMANCE ANALYSIS IN PARALLEL COMPUTING USING OPENMP

Optimizing matrix multiplication Amitabha Banerjee

Transcription:

What is Multi Core Architecture? When a processor has more than one core to execute all the necessary functions of a computer, it s processor is known to be a multi core architecture. In other words, a chip with more than one CPU s(central Processing Unit).

What is the difference between a single core processor and a multi core processor?

Advantages of multi core CPU the largest boost in performance will likely be noticed in improved response-time while running CPUintensive processes, like anti-virus scans, ripping/burning media. assuming that the die can fit into the package, physically, the multi-core CPU designs require much less printed Circuit Board(PCB) space than multi-chip SMP designs. Also, a dual core processor uses slightly less power than two coupled single core processors, principally because of the decreased power required to drive signals external to the chip.

Bio-grid Cluster

How it works!!! DEMO TIME!!!

OpenMP example When writing a program in C or C++, you must import the library #include<omp.h> to include the openmp library on your program to allow parallelization during compile time. some sample OpenMP runtime Functions: omp_set_num_threads (Sets number of threads) omp_set_max_active_levels (Sets number of active parallel regions)

OpenMP Example Continued.. #include <omp.h> #include <stdio.h> #include <stdlib.h> #define NRA 62 /* number of rows in matrix A */ #define NCA 15 /* number of columns in matrix A */ #define NCB 7 /* number of columns in matrix B */

OpenMP Example Continued.. int main (int argc, char *argv[]) { int tid, nthreads, i, j, k, chunk; double a[nra][nca], multiplied */ /* matrix A to be */ b[nca][ncb], /* matrix B to be multiplied c[nra][ncb]; /* result matrix C */ chunk = 10; */ /* set loop iteration chunk size

OpenMP Example Continued.. /*** Spawn a parallel region explicitly scoping all variables ***/ #pragma omp parallel shared(a,b,c,nthreads,chunk) private(tid,i,j,k) { tid = omp_get_thread_num(); if (tid == 0) { nthreads = omp_get_num_threads(); printf("starting matrix multiple example with %d threads\n",nthreads); printf("initializing matrices...\n"); printf("hello"); }

OpenMP Example Continued.. /*** Initialize matrices ***/ #pragma omp for schedule (static, chunk) for (i=0; i<nra; i++) for (j=0; j<nca; j++) a[i][j]= i+j; #pragma omp for schedule (static, chunk) for (i=0; i<nca; i++) for (j=0; j<ncb; j++) b[i][j]= i*j; #pragma omp for schedule (static, chunk) for (i=0; i<nra; i++) for (j=0; j<ncb; j++) c[i][j]= 0;

OpenMP Example Continued.. /*** Do matrix multiply sharing iterations on outer loop ***/ /*** Display who does which iterations for demonstration purposes ***/ printf("thread %d starting matrix multiply...\n",tid); #pragma omp for schedule (static, chunk) for (i=0; i<nra; i++) { printf("thread=%d did row=%d\n",tid,i); for(j=0; j<ncb; j++) for (k=0; k<nca; k++) c[i][j] += a[i][k] * b[k][j]; } } /*** End of parallel region ***/

OpenMP Example Continued.. /*** Print results ***/ printf("******************************************************\n"); printf("result Matrix:\n"); for (i=0; i<nra; i++) { for (j=0; j<ncb; j++) printf("%6.2f ", c[i][j]); printf("\n"); } printf("******************************************************\n"); printf ("Done.\n"); }

The relevance Using the algorithm derived from solving the Matrix multiplication problem using OpenMP, we can extend this algorithm to solve computational biology problems. Such as developing Algorithms for Identifying Boolean Networks and Related Biological Networks Based on Matrix Multiplication and Fingerprint Function 1

The relevance continued By doing so we can analyze gene expression data Understanding matrix multiplication problem and it can be applied to solve cient algorithms for identifying Boolean networks of bounded indegree and related biological networks, where identification of a Boolean network can be formalized as a problem of identifying many Boolean functions simultaneously. 1

How to extend my project Add MPI library and functions to send task to different processors Extend this algorithm to solve computational biology problems as stated on previous two slides.

Acknowledgements Special thanks to NSF for providing us with this wonderful opportunity to do research under BioGrid Also, Special Acknowledgements to Dr. Chun-His Huang for all his effort, patience and help towards helping me understand and implement the contents of this research! It was a fun summer indeed

Source Citation 1. JOURNAL OF COMPUTATIONAL BIOLOGY Volume 7, Numbers 3/4, 2000 Mary Ann Liebert, Inc. Pp. 331 343 Algorithms for Identifying Boolean Networks and Related Biological Networks Based on Matrix Multiplication and Fingerprint Function TATSUYA AKUTSU,1SATORU MIYANO,a nd SATORU KUHARA1 2. wikipedia.org

Source Citation http://openmp.org/wp/ http://www.compunity.org/training/tutorials/2%20ba sic_concepts_parallelization.pdf https://iwomp.zih.tudresden.de/downloads/2.overview_openmp.pdf