Introduction to Cluster Computing



Similar documents
A Comparison of Distributed Systems: ChorusOS and Amoeba

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

PARALLEL & CLUSTER COMPUTING CS 6260 PROFESSOR: ELISE DE DONCKER BY: LINA HUSSEIN

Virtual Machines.

PARALLEL PROGRAMMING

Scientific Computing Programming with Parallel Objects

Parallel Computing. Benson Muite. benson.

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

Multi-GPU Load Balancing for Simulation and Rendering

Introduction to GPU Programming Languages

nanohub.org An Overview of Virtualization Techniques

Basics of Virtualisation

Tools Page 1 of 13 ON PROGRAM TRANSLATION. A priori, we have two translation mechanisms available:

An Introduction to Parallel Computing/ Programming

Weighted Total Mark. Weighted Exam Mark

picojava TM : A Hardware Implementation of the Java Virtual Machine

GPUs for Scientific Computing

Efficiency of Web Based SAX XML Distributed Processing

Overlapping Data Transfer With Application Execution on Clusters

Building an Inexpensive Parallel Computer

HPC Cloud. Focus on your research. Floris Sluiter Project leader SARA

Intro to Virtualization

Introduction to High Performance Cluster Computing. Cluster Training for UCL Part 1

Introduction to Cloud Computing

Deploying Clusters at Electricité de France. Jean-Yves Berthou

Middleware and Distributed Systems. Introduction. Dr. Martin v. Löwis

Cellular Computing on a Linux Cluster

Parallel Analysis and Visualization on Cray Compute Node Linux

IMCM: A Flexible Fine-Grained Adaptive Framework for Parallel Mobile Hybrid Cloud Applications

Designing and Building Applications for Extreme Scale Systems CS598 William Gropp

Principles and characteristics of distributed systems and environments

Parallel Scalable Algorithms- Performance Parameters

Cost Model: Work, Span and Parallelism. 1 The RAM model for sequential computation:

Chapter 7: Distributed Systems: Warehouse-Scale Computing. Fall 2011 Jussi Kangasharju

Scalability and Classifications

benchmarking Amazon EC2 for high-performance scientific computing

Performance metrics for parallelism

WINDOWS AZURE AND WINDOWS HPC SERVER

Introduction to DISC and Hadoop

10- High Performance Compu5ng

CS550. Distributed Operating Systems (Advanced Operating Systems) Instructor: Xian-He Sun

Data Centric Systems (DCS)

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

Big Data Challenges in Bioinformatics

Cloud Management: Knowing is Half The Battle

International Engineering Journal For Research & Development

Using Mosix for Wide-Area Compuational Resources

How To Install Linux Titan

Programmable Networking with Open vswitch

Code and Process Migration! Motivation!

Porting the Plasma Simulation PIConGPU to Heterogeneous Architectures with Alpaka

Virtualization. Pradipta De

Introduction to grid technologies, parallel and cloud computing. Alaa Osama Allam Saida Saad Mohamed Mohamed Ibrahim Gaber

Hardware Acceleration for Just-In-Time Compilation on Heterogeneous Embedded Systems

Parallel Ray Tracing using MPI: A Dynamic Load-balancing Approach

Virtualization. Types of Interfaces

Quiz for Chapter 1 Computer Abstractions and Technology 3.10

Large Vector-Field Visualization, Theory and Practice: Large Data and Parallel Visualization Hank Childs + D. Pugmire, D. Camp, C. Garth, G.

Adapting scientific computing problems to cloud computing frameworks Ph.D. Thesis. Pelle Jakovits

System requirements for MuseumPlus and emuseumplus

MapReduce and Distributed Data Analysis. Sergei Vassilvitskii Google Research

Welcome to the Jungle

QosCosGrid Grid Technologies and Complex System Modelling

Efficiency Considerations of PERL and Python in Distributed Processing

Multi-core Programming System Overview

The Uintah Framework: A Unified Heterogeneous Task Scheduling and Runtime System

How To Understand And Understand An Operating System In C Programming

Unleashing the Performance Potential of GPUs for Atmospheric Dynamic Solvers

Parallel Computing with MATLAB

Final Project Report. Trading Platform Server

Performance Analysis of Mixed Distributed Filesystem Workloads

Overview on Modern Accelerators and Programming Paradigms Ivan Giro7o

High Performance Computing. Course Notes HPC Fundamentals

PARTNER SEARCH FORM. r. Akiva 34/22. Modiin Illit. Israel Fax. Avtech Scientific

12. Introduction to Virtual Machines

Hadoop-BAM and SeqPig

Big Data Systems CS 5965/6965 FALL 2015

BSC vision on Big Data and extreme scale computing

Multicore Parallel Computing with OpenMP

x86 ISA Modifications to support Virtual Machines

Programming models for heterogeneous computing. Manuel Ujaldón Nvidia CUDA Fellow and A/Prof. Computer Architecture Department University of Malaga

Radar Image Processing with Clusters of Computers

Computing in High- Energy-Physics: How Virtualization meets the Grid

Mizan: A System for Dynamic Load Balancing in Large-scale Graph Processing

Transcription:

Introduction to Cluster Computing Brian Vinter vinter@diku.dk

Overview Introduction Goal/Idea Phases Mandatory Assignments Tools Timeline/Exam General info

Introduction Supercomputers are expensive Workstations are cheap Supercomputers from workstations are cheap (but they may be hard to program) Several approaches to this problem exist

Goal/Idea The goal is that after this class you will be able to solve supercomputing class problems using a 'cheap' cluster solution The idea is that the only real way to learn this is by solving a set of problems - using a cluster

Approach Model classic supercomputer architectures to clusters Port the basic software from the SC architectures Emulate the hardware that might be missing

Phases The class will cover five distinct approaches to cluster computing: Physical Shared Memory (not a cluster actually) Abstract Machines Emulated Massively Parallel Processors Emulating Remote Memory Machines Distributed Shared Memory

Evolution Shared Memory Shared Virtual Memory Parallel Virtual Machine Structured Memory SIMD Remote Memory

Tools All the tools will be available in time (I hope) We will use Java and C for programming In fact the choice of language is free but one language will be recommended for each step Other tools that will be covered are: Parallel Virtual Machines Message Passing Interface Remote Method Invocation Tspaces, PastSet and TMem

Tools Most tools are available in identical or similar form for use with other languages All the tools should be considered experimental and problems should be reported to me ASAP

Litterature Notes Papers I can suggest books as they are needed

Mandatory Assignments There will be five (5) programming assignments, one for each phase we cover In addition there may be a paper only assignment All assignments will be fun!

Assignments This is a class on cluster computing, thus the assignments will be accompanied by a sequential version of the problem, that you can work from Assignments must be documented and a report (there will be a page limit) submitted with the code In the end you only need to hand in 3 assignments Plus perhaps a paper assignment

Assignments

General Idea We cannot hope to implement one SC application within one class let alone five! Most SC applications are based on a computational kernel which is fairly small and which takes up as much as 99.999...% of the total runtime You will port sequential verisons of such kernels to run on clusters To make it all fun we simulates cartoon traps

Road Map Fractals are examples of applications of the type we call embarrassingly parallel A typical example of an compute intensive application with many independent subresults Very simple to write Achieves very good speedup

Road Map

Race Trap Traveling Salesman Problem is a classic supercomputing problem The chosen algorithm is a typical Producer-Consumer approach Is representative for global optimization problems May achieve good speedup

Race Trap

Wind Trap Virtual wind-tunnel An actual scientific application 2D but a 3D model exists that use the same access pattern Represents the pipelined application type Can achieve really good speedup

Wind Trap

Frosty Trap Successive Over Relaxation A very common computational kernel in many scientific applications A typical example of grid-communication applications Can achieve very good speedup

Frosty Trap

Clone Machine Ray tracing is a real computational problem An example of an application that can achieve perfect speedup with small problems and good speedup on large (real) problems

Clone Machine

escience Track escience is a new field at KU Masters of escience (cand scient escience) will start September 1st Starting next year this class will be given in the escience context Thus there are new assignments on their way You can choose to do these assignments instead of the original ones The older ones are well tested the new ones are not!!!

Tumor treatment Monte Carlo simulations are examples of applications of the type we call embarrassingly parallel A typical example of an compute intensive application with many independent subresults Very simple to write Achieves very good speedup

Tumor treatment

Tumor treatment

Protein Folding Protein is an actual supercomputing problem The chosen simplifications and algorithm is a typical Producer-Consumer approach Is representative for global optimization problems May achieve good speedup

Protein folding

More to come Windtrap and frosttrap may not change much Clone will probably be replaced with a particle simulation of sorts

Exam 3 of your mandatory assignments written into one delivery Plus perhaps a paper only assignment