Project18’s Communication Drawing Design By: Camilo A. Silva BIOinformatics Summer 2008.

Slides:



Advertisements
Similar presentations
Parallel List Ranking Advanced Algorithms & Data Structures Lecture Theme 17 Prof. Dr. Th. Ottmann Summer Semester 2006.
Advertisements

Processes Management.
MapReduce.
Practical techniques & Examples
Loops (Part 1) Computer Science Erwin High School Fall 2014.
Loops in LabVIEW (while,for and case)
Reference: / MPI Program Structure.
MPI Program Structure Self Test with solution. Self Test 1.How would you modify "Hello World" so that only even-numbered processors print the greeting.
Getting Started with MPI Self Test with solution.
CS 106 Introduction to Computer Science I 11 / 09 / 2007 Instructor: Michael Eckmann.
Point-to-Point Communication Self Test with solution.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Collective Communications Self Test with solution.
Distributed Memory Programming with MPI. What is MPI? Message Passing Interface (MPI) is an industry standard message passing system designed to be both.
Fault-tolerant Adaptive Divisible Load Scheduling Xuan Lin, Sumanth J. V. Acknowledge: a few slides of DLT are from Thomas Robertazzi ’ s presentation.
A. Frank - P. Weisberg Operating Systems Introduction to Cooperating Processes.
1 Lab Session-III CSIT-120 Spring 2001 Revising Previous session Data input and output While loop Exercise Limits and Bounds GOTO SLIDE 13 Lab session.
Advanced Topics in Algorithms and Data Structures 1 Two parallel list ranking algorithms An O (log n ) time and O ( n log n ) work list ranking algorithm.
Lecture 8 Epidemic communication, Server implementation.
A Brief Look At MPI’s Point To Point Communication Brian T. Smith Professor, Department of Computer Science Director, Albuquerque High Performance Computing.
CS 179: GPU Programming Lecture 20: Cross-system communication.
1 Lab Session-III CSIT-120 Fall 2000 Revising Previous session Data input and output While loop Exercise Limits and Bounds Session III-B (starts on slide.
L15: Putting it together: N-body (Ch. 6) October 30, 2012.
Concurrency, Mutual Exclusion and Synchronization.
Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Chapter 5 Working with Images Starting Out with Games & Graphics in.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Indexed and Relative File Processing
Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection Network Structure.
Message Passing Programming Model AMANO, Hideharu Textbook pp. 140-147.
Summary of MPI commands Luis Basurto. Large scale systems Shared Memory systems – Memory is shared among processors Distributed memory systems – Each.
E-science grid facility for Europe and Latin America E2GRIS1 Gustavo Miranda Teixeira Ricardo Silva Campos Laboratório de Fisiologia Computacional.
Functions CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
CS 591 x I/O in MPI. MPI exists as many different implementations MPI implementations are based on MPI standards MPI standards are developed and maintained.
Chapter 7 -1 CHAPTER 7 PROCESS SYNCHRONIZATION CGS Operating System Concepts UCF, Spring 2004.
CSCI-455/522 Introduction to High Performance Computing Lecture 4.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 3: Process-Concept.
Message-Passing Computing Chapter 2. Programming Multicomputer Design special parallel programming language –Occam Extend existing language to handle.
Chapter 11Java: an Introduction to Computer Science & Programming - Walter Savitch 1 Chapter 11 l Basics of Recursion l Programming with Recursion Recursion.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
Hashtables. An Abstract data type that supports the following operations: –Insert –Find –Remove Search trees can be used for the same operations but require.
ECE 353 Lab 2 Pipeline Simulator Additional Material.
1 BİL 542 Parallel Computing. 2 Message Passing Chapter 2.
CPSC 252 Hashing Page 1 Hashing We have already seen that we can search for a key item in an array using either linear or binary search. It would be better.
CSCI-455/552 Introduction to High Performance Computing Lecture 23.
Introduction to Parallel Programming at MCSR Message Passing Computing –Processes coordinate and communicate results via calls to message passing library.
UniMAP Sem2-10/11 DKT121: Fundamental of Computer Programming1 Arrays.
Review of Computer System Organization. Computer Startup For a computer to start running when it is first powered up, it needs to execute an initial program.
Project18 Communication Design + Parallelization Camilo A Silva BIOinformatics Summer 2008.
1 Introduction 1. Why Data Structures? 2. What AreData Structure? 3. Phases of Software Development 4. Precondition and Postcondition 5. Examples.
Reading from a file, Sorting, and a little Searching Data Structures and Algorithms CS 244 Brent M. Dingle, Ph.D. Department of Mathematics, Statistics,
Finding Discriminating DNA Probe Sequences by Implementing a Parallelized Solution in a Cluster REU Camilo A. Silva Professor and Advisor: Dr. S. Masoud.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
1 Chapter 11 Global Properties (Distributed Termination)
Parallel Algorithms & Implementations: Data-Parallelism, Asynchronous Communication and Master/Worker Paradigm FDI 2007 Track Q Day 2 – Morning Session.
CS Class 04 Topics  Selection statement – IF  Expressions  More practice writing simple C++ programs Announcements  Read pages for next.
Process Control Management Prepared by: Dhason Operating Systems.
CHAPTER 51 LINKED LISTS. Introduction link list is a linear array collection of data elements called nodes, where the linear order is given by means of.
Chapter 5 Arrays Copyright © 2016 Pearson, Inc. All rights reserved.
CMPT 120 Topic: Searching – Part 2 and Intro to Time Complexity (Algorithm Analysis)
CIS 115 Slingshot Academy / cis115.com
Lecture Topics: 11/1 Processes Process Management
EEC 688/788 Secure and Dependable Computing
Processor Management Damian Gordon.
EEC 688/788 Secure and Dependable Computing
Introduction to parallelism and the Message Passing Interface
EEC 688/788 Secure and Dependable Computing
Arrays & Loops.
Processor Management Damian Gordon.
Arrays & Loops.
Presentation transcript:

project18’s Communication Drawing Design By: Camilo A. Silva BIOinformatics Summer 2008

Objective Find out what type of MPI communication design could be used for project18 Determine which MPI functions could be used to accomplish the above objective

Communication Design What is needed? What is needed? We need all nodes to have the basic data in order to run the program prior execution We need all nodes to have the basic data in order to run the program prior execution We need a “master/slave” model We need a “master/slave” model All data at the end must be collected and sent back to the master node All data at the end must be collected and sent back to the master node Our communication flow and data computation should be dynamic by using all the resources. Our communication flow and data computation should be dynamic by using all the resources. E.g. If a processor completes a search it needs to continue with the next data computation independently—without needing to wait for other processors to finish E.g. If a processor completes a search it needs to continue with the next data computation independently—without needing to wait for other processors to finish There needs to be a communication flow with the master node that keeps track of the status of the completion of the computation by gathering information from the slave nodes There needs to be a communication flow with the master node that keeps track of the status of the completion of the computation by gathering information from the slave nodes An anti “dead-lock” mechanism must be implemented An anti “dead-lock” mechanism must be implemented

Blue print The master node is in charge of coordinating the processes and keeping track of the status of each process of each node. The slave nodes are following the coordination of the master node. Their processes should be independent. They should report their progress to the Master node in an effective manner. At the beginning of the program, all the nodes need to have essential data needed for the program to run. At the end of the program the output of each node needs to be collected as one; and sent to the master node for storage and access.

At the beginning… Let’s assume that all the nodes have the all the data needed for the project18 program to run successfully. 1.When the program is run from the cluster GCB or nay other, the user needs to indicate which genomes will be compared: genome1 vs. genome2 2.That info will be sent to all nodes as a collective function: MPI_Bcast() MPI_Bcast(&nameOfGeno me1, 20, MPI_CHAR, 0, MPI_COMM_WORLD);

Initialization The Master node will then orchestrate and administrate the computation amongst the nodes: 1.Since all nodes have the same data and info each node will be given a specific range of indexes to process 2.Such indexes are base locations of genome1 to be contrasted with genome2 1.Here the communication would be point-to-point due to the fact that the master node is communicating with each single node independently 3.Each slave node will compute accordingly to their specified distribution of indexes. The results shall be stored in a text file within each node.

Initialization Example Genome1=“aaaaaaacccccccgggggggtttttttcccccccaaaaaaagggggggtttttttcccccc…” … This is a visualization of the array of indexes to be distributed to each single node. In this case, we are using a range of seven (7) bases per process. In this example, let’s assume that the search range of the distributing probe is 14. Thus, if node 1 will be computing the results of the first 6 bases, the iterations should be as follows: 1.Find pattern “aaaaaaaccccccc” in genome2 2.2 nd pattern “aaaaaacccccccg” 3.Etc… until “acccccccgggggg” The results of each single node shall be stored on disk as a text file X 3 ?

Master node as receiver and manager As some of you may have predicted, the master node will be receiving a lot of communication from all the different nodes. This type of communication is point-to-point and the function used to accomplish this is MPI_Recv() The master node acts as a manager. It will be receiving completion codes from each node, and it shall record such completions appropriately. After recording the status of completion of a node, the master node will be in charge of administering and orchestrating the next process for a node. This will be done by creating a simple algorithm involving int arrays just as shown previously.

Keeping trustworthy accountability The master node needs to know the completion status of a process in order to keep accountability of completion of each node The master node needs to know the completion status of a process in order to keep accountability of completion of each node The master node will determine based on the communication sent by the node if all processes were completed. The master node will determine based on the communication sent by the node if all processes were completed. –This can be done by implementing a simple completion counter in each node that will be updated after each search of the discriminating probe. This int counter will be returned to the master node which will verify its count to be the same as the index range determined. –Such result could be stored in various formats as explained in the following slide. By having an accountable system the master node will be able to resubmit a job that was not completed or that did not finish By having an accountable system the master node will be able to resubmit a job that was not completed or that did not finish

Tracking down completion status range N1 N2 N3 N4 N5 N6 N7 next This is the completion code. It will be the same integer as the respective current process (status[0][X]) when it is not yet completed. If there is an error found, it will receive the value of zero (0). Let’s assume that N3 was the first one to complete the process. Let’s suppose it completed the searches of the indexes successfully, thus, an int count = 7 shall be returned in an MPI_Recv() to the master node. Int status[][]

Tracking down completion status Int range N1 N2 N3 N4 N5 N6 N7 next If(Check_errors()){…check on error and determine what to do} Else if (no errors in completion){report completion and assign new job} When a process is successfully completed, the data of status[][] is modified accordingly and the next process is dynamically assigned to the node that is ready to compute.

Collecting the data Master Node Using MPI-IO

Issues to consider… Bottlenecking and “dead-locking” Bottlenecking and “dead-locking” What’s the solution: What’s the solution: Asynchronous communication strategies Asynchronous communication strategies Non-blocking strategies Non-blocking strategies

What’s next? Learn about MPI-IO Study asynchronous communications and non-blocking communication in order to prevent bottlenecking and dead-locking. Start programming just for fun!