[Beowulf] scheduler and perl

Chris Dagdigian dag at sonsorol.org
Tue Aug 1 18:22:45 PDT 2006

As Joe mention, the way we handle this is by using cluster schedulers  
sitting on robust hardware platforms that are capable of handling  
large numbers of job submissions without problems. Grid Engine and  
Platform LSF are two capable products that come to mind and scale well.

The fact that your users are using "qsub" is a good thing that you  
certainly want to encourage. It puts their job under the control of a  
scheduler and allows you to do policy based allocation of your  
computing resources.

The alternative is your users bypassing the scheduler altogether by  
SSH'ing to a node and just manually starting programs. Attempts to  
bypass the scheduler are common in some environments so consider  
yourself lucky that your users are using the scheduler at all!

The problem with specific users or perl loops bringing the system  
down with a giant load of rapid qsub submissions is usually best  
handled on a per-user or per-use case level.

Its more of a matter of education and making sure your users have a  
resource who can help them with their job scripts and the general  
tasks of cluster application integration. Your users are not  
intentionally trying to cause problems on the system (most likely)  
but it appears clear that they may need some assistance on how to  
better use the existing cluster.

Not giving users sufficient application integration and cluster  
scripting support resources is a problem I see all the time. Too many  
cluster operators think that training users on a few scheduler  
submission and status commands is all the integration help that they  
need to provide.  The end result is someone writing a shell or perl  
script that tries to submit a few million short running tasks all at  
once ...

Ways you can deal with the situation:

- Examine the user scripts, see if their script can be altered to put  
"more work" into each individual qsub job submission. This will  
reduce the number of qsub commands required

- Tell your users that the use of rapid loops for job submission is  
causing system problems. Work with them to introduce a small delay  
into their submissions. It is to everyone's best interest not to  
bring down the master scheduler

- Look into a feature that some scheduling systems call "array jobs"  
or "job arrays" -- For schedulers that support this feature it is a  
very very powerful way to use a single qsub/bsub command to launch  
hundreds of thousands of jobs. I know that a SGE design goal is to  
support the submission of a single job array with up to 500,000  
individual sub tasks.  Both SGE and LSF do job arrays very well.   
This feature only works well if the workflow includes similar  
commands that vary only slightly (like the input file or a command  
line argument for instance).

So in summary:

  - Be happy users are issuing qsub commands at all !
  - Treat the looping problem as a sign that your users may need some  
application integration assistance/education
  - Work with the users that are causing problems, see if they can  
introduce a delay
  - Look into "array  job" functionality

Regarding the problem of people bypassing the scheduler and logging  
into nodes directly via SSH to run tasks -- I've posted on this exact  
topic on this list before, you may be able to find it in an archive  
somewhere. In short, my belief is that you'll never win the  
technological "arms race" with the users when you try to block users  
who are bypassing the scheduler.

Depending on your organizational environment, it is better to treat  
the problem of users bypassing the scheduler as a Management/HR/ 
Policy problem rather than a technological problem.  Set up a good  
scheduler with resource allocation policies that have been accepted  
by the users.  Then make a policy that everyone who wants to use  
shared resources must operate under the scheduler. After that, make  
sure that people are informed that scheduler/cluster abuse is a  
policy matter that will be referred up the management chain and  
eventually to the human resources department.  It's a matter of  
policy and acceptable use, not technology.

My $.02


On Aug 1, 2006, at 5:36 PM, Xu, Jerry wrote:

> Hi, Thanks, Joe.
>  I am not meaning to "ban" anything immediately, I am just curious  
> how often
> this happen to the HPC community.
> Perl/shell is really strong tool, one example is to use loop to  
> submit huge
> mount of jobs and puts burden on scheduler server, the other  
> example is to have
> one job sit idle and frequently to use system call to detect the  
> job status and
> resubmit jobs again and again; the other example is that use system  
> call and ssh
> to each node and run stuff and bypass the scheduler... It just  
> drives me crazy
> sometime.
>  How do you guys handle issue like this?

More information about the Beowulf mailing list