Presentation is loading. Please wait.

Presentation is loading. Please wait.

Building Scalable Scientific Applications using Makeflow Dinesh Rajan and Peter Sempolinski University of Notre Dame.

Similar presentations


Presentation on theme: "Building Scalable Scientific Applications using Makeflow Dinesh Rajan and Peter Sempolinski University of Notre Dame."— Presentation transcript:

1 Building Scalable Scientific Applications using Makeflow Dinesh Rajan and Peter Sempolinski University of Notre Dame

2 Cooperative Computing Lab http://www.nd.edu/~ccl University of Notre Dame

3 The Cooperative Computing Lab 3 We collaborate with people who have large scale computing problems in science, engineering, and other fields. We operate computer systems on the O(10,000) cores: clusters, clouds, grids. We conduct computer science research in the context of real people and problems. We develop open source software for large scale distributed computing. The Cooperative Computing Lab We collaborate with people who have large scale computing problems in science, engineering, and other fields. We operate computer systems on the O(10,000) cores: clusters, clouds, grids. We develop open source software for large scale distributed computing. http://www.nd.edu/~ccl

4 Plan for Today’s Tutorial 1.Our CCTools Software i.Makeflow, Work Queue, Parrot, Chirp 2.Makeflow i.Lecture: Overview, features ii.Tutorial: Write simple Makeflows 3.Work Queue i.Lecture: Overview, features ii.Tutorial: Write simple WQ programs

5 Science Depends on Computing!

6 The Good News: Computing is Plentiful! 6

7

8

9 Superclusters by the Hour 9 http://arstechnica.com/business/news/2011/09/30000-core-cluster-built-on-amazon-ec2-cloud.ars

10 10 I have a standard, debugged, trusted application that runs on my laptop. A toy problem completes in one hour. A real problem will take a month (I think.) Can I get a single result faster? Can I get more results in the same time? Last year, I heard about this grid thing. This year, I heard about this cloud thing.

11 I have allocations on clusters (unlimited) + grids (limited) + clouds ($)! How do I run my application on those machines?

12 Should I port my program to MPI or Hadoop? Learn MPI / Hadoop Learn C / Java Re-architect Re-write Re-test Re-debug Re-certify

13 And my application looks like this…

14 Makeflow & Work Queue Easy to scale from one desktop to national scale infrastructure. Harness all available resources: desktops, clusters, clouds, grids. Portable across operating systems, storage systems, batch systems. No special privileges required.

15 Makeflow 15 part1 part2 part3: input.data split.py./split.py input.data out1: part1 mysim.exe./mysim.exe part1 >out1 out2: part2 mysim.exe./mysim.exe part2 >out2 out3: part3 mysim.exe./mysim.exe part3 >out3 result: out1 out2 out3 join.py./join.py out1 out2 out3 > result

16 16 Work Queue Library http://www.nd.edu/~ccl/software/workqueue #include “work_queue.h” while( not done ) { while (more work ready) { task = work_queue_task_create(); // add some details to the task work_queue_submit(queue, task); } task = work_queue_wait(queue); // process the completed task }

17 17 Parrot Virtual File System LocalHTTPCVMFSChirpiRODS Ordinary Appl Filesystem Interface: open/read/write/close Web Servers iRODS Server CVMFS Network Chirp Server Parrot and Chirp

18 http://www.nd.edu/~ccl/software/manuals

19 Source code in GitHub http://github.com/cooperative-computing-lab/cctools

20 Makeflow & Work Queue Federate/harness all available resources: desktops, clusters, clouds, grids. Simple interfaces & API Part of CCTools software – No special privileges required to install.

21 Makeflow Lecture: Outline 1.What is Makeflow? – Portable: One Makeflow program for SGE, Condor, PBS 2.How to write an application using Makeflow? – Simple rule-based syntax 3.How to run Makeflow? – Features, commands, using Work Queue

22 An Old Idea: Makefiles 22 part1 part2 part3: input.data split.py./split.py input.data out1: part1 mysim.exe./mysim.exe part1 >out1 out2: part2 mysim.exe./mysim.exe part2 >out2 out3: part3 mysim.exe./mysim.exe part3 >out3 result: out1 out2 out3 join.py./join.py out1 out2 out3 > result

23 Makeflow Language - Rules Each rule specifies: – a set of target files to create; – a set of source files needed to create them; – a command that generates the target files from the source files. part1 part2 part3: input.data split.py./split.py input.data out1: part1 mysim.exe./mysim.exe part1 >out1 out2: part2 mysim.exe./mysim.exe part2 >out2 out3: part3 mysim.exe./mysim.exe part3 >out3 result: out1 out2 out3 join.py./join.py out1 out2 out3 > result out1 : part1 mysim.exe mysim.exe part1 > out1

24 You must state all the files needed by the command.

25 sims.mf out.10 : in.dat calib.dat sim.exe sim.exe –p 10 in.data > out.10 out.20 : in.dat calib.dat sim.exe sim.exe –p 20 in.data > out.20 out.30 : in.dat calib.dat sim.exe sim.exe –p 30 in.data > out.30

26 Makeflow = Make + Workflow Provides portability across batch systems. Enable parallelism (but not too much!) Fault tolerance at multiple scales. Data and resource management. 26 Makeflow LocalCondor SGE Work Queue http://www.nd.edu/~ccl/software/makeflow

27 Private Cluster Campus Condor Pool Public Cloud Provider XSEDE Cluster Makefile Makeflow Local Files and Programs Makeflow + Batch System makeflow –T sge makeflow –T condor Work Queue

28 How to run a Makeflow Run a workflow local % makeflow -T local sims.mf Run the workflow on SGE: % makeflow -T sge sims.mf Run the workflow on Condor: % makeflow -T condor sims.mf Clean up the workflow outputs: % makeflow -c sims.mf

29 Makeflow can verify if your Makeflow file is syntactically correct % makeflow -k sims.mf Makeflow: Syntax OK. Makeflow will point out syntax errors if any % makeflow -k sims.mf makeflow: out10 is defined multiple times at out.10:1 and out.10:4 Makeflow Syntax Checker

30 Makeflow can output a makeflow file as a Dot graph. % makeflow -D dot sims.mf digraph { node [shape=ellipse,color = green,style = unfilled,fixedsize = false]; N2 [label="sim.exe"]; N1 [label="sim.exe"]; N0 [label="sim.exe"]; node [shape=box,color=blue,style=unfilled,fixedsize=false]; F3 [label = "out.30"]; F0 [label = "sim.exe"]; F5 [label = "out.10"]; F2 [label = "in.dat"]; F1 [label = "calib.dat"]; F4 [label = "out.20"];.. Makeflow Visualization

31 Example App: Biocompute Portal Generate Makefile Make flow Run Workflow Progress Bar Transaction Log Update Status Condor Pool Submit Tasks BLAST SSAHA SHRIMP EST MAKER …

32 Makeflow + Work Queue

33 Private Cluster Campus Condor Pool Public Cloud Provider XSEDE Cluster Makefile Makeflow Local Files and Programs Makeflow + Batch System makeflow –T sge makeflow –T condor ???

34 XSEDE Cluster Campus Condor Pool Public Cloud Provider Private Cluster Makefile Makeflow Local Files and Programs Makeflow + Work Queue W W W ssh WW WW sge_submit_workers W W W condor_submit_workers W W W Thousands of Workers in a Personal Cloud submit tasks

35 Advantages of Work Queue Scalability: Harness multiple infrastructure simultaneously. Elasticity: Scale resources up & down as needed. Data Management: Remote data caching. Data Locality: Matches tasks to nodes with data.

36 Fault Tolerance MF +WQ is fault tolerant : – If Makeflow crashes (or killed), it recovers by reading log and continues where it left off. – If a worker crashes, the master will detect and restart the task elsewhere. – Workers can be added and removed any time during execution.

37 Makeflow and Work Queue To start the Makeflow % makeflow -T wq sims.mf Could not create work_queue on port 9123. % makeflow -T wq -p 0 sims.mf Listening for workers on port 8374… To start one worker: % work_queue_worker ccl.cse.nd.edu 8374

38 Start Workers Everywhere! Submit workers to SGE: % sge_submit_workers ccl.cse.nd.edu 8374 25 Submit workers to Condor: % condor_submit_workers ccl.cse.nd.edu 8374 25 Submit workers to Torque: % torque_submit_workers ccl.cse.nd.edu 8374 25

39 Keeping track of port numbers gets old fast…

40 Project Names Worker work_queue_worker -a –N myproject Catalog connect to ccl.cse.nd.edu:4057 advertise “myproject” is at ccl.cse.nd.edu:4057 query Makeflow (port 4057) makeflow … –a –N myproject

41 Makeflow with Project Names Start Makeflow with a project name: % makeflow -T wq -p 0 -a -N xsede-tutorial sims.mf Listening for workers on port XYZ… Start one worker: % work_queue_worker -N xsede-tutorial Start many workers: % sge_submit_workers -N ccgrid-tutorial 5

42 http://www.nd.edu/~ccl/software/makeflow/

43 The Cooperative Computing Lab 43 The Cooperative Computing Lab We collaborate with people who have large scale computing problems in science, engineering, and other fields. We operate computer systems on the O(10,000) cores: clusters, clouds, grids. We conduct computer science research in the context of real people and problems. We develop open source software for large scale distributed computing. Makeflow Portable: One program for clusters, grids, clouds Simple syntax: inputs, outputs, command All files needed by command must be specified Makeflow with Work Queue Federation, Elasticity, Data management Project Names Easy to remember locations of Makeflow masters

44 Chris Hempel (TACC) David Gignac (TACC) Acknowledgements

45 Go to: http://www.nd.edu/~ccl Click on “Tutorial at XSEDE 2013”

46 Click on “Tutorial” under Makeflow


Download ppt "Building Scalable Scientific Applications using Makeflow Dinesh Rajan and Peter Sempolinski University of Notre Dame."

Similar presentations


Ads by Google