Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi"— Presentation transcript:

1 1 High-Performance Grid Computing 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?

2 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 henric@hawaii.edu

3 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...

4 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

5 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

6 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 …

7 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 http://gridengine.sunsource.net

8 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

9 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

10 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!

11 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:  #$ -cwdUse the currend directory as work directory  #$ -j yJoin errors and output in the same file  #$ -N get_dateGive 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

12 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 )http://rc.usf.edu/sge/submit.php It is also possible to integrate other MPI flavors with SGE

13 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  …

14 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?

15 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

16 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 scheduling  Computing nodes are in the same location  Homogeneous software

17 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

18 18 How do we put everything together?

19 19 Wrapping up: What do we have?

20 20 In a nutshell…

21 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  …

22 22 Some examples Hurricane mitigation Metascheduling and job flow management

23 23 Conclusion There is still a lot to explore!


Download ppt "1 High-Performance Grid Computing and Research Networking Presented by David Villegas Instructor: S. Masoud Sadjadi"

Similar presentations


Ads by Google