Introduction to Cluster Computing

Similar documents
Parallel & Cluster Computing. cs 6260 professor: elise de doncker by: lina hussein

Lecture 9: MIMD Architectures

Lecture 9: MIMD Architectures

06-Dec-17. Credits:4. Notes by Pritee Parwekar,ANITS 06-Dec-17 1

Lecture 9: MIMD Architecture

Outline. Definition of a Distributed System Goals of a Distributed System Types of Distributed Systems

M. Roehrig, Sandia National Laboratories. Philipp Wieder, Research Centre Jülich Nov 2002

Chapter 18 Parallel Processing

Cluster Network Products

Our new HPC-Cluster An overview

High Performance Computing Software Development Kit For Mac OS X In Depth Product Information

6.1 Multiprocessor Computing Environment

30 Nov Dec Advanced School in High Performance and GRID Computing Concepts and Applications, ICTP, Trieste, Italy

Real Parallel Computers

Parallel Programming with MPI

The Use of Cloud Computing Resources in an HPC Environment

A Study of High Performance Computing and the Cray SV1 Supercomputer. Michael Sullivan TJHSST Class of 2004

Real Parallel Computers

Distributed Operating Systems Fall Prashant Shenoy UMass Computer Science. CS677: Distributed OS

Distributed and Operating Systems Spring Prashant Shenoy UMass Computer Science.

Advanced School in High Performance and GRID Computing November Introduction to Grid computing.

PBS PROFESSIONAL VS. MICROSOFT HPC PACK

Distributed Operating Systems Spring Prashant Shenoy UMass Computer Science.

MPI versions. MPI History

Introduction to High-Performance Computing

Post-K Supercomputer Overview. Copyright 2016 FUJITSU LIMITED

AT76.09 Digital Image Processing in Remote Sensing using C Language

Reduces latency and buffer overhead. Messaging occurs at a speed close to the processors being directly connected. Less error detection

Fujitsu s Approach to Application Centric Petascale Computing

OPERATING SYSTEM. Functions of Operating System:

Chapter 18. Parallel Processing. Yonsei University

PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM

Low Cost Supercomputing. Rajkumar Buyya, Monash University, Melbourne, Australia. Parallel Processing on Linux Clusters

IBM Spectrum NAS. Easy-to-manage software-defined file storage for the enterprise. Overview. Highlights

Top500 Supercomputer list

COSC 6385 Computer Architecture - Multi Processor Systems

Architectural Support. Processes. OS Structure. Threads. Scheduling. CSE 451: Operating Systems Spring Module 28 Course Review

The MOSIX Scalable Cluster Computing for Linux. mosix.org

High Performance Computing. What is it used for and why?

Chapter 1: Introduction

OPERATING SYSTEMS UNIT - 1

Clusters. Rob Kunz and Justin Watson. Penn State Applied Research Laboratory

MPI History. MPI versions MPI-2 MPICH2

Overview. CS 472 Concurrent & Parallel Programming University of Evansville

Opera&ng Systems: Principles and Prac&ce. Tom Anderson

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

What are Clusters? Why Clusters? - a Short History

Grid Computing Fall 2005 Lecture 5: Grid Architecture and Globus. Gabrielle Allen

Distributed Systems. Thoai Nam Faculty of Computer Science and Engineering HCMC University of Technology

Experience the GRID Today with Oracle9i RAC

Programming with MPI. Pedro Velho

Lecture Topics. Announcements. Today: Advanced Scheduling (Stallings, chapter ) Next: Deadlock (Stallings, chapter

Aggregation of Real-Time System Monitoring Data for Analyzing Large-Scale Parallel and Distributed Computing Environments

Current Status of the Next- Generation Supercomputer in Japan. YOKOKAWA, Mitsuo Next-Generation Supercomputer R&D Center RIKEN

Chapter 1: Introduction

HPC learning using Cloud infrastructure

Parallel Processing. Computer Architecture. Computer Architecture. Outline. Multiple Processor Organization

DISTRIBUTED SYSTEMS [COMP9243] Lecture 3b: Distributed Shared Memory DISTRIBUTED SHARED MEMORY (DSM) DSM consists of two components:

InfoBrief. Platform ROCKS Enterprise Edition Dell Cluster Software Offering. Key Points

Work Queue + Python. A Framework For Scalable Scientific Ensemble Applications

Programming with MPI on GridRS. Dr. Márcio Castro e Dr. Pedro Velho

represent parallel computers, so distributed systems such as Does not consider storage or I/O issues

CA485 Ray Walshe Google File System

GFS: The Google File System

10 Parallel Organizations: Multiprocessor / Multicore / Multicomputer Systems

MOHA: Many-Task Computing Framework on Hadoop

Operating Systems Fundamentals. What is an Operating System? Focus. Computer System Components. Chapter 1: Introduction

Resource Management on a Mixed Processor Linux Cluster. Haibo Wang. Mississippi Center for Supercomputing Research

Introduction. Distributed Systems. Introduction. Introduction. Instructor Brian Mitchell - Brian

Day 9: Introduction to CHTC

Distributed Systems LEEC (2006/07 2º Sem.)

Distributed Computing: PVM, MPI, and MOSIX. Multiple Processor Systems. Dr. Shaaban. Judd E.N. Jenne

Enterprise print management in VMware Horizon

MIMD Overview. Intel Paragon XP/S Overview. XP/S Usage. XP/S Nodes and Interconnection. ! Distributed-memory MIMD multicomputer

Non-uniform memory access machine or (NUMA) is a system where the memory access time to any region of memory is not the same for all processors.

Introduction to Grid Computing

On-Demand Supercomputing Multiplies the Possibilities

Cray RS Programming Environment

ADAPTIVE AND DYNAMIC LOAD BALANCING METHODOLOGIES FOR DISTRIBUTED ENVIRONMENT

Most real programs operate somewhere between task and data parallelism. Our solution also lies in this set.

Motivation. Threads. Multithreaded Server Architecture. Thread of execution. Chapter 4

ACCRE High Performance Compute Cluster

Chapter 4: Threads. Chapter 4: Threads. Overview Multicore Programming Multithreading Models Thread Libraries Implicit Threading Threading Issues

Programming Models for Supercomputing in the Era of Multicore

Cluster Distributions Review

Operating System Overview. Chapter 2

High Performance Computing (HPC) Prepared By: Abdussamad Muntahi Muhammad Rahman

GFS: The Google File System. Dr. Yingwu Zhu

Distributed and Cloud Computing

Spring It takes a really bad school to ruin a good student and a really fantastic school to rescue a bad student. Dennis J.

Topics. Operating System. What is an Operating System? Let s Get Started! What is an Operating System? Where in the Book are we?

The Cray Rainier System: Integrated Scalar/Vector Computing

An Introduction to GPFS

Parallel and High Performance Computing CSE 745

Performance measurement. SMD149 - Operating Systems - Performance and processor design. Introduction. Important trends affecting performance issues

Lecture 1: January 22

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

IOS: A Middleware for Decentralized Distributed Computing

Topics. Operating System I. What is an Operating System? Let s Get Started! What is an Operating System? OS History.

Introduction to MPI. EAS 520 High Performance Scientific Computing. University of Massachusetts Dartmouth. Spring 2014

Transcription:

Introduction to Cluster Computing Prabhaker Mateti Wright State University Dayton, Ohio, USA

Overview High performance computing High throughput computing NOW, HPC, and HTC Parallel algorithms Software technologies Mateti/Cluster Compu 2

High Performance Computing CPU clock frequency Parallel computers Alternate technologies Optical Bio Molecular Mateti/Cluster Compu 3

Parallel Computing Traditional supercomputers SIMD, MIMD, pipelines Tightly coupled shared memory Bus level connections Expensive to buy and to maintain Cooperating networks of computers Mateti/Cluster Compu 4

NOW Computing Workstation Network Operating System Cooperation Distributed (Application) Programs Mateti/Cluster Compu 5

Traditional Supercomputers Very high starting cost Expensive hardware Expensive software High maintenance Expensive to upgrade Mateti/Cluster Compu 6

Traditional Supercomputers No one is predicting their demise, but Mateti/Cluster Compu 7

*-Computing Pervasive Computing Ubiquitous Computing Grid Computing Internet of Things Cloud Computing Mateti/Cluster Compu 8

Computational Grids Grids are persistent environments that enable software applications to integrate instruments, displays, computational and information resources that are managed by diverse organizations in widespread locations. Mateti/Cluster Compu 9

Computational Grids Individual nodes can be supercomputers, or NOW High availability Accommodate peak usage LAN : Internet :: NOW : Grid Mateti/Cluster Compu 10

NOW Computing Workstation Network Operating System Cooperation Distributed+Parallel Programs Mateti/Cluster Compu 11

Workstation Operating System Authenticated users Protection of resources Multiple processes Preemptive scheduling Virtual Memory Hierarchical file systems Network centric Mateti/Cluster Compu 12

Ethernet 10 Mbps Network 10 Mbps obsolete 100 Mbps almost obsolete 1000 Mbps standard Protocols TCP/IP Protocols Mateti/Cluster Compu 13

Cooperation Workstations are personal Use by others slows you down Increases privacy risks Decreases security Willing to share Willing to trust Mateti/Cluster Compu 14

Distributed Programs Spatially distributed programs A part here, a part there, Parallel Synergy Temporally distributed programs Finish the work of your great grand father Compute half today, half tomorrow Combine the results at the end Migratory programs Have computation, will travel Mateti/Cluster Compu 15

SPMD Single program, multiple data Contrast with SIMD Same program runs on multiple nodes May or may not be lock-step Nodes may be of different speeds Barrier synchronization Mateti/Cluster Compu 16

Conceptual Bases of Distributed+Parallel Programs Spatially distributed programs Message passing Temporally distributed programs Shared memory Migratory programs Serialization of data and programs Mateti/Cluster Compu 17

(Ordinary) Shared Memory Simultaneous read/write access Read : read Read : write Write : write Semantics not clean Even when all processes are on the same processor Mutual exclusion Mateti/Cluster Compu 18

Distributed Shared Memory Simultaneous read/write access by spatially distributed processors Abstraction layer of an implementation built from message passing primitives Semantics not so clean Mateti/Cluster Compu 19

Conceptual Bases for Migratory programs Same CPU architecture X86, PowerPC, MIPS, SPARC,, JVM Same OS + environment Be able to checkpoint suspend, and then resume computation without loss of progress Mateti/Cluster Compu 20

Clusters of Workstations Inexpensive alternative to traditional supercomputers High availability Lower down time Easier access Development platform with production runs on traditional supercomputers Mateti/Cluster Compu 21

Cluster Characteristics Commodity off the shelf hardware Networked Common Home Directories Open source software and OS Support message passing programming Batch scheduling of jobs Process migration Mateti/Cluster Compu 22

Why are Linux Clusters Good? Low initial implementation cost Inexpensive PCs Standard components and Networks Free Software: Linux, GNU, MPI, PVM Scalability: can grow and shrink Familiar technology, easy for user to adopt the approach, use and maintain system. Mateti/Cluster Compu 23

Example Clusters July 1999 1000 nodes Used for genetic algorithm research by John Koza, Stanford University www.genetic- programming.com/ Mateti/Cluster Compu 24

Largest (2007) Cluster System IBM BlueGene, 2007 DOE/NNSA/LLNL Memory: 73728 GB OS: CNK/SLES 9 Interconnect: Proprietary PowerPC 440 106,496 nodes 478.2 Tera FLOPS on LINPACK Mateti/Cluster Compu 25

OS Share of Top 500 OS Count Share Rmax (GF) Rpeak (GF) Processor Linux 426 85.20% 4897046 7956758 970790 Windows 6 1.20% 47495 86797 12112 Unix 30 6.00% 408378 519178 73532 BSD 2 0.40% 44783 50176 5696 Mixed 34 6.80% 1540037 1900361 580693 MacOS 2 0.40% 28430 44816 5272 Totals 500 100% 6966169 10558086 1648095 http://www.top500.org/stats/list/30/osfam Nov 2007 Mateti/Cluster Compu 26

Top 500 Computer Systems http://top500.org/lists/2015/06/ http://top500.org/featured/top-systems/ Mateti/Cluster Compu 27

Development of Distributed+Parallel Programs New code + algorithms Old programs rewritten in new languages that have distributed and parallel primitives Parallelize legacy code Mateti/Cluster Compu 28

New Programming Languages With distributed and parallel primitives Functional languages Logic languages Data flow languages Mateti/Cluster Compu 29

Parallel Programming Languages based on the shared-memory model based on the distributed-memory model parallel object-oriented languages parallel functional programming languages concurrent logic languages Mateti/Cluster Compu 30

Condor Cooperating workstations: come and go. Migratory programs Checkpointing Remote IO Resource matching http://www.cs.wisc.edu/condor/ Mateti/Cluster Compu 31

Portable Batch System (PBS) Prepare a.cmd file naming the program and its arguments properties of the job the needed resources Submit.cmd to the PBS Job Server: qsub command Routing and Scheduling: The Job Server examines.cmd details to route the job to an execution queue. allocates one or more cluster nodes to the job communicates with the Execution Servers (mom's) on the cluster to determine the current state of the nodes. When all of the needed are allocated, passes the.cmd on to the Execution Server on the first node allocated (the "mother superior"). Execution Server will login on the first node as the submitting user and run the.cmd file in the user's home directory. Run an installation defined prologue script. Gathers the job's output to the standard output and standard error It will execute installation defined epilogue script. Delivers stdout and stderr to the user. Mateti/Cluster Compu 32

TORQUE, an open source PBS Tera-scale Open-source Resource and QUEue manager (TORQUE) enhances OpenPBS Fault Tolerance Additional failure conditions checked/handled Node health check script support Scheduling Interface Scalability Significantly improved server to MOM communication model Ability to handle larger clusters (over 15 TF/2,500 processors) Ability to handle larger jobs (over 2000 processors) Ability to support larger server messages Logging http://www.supercluster.org/projects/torque/ Mateti/Cluster Compu 33

OpenMP for shared memory Distributed shared memory API User-gives hints as directives to the compiler http://www.openmp.org Mateti/Cluster Compu 34

Message Passing Libraries Programmer is responsible for initial data distribution, synchronization, and sending and receiving information Parallel Virtual Machine (PVM) Message Passing Interface (MPI) Bulk Synchronous Parallel model (BSP) Mateti/Cluster Compu 35

BSP: Bulk Synchronous Parallel model Divides computation into supersteps In each superstep a processor can work on local data and send messages. At the end of the superstep, a barrier synchronization takes place and all processors receive the messages which were sent in the previous superstep Mateti/Cluster Compu 36

BSP Library Small number of subroutines to implement process creation, remote data access, and bulk synchronization. Linked to C, Fortran, programs Mateti/Cluster Compu 37

BSP: Bulk Synchronous Parallel model http://www.bsp-worldwide.org/ Book: Rob H. Bisseling, Parallel Scientific Computation: A Structured Approach using BSP and MPI, Oxford University Press, 2004, 324 pages, ISBN 0-19-852939-2. Mateti/Cluster Compu 38

PVM, and MPI Message passing primitives Can be embedded in many existing programming languages Architecturally portable Open-sourced implementations Mateti/Cluster Compu 39

Parallel Virtual Machine (PVM) PVM enables a heterogeneous collection of networked computers to be used as a single large parallel computer. Older than MPI Large scientific/engineering user community http://www.csm.ornl.gov/pvm/ Mateti/Cluster Compu 40

Message Passing Interface (MPI) http://www-unix.mcs.anl.gov/mpi/ MPI-2.0 http://www.mpi-forum.org/docs/ MPICH: www.mcs.anl.gov/mpi/mpich/ by Argonne National Laboratory and Missisippy State University LAM: http://www.lam-mpi.org/ http://www.open-mpi.org/ Mateti/Cluster Compu 41

Kernels Etc Mods for Clusters Dynamic load balancing Transparent process-migration Kernel Mods http://openmosix.sourceforge.net/ http://kerrighed.org/ http://openssi.org/ http://ci-linux.sourceforge.net/ CLuster Membership Subsystem ("CLMS") and Internode Communication Subsystem http://www.gluster.org/ GlusterFS: Clustered File Storage of peta bytes. GlusterHPC: High Performance Compute Clusters http://boinc.berkeley.edu/ Open-source software for volunteer computing and grid computing Condor clusters Mateti/Cluster Compu 42

More Information on Clusters http://www.ieeetfcc.org/ IEEE Task Force on Cluster Computing http://lcic.org/ a central repository of links and information regarding Linux clustering, in all its forms. www.beowulf.org resources for of clusters built on commodity hardware deploying Linux OS and open source software. http://linuxclusters.com/ Authoritative resource for information on Linux Compute Clusters and Linux High Availability Clusters. http://www.linuxclustersinstitute.org/ To provide education and advanced technical training for the deployment and use of Linux-based computing clusters to the high-performance computing community worldwide. Mateti/Cluster Compu 43

References Cluster Hardware Setup http://www.phy.duke.edu/~rgb/beowulf/beo wulf_book/beowulf_book.pdf PVM http://www.csm.ornl.gov/pvm/ MPI http://www.open-mpi.org/ Condor http://www.cs.wisc.edu/condor/ Mateti/Cluster Compu 44