23
1 High-Performance Grid Computing High-Performance Grid Computing and Research Networking and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi http://www.cs.fiu.edu/~sadjadi/Teaching/ sadjadi At cs Dot fiu Dot edu How to Use the Cluster? How to Use the Cluster?

1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

Embed Size (px)

Citation preview

Page 1: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

1

High-Performance Grid Computing and High-Performance Grid Computing and Research NetworkingResearch Networking

Presented by David Villegas

Instructor: S. Masoud Sadjadihttp://www.cs.fiu.edu/~sadjadi/Teaching/

sadjadi At cs Dot fiu Dot edu

How to Use the Cluster?How to Use the Cluster?

Page 2: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

2

Acknowledgements

The content of many of the slides in this lecture notes have been adopted from the online resources prepared previously by the people listed below. Many thanks! Henri Casanova

Principles of High Performance Computing http://navet.ics.hawaii.edu/~casanova [email protected]

Page 3: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

3

Is MPI enough?

MPI submits the jobs using rsh/ssh

There is no control of who runs what!

For multiple users in the cluster, we want to have privileges, authentication, fair-share...

Page 4: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

4

Introducing Batch Schedulers

A job scheduler provides more features to control job execution:

Interfaces to define workflows and/or job dependencies

Automatic submission of executions Interfaces to monitor the executions Priorities and/or queues to control the execution order

of unrelated jobs

Page 5: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

5

Batch Schedulers

Most production clusters are managed via a batch scheduler: You ask the batch scheduler to give you X nodes for Y hours to

run program Z At some point, the program will be started. Later on you can look at the program output

This is really different from what you’re used to, and honestly is sort of painful No interactive execution

Necessary because: Since most applications are in this for high performance, they’d

better be alone on their compute nodes There are not enough compute nodes for everybody at all times

Page 6: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

6

Scheduling criteria

Job priority Compute resource availability License key if job is using licensed software Execution time allocated to user Number of simultaneous jobs allowed for a user Estimated execution time Elapsed execution time Availability of peripheral devices Occurrence of prescribed events …

Page 7: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

7

The case of GCB

Rocks allows us to install different job schedulers: SGE, PBS, LSF, Condor…

Currently we have SGE installed.

Sun Grid Engine is an open source DRM (Distributed Resource Manager) sponsored by Sun Microsystems and CollabNet. It can be downloaded from http://gridengine.sunsource.net

Page 8: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

8

Our Cluster You have (or soon will get) an account on the

cluster Question: once I am logged in, what do I do? Clusters are always organized as

A front end node To compile code (and do minimal testing) To submit jobs

Compute nodes To run the code You don’t ssh to these directly In our case they are dual-proc Pentiums

Page 9: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

9

How to use SGE as a user?

You need to learn how to do three basic things Check the status of the platform Submit a job Check on job status

All can be done from the command line Read the man pages Google “SGE commands”

Checking on platform and job status qhost Information about nodes qstat –f Information about queues qstat –F [ resource ] Detailed information about resources qstat lists pending/running/done jobs

Page 10: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

10

How to use SGE as a user? (contd.)

Submitting and controlling jobs qsub

We can pass the path to a binary or a script qsub –b yes Submits a binary qsub –q queue list Specifies to what queue the job will be

sent qsub –pe parallel-env n Allows to send a parallel job

qdel Attempts to terminate a range of jobs

But for those of you who don’t like the command line… qmon

Be sure that you are forwarding X11 and that you have a X server in your client machine!

Page 11: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

11

How to use SGE as a user? (contd.)

But sending a single command is not very interesting… Submitting scripts

Scripts can submit many jobs We can pass options to SGE and consult environment variables.

Example: #$ -cwd Use the currend directory as work directory #$ -j y Join errors and output in the same file #$ -N get_date Give a name to the job #$ -o output.$JOB_ID Use a given file for output

$JOB_ID: The job number assigned by the scheduler to your job $JOBDIR: The directory your job is currently running in $USER: The username of the person currently running the job $JOB_NAME: The job name specified by -N option $QUEUE: Current running queue

Page 12: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

12

How to use SGE as a user? (contd.)

Submitting parallel jobs

We can define parallel-environments to execute this kind of jobs. Parallel environments define startup procedures, maximum number of slots, users allowed to submit parallel jobs…

Examples: mpich, lam …

SGE allows "Tight Integration" with MPICH by intercepting the calls MPICH makes to run your job on other machines, and replacing those calls with SGE calls so that it may better monitor and manage your parallel jobs. ( Source http://rc.usf.edu/sge/submit.php )

It is also possible to integrate other MPI flavors with SGE

Page 13: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

13

How to use SGE as an admin? Scheduler configuration. This values are found in

/opg/gridengine/default/common/sched_configuration

These values can only be altered using qconf or qmon

algorithm default schedule_interval 0:0:15 maxujobs 0 queue_sort_method load job_load_adjustments np_load_avg=0.50 load_adjustment_decay_time 0:7:30 load_formula np_load_avg schedd_job_info true flush_submit_sec 0 flush_finish_sec 0 params none reprioritize_interval 0:0:0 halftime 168 usage_weight_list cpu=1,mem=0,io=0 compensation_factor 5 …

Page 14: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

14

How to use SGE as an admin? (contd.)

Queue configuration Queues are created with qmon or qconf

qconf –shgrpl show all host groups qconf -ahgrp group add a new host group qconf –shgrp group show details for one group qconf –sq queue shows a queue configuration qconf –Aq file create a queue from a file

We’ll output a queue configuration to a file and modify it.

Exercise: create a short/test job queue. Which are the best policies for this kind of queue?

Page 15: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

15

Queue parameters qname hostlist seq_no load_thresholds suspend_thresholds nsuspend suspend_interval priority min_cpu_interval processors qtype ckpt_list pe_list rerun slots tmpdir shell …

For the rest, type man queue_conf

Page 16: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

16

But, are local schedulers enough?

Schedulers allow us to manage jobs in one or more clusters, but there are still some limitations for more complex systems:

Centralized job schedulingComputing nodes are in the same locationHomogeneous software

Page 17: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

17

Next step: GRID computing

GRID computing allows us to make distant, heterogeneous clusters work together.

Coordinate multiple resources (discovery, access, allocation, monitoring)

Allow user authorization to provide secure access to resources

Provide open standards to improve interoperability

Give local control to organizations

Page 18: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

18

How do we put everything together?

Page 19: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

19

Wrapping up: What do we have?

GCB

FIU Network

LA-GRID GCBVIZ

TSUNAMI

FIU-ECS FIU-GCB

Page 20: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

20

In a nutshell…

Compute nodes

SGE local scheduler

GRAM adapter

GCB frontend

The GRID

Single Job

MPI Job

Page 21: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

21

Sending a job to SGE using GRAM

Create a personal certificate with grid-cert-request Have it signed by the local CA Create a proxy with grid-proxy-init Submit it with globus-job-run localhost/jobmanager-sge /bin/hostname This is a very simple example that uses pre-WS GRAM services Globus still gives us more advanced features:

File staging RSL (Resource Specification Language) and JSDL (Job

Submission Description Language) Access across organization boundaries …

Page 22: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

22

Some examples

Hurricane mitigation

Metascheduling and job flow management

Page 23: 1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi sadjadi/Teaching

23

Conclusion

There is still a lot to explore!