1 Short Course on Grid Computing Jornadas Chilenas de Computación 2010 INFONOR-CHILE 2010 November 15th - 19th, 2010 Antofagasta, Chile Dr. Barry Wilkinson.

Slides:



Advertisements
Similar presentations
Three types of remote process invocation
Advertisements

European Research Network on Foundations, Software Infrastructures and Applications for large scale distributed, GRID and Peer-to-Peer Technologies Experiences.
MINJAE HWANG THAWAN KOOBURAT CS758 CLASS PROJECT FALL 2009 Extending Task-based Programming Model beyond Shared-memory Systems.
A Dynamic World, what can Grids do for Multi-Core computing? Daniel Goodman, Anne Trefethen and Douglas Creager
Introduction CSCI 444/544 Operating Systems Fall 2008.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Toward using higher-level abstractions to teach Parallel Computing 5/20/2013 (c) Copyright 2013 Clayton S. Ferner, UNC Wilmington1 Clayton Ferner, University.
Types of Parallel Computers
Reference: Message Passing Fundamentals.
A Grid Parallel Application Framework Jeremy Villalobos PhD student Department of Computer Science University of North Carolina Charlotte.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 Short Course on Grid Computing Jornadas Chilenas de Computación 2010 INFONOR-CHILE 2010 November 15th - 19th, 2010 Antofagasta, Chile Dr. Barry Wilkinson.
Parallel Programming Models and Paradigms
1 Teaching Grid Computing across North Carolina and Beyond Dr. Clayton Ferner University of North Carolina Wilmington Dr. Barry Wilkinson University of.
Tile Reduction: the first step towards tile aware parallelization in OpenMP Ge Gan Department of Electrical and Computer Engineering Univ. of Delaware.
1 UNC-Charlotte’s Grid Computing “Seeds” framework 1 © 2011 Jeremy Villalobos /B. Wilkinson Fall 2011 Grid computing course. Slides10-1.ppt Modification.
Diffusion scheduling in multiagent computing system MotivationArchitectureAlgorithmsExamplesDynamics Robert Schaefer, AGH University of Science and Technology,
1 Short Course on Grid Computing Jornadas Chilenas de Computación 2010 INFONOR-CHILE 2010 November 15th - 19th, 2010 Antofagasta, Chile Dr. Barry Wilkinson.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Project Proposal (Title + Abstract) Due Wednesday, September 4, 2013.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
Exercise problems for students taking the Programming Parallel Computers course. Janusz Kowalik Piotr Arlukowicz Tadeusz Puzniakowski Informatics Institute.
Pattern Programming Barry Wilkinson University of North Carolina Charlotte CCI Friday Seminar Series April 13 th, 2012.
OpenMP in a Heterogeneous World Ayodunni Aribuki Advisor: Dr. Barbara Chapman HPCTools Group University of Houston.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
 Introduction to Operating System Introduction to Operating System  Types Of An Operating System Types Of An Operating System  Single User Single User.
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat.
1 " Teaching Parallel Design Patterns to Undergraduates in Computer Science” Panel member SIGCSE The 45 th ACM Technical Symposium on Computer Science.
ITCS 4/5145 Cluster Computing, UNC-Charlotte, B. Wilkinson, 2006outline.1 ITCS 4145/5145 Parallel Programming (Cluster Computing) Fall 2006 Barry Wilkinson.
Pattern Programming Barry Wilkinson University of North Carolina Charlotte Computer Science Colloquium University of North Carolina at Greensboro September.
Introduction, background, jargon Jakub Yaghob. Literature T.G.Mattson, B.A.Sanders, B.L.Massingill: Patterns for Parallel Programming, Addison- Wesley,
Loosely Coupled Parallelism: Clusters. Context We have studied older archictures for loosely coupled parallelism, such as mesh’s, hypercubes etc, which.
MATRIX MULTIPLY WITH DRYAD B649 Course Project Introduction.
1 " Teaching Parallel Design Patterns to Undergraduates in Computer Science” Panel member SIGCSE The 45 th ACM Technical Symposium on Computer Science.
1 Short Course on Grid Computing Jornadas Chilenas de Computación 2010 INFONOR-CHILE 2010 November 15th - 19th, 2010 Antofagasta, Chile Dr. Barry Wilkinson.
ITCS 4/5145 Parallel Programming, UNC-Charlotte, B. Wilkinson, Dec 26, 2012outline.1 ITCS 4145/5145 Parallel Programming Spring 2013 Barry Wilkinson Department.
1 "Workshop 31: Developing a Hands-on Undergraduate Parallel Programming Course with Pattern Programming SIGCSE The 44 th ACM Technical Symposium.
Lecture 3 : Performance of Parallel Programs Courtesy : MIT Prof. Amarasinghe and Dr. Rabbah’s course note.
2.1 Functions. Functions in Mathematics f x y z f (x, y, z) Domain Range.
Pattern Programming with the Seeds Framework © 2013 B. Wilkinson/Clayton Ferner SIGCSE 2013 Workshop 31 intro.ppt Modification date: Feb 17,
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
NGS computation services: APIs and.
Computer Science and Engineering Parallel and Distributed Processing CSE 8380 April 28, 2005 Session 29.
Lecture #4 Introduction to Data Parallelism and MapReduce CS492 Special Topics in Computer Science: Distributed Algorithms and Systems.
COMP7330/7336 Advanced Parallel and Distributed Computing MapReduce - Introduction Dr. Xiao Qin Auburn University
Suzaku Pattern Programming Framework (a) Structure and low level patterns © 2015 B. Wilkinson Suzaku.pptx Modification date February 22,
A Web Based Job Submission System for a Physics Computing Cluster David Jones IOP Particle Physics 2004 Birmingham 1.
Pattern Programming PP-1.1 ITCS 4/5145 Parallel Programming UNC-Charlotte, B. Wilkinson, August 29A, 2013 PatternProg-1.
Pattern Programming Seeds Framework Notes on Assignment 1 PP-2.1 ITCS 4/5145 Parallel Programming UNC-Charlotte, B. Wilkinson, August 30, 2012 PatternProg-2.
A Parallel Communication Infrastructure for STAPL
Dr. Barry Wilkinson University of North Carolina Charlotte
Pattern Parallel Programming
Constructing a system with multiple computers or processors
NGS computation services: APIs and Parallel Jobs
Advanced Operating Systems
Using compiler-directed approach to create MPI code automatically
Dr. Barry Wilkinson © B. Wilkinson Modification date: Jan 9a, 2014
Pattern Parallel Programming
Programming with Parallel Design Patterns
B. Wilkinson/Clayton Ferner Seeds.ppt Modification date August
Constructing a system with multiple computers or processors
Constructing a system with multiple computers or processors
Pipeline Pattern ITCS 4/5145 Parallel Computing, UNC-Charlotte, B. Wilkinson, 2012 slides5.ppt Oct 24, 2013.
Pipelined Pattern This pattern is implemented in Seeds, see
Constructing a system with multiple computers or processors
© B. Wilkinson/Clayton Ferner SIGCSE 2013 Workshop 31 session2a
Dr. Barry Wilkinson University of North Carolina Charlotte
By Brandon, Ben, and Lee Parallel Computing.
Monte Carlo Methods A so-called “embarrassingly parallel” computation as it decomposes into obviously independent tasks that can be done in parallel without.
Pattern Programming Seeds Framework Workpool Assignment 1
Presentation transcript:

1 Short Course on Grid Computing Jornadas Chilenas de Computación 2010 INFONOR-CHILE 2010 November 15th - 19th, 2010 Antofagasta, Chile Dr. Barry Wilkinson University of North Carolina Charlotte Oct 13, 2010 © Jeremy Villalobos/Barry Wilkinson Session 4 UNC-Charlotte’s Grid Computing “Seeds” framework 1

2 Acknowledgement The following slides based upon materials provided by Jeremy Villalobos, PhD student Department of Computer Science, University of North Carolina at Charlotte. and describes his Grid computing framework called Seeds.

Overview Running Parallel Applications on the Grid The Seeds Framework Skeletons and Patterns 3

Opportunities in Running Parallel Application on The Grid Aggregate multiple computer clusters to work on the same problem and Solve problems faster Or solve bigger problem Reduce electricity use Or postpone future equipment acquisition 4

Challenges in Running Parallel Application on The Grid Heterogeneity Connectivity Security Programmability Performance (Scalability) 5

A Distributed Environment 6

MPI and OpenMP OpenMP (Shared Memory) Easy to program High performance Does not scale MPI (Distributed Memory) Hard to program High performance Can scale 7

Seeds Framework Overview Specifications Deployment Network Creation Communication 8

Seeds Specifications Topology: Network Overlay/Hybrid Network Connectivity: Direct, Through NAT, and Shared memory Programming Style: Skeleton/Pattern Based Parallel Memory Management: Message- passing with use of shared memory if available Self-deployment: Using Java Cog Kit and Globus Load-balancing: expected on the patterns 9

Seeds Development Layers Basic Intended for programmers that have basic parallel computing background Based on Skeletons and patterns Advanced: Used to add or extend functionality like: Create new patterns Optimize existing patterns or Adapt existing pattern to non-functional requirements specific to the application Expert: Used to provide basic services: Deployment Security Communication/Connectivity Changes in the environment 10

Deployment Scheduling Deployment in Globus – Use of Globus GSIFTP to transfer the “seed” folder – Use of GRAM to submit the job to run the seed nodes – Network creation starts Deployment in SSH also possible 11

Network Creation  Determine the network environment: NAT, WAN, NAT-UPNP  Determine GridNode Leader (DirectorRDV)  Idle waiting for patterns 12

Communication Direct (regular socket) Indirect NAT server NAT client NAT server and client Shared Memory 13

Skeletons and Patterns Skeletons/Patterns are recurring parallel algorithms that have been simplified to a general form that can be applied to solve problems from different computer science fields 14

Skeletons Skeletons are: Functional programming constructs, Stateless Data-parallel Resemble trees 15

Pattens Patterns are: State-full, Synchronous loop-parallel Also data-parallel 16

Skeletons/Patterns A dvantages Implicit parallelization Avoid deadlocks Avoid race conditions Reduction in code size [3] Abstracts the Grid/Cloud environment Disadvantages Takes away some of the freedom from the user programmer New approach to learn Performance told (5% for skeletons on top of MPI [PASM]) 17

Interfaces 18

Seed Skeletons/ Patterns 19

Areas of Research Adding extensions to improve patterns and skeletons programming approach Adding automatic scalability to pattern/skeletons Automatically adjust to processors available Automatic grain size How the heterogeneous environment affect load- balancing How to educate future skeleton/pattern programmers (think parallel) Impact of skeleton/patterns on popular algorithm 20

Related Work Research projects in Skeletons/Patterns Lithium/Muskel[1][2] CO 2 P 3 S[3] PASM[4] eSkels[5] SkeTo[6] Triana[7] In Industry MapReduce (Google)[8] Threaded Building Blocks (TBB)( Intel)[9] 21

References M. Aldinucci, M. Danelutto, and P. Teti, “An advanced environment supporting structured parallel programming in Java,” Future Generation Computer Systems, vol. 19, 2003, pp M. Aldinucci, M. Danelutto, and P. Dazzi, “MUSKEL: An expandable Skeleton Environment,” Scalable Computing: Practice and Experience, Vol. 8, Number 4, pp. 325– S.M. S. Bromling, “Pattern-Based Parallel Programming,” Int. Conference on Parallel Processing - ICPP 2002, Aug Goswami D, Singh A, and Preiss B. R, “From Design Patterns to Parallel Architectural Skeletons,” Journal of Parallel and Distributed Computing - JPDC M. Cole, “Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming,” Parallel Computing, vol. 30, 2004, pp K. Matsuzaki, H. Iwasaki, K. Emoto, and Z. Hu, “A library of constructive skeletons for sequential style of parallel programming,” Proceedings of the 1st international conference on Scalable information systems - InfoScale '06, Hong Kong: 2006, pp. 13-es. M.C. Gomes, O.F. Rana, and J.C. Cunha, “Pattern operators for grid environments,” Sci. Program., vol. 11, 2003, pp J. Dean and S. Ghemawat, “MapReduce,” Communications of the ACM, vol. 51, 2008, p “TBB Home,” Apr

Hands-on session Deploy a Seeds workpool skeleton to compute  using Monte Carlo method – all code given. Just local computer used for this session although remote computers could be used. Needs Seeds installed. For session, will also need Java, ant, and Eclipse installed First prepared ant script used to deploy workpool Then Eclipse IDE used to run same program Later Eclipse example for numerical integration - code partially given. Will need to fill in missing parts. 23

24 Basis on Monte Carlo calculations is use of random selections In this case, circle formed with a square Points within square chosen randomly Fraction of points within circle =  /4  calculation

25 Can limit calculation to one quadrant and get same result Actually computes an integral

26 Code Initial part package edu.uncc.grid.example.workpool; import java.util.Random; import java.util.logging.Level; import edu.uncc.grid.pgaf.datamodules.Data; import edu.uncc.grid.pgaf.datamodules.DataMap; import edu.uncc.grid.pgaf.interfaces.basic.Workpool; import edu.uncc.grid.pgaf.p2p.Node; public class MonteCarloPiModule extends Workpool { private static final long serialVersionUID = 1L; private static final int DoubleDataSize = 1000; double total; int random_samples; Random R; public MonteCarloPiModule() { R = new Random(); public void initializeModule(String[] args) { total = 0; // reduce verbosity for logging information Node.getLog().setLevel(Level.WARNING); // set number of random samples random_samples = 3000; }

27 Compute method public Data Compute(Data data) { // input gets the data produced by DiffuseData() DataMap input = (DataMap )data; // output will emit the partial answers done by this method DataMap output = new DataMap (); Long seed = (Long) input.get("seed"); // get random seed Random r = new Random(); r.setSeed(seed); Long inside = 0L; for (int i = 0; i < DoubleDataSize ; i++) { double x = r.nextDouble(); double y = r.nextDouble(); double dist = x * x + y * y; if (dist <= 1.0) { ++inside;// = 1L; } output.put("inside", inside);// store partial answer to return //to GatherData() return output; }

Diffuse and gather methods public Data DiffuseData(int segment) { DataMap d =new DataMap (); d.put("seed", R.nextLong()); return d; // returns a random seed for each job unit } public void GatherData(int segment, Data dat) { DataMap out = (DataMap ) dat; Long inside = (Long) out.get("inside"); total += inside; // aggregate answer from all the worker nodes. } public double getPi() { // returns value of pi based on the job done by all the workers double pi = (total / (random_samples * DoubleDataSize)) * 4; return pi; } public int getDataCount() { return random_samples; } 28

Running example using ant script Get prepared package PiApprox.zip Contains everything needed:  Seeds  P code  Numerical integration code Run ant script Will compile all software and run PiApprox program 29

Using Eclipse Advantage of using the ant script first is everything is deployed (seed folder, etc.) 30

Questions 31