Upload
bertha-adela-phelps
View
220
Download
1
Embed Size (px)
Citation preview
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?
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]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
How do we put everything together?
19
Wrapping up: What do we have?
GCB
FIU Network
LA-GRID GCBVIZ
TSUNAMI
FIU-ECS FIU-GCB
20
In a nutshell…
Compute nodes
SGE local scheduler
GRAM adapter
GCB frontend
The GRID
Single Job
MPI Job
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
Some examples
Hurricane mitigation
Metascheduling and job flow management
23
Conclusion
There is still a lot to explore!