On May 27, 2008, at May 27, 12:20 AM, Yuriy wrote:


Hi,


What determines the limits on number of jobs that can be submitted
through the single <job> description?

There is no limit. Only the limit of what is available in the cluster/ LRM that GRAM is interfacing with.

We have 10 node cluster with 2
quad-core processors per node, and when number of jobs is greater then
160 there seems to be increasing probability to get the following
error:


/bin/sh:
/home/grid-bestgrid/.globus/90bbca80-2ba4-11dd-95fc-8fae74568b88/ scheduler_pbs_cmd_script:
No such file or directory

This error does not happen all the time, but the probability increases
as number of jobs increase, and I hasn't been able to trigger this
error with number of processors < number of cores * 2.

If seen a similar error on TeraGrid's UC/ANL cluster due to NFS scalability issues between the cluster's head node and compute nodes. What happens is that GRAM creates the scheduler_pbs_cmd_script for the job. From the main (first) compute node allocated, GRAM will rsh to each of the other compute nodes allocated and run that same command script. When all compute nodes in the job access that file at the same time, some fail even though the file is there. Maybe we need to add some reliability in there to retry (since we know that script should be there). Or maybe there is a better way to handle this situation. I'll have to think about this some.

One place to look to improve this would be to optimize your NFS configuration/setup. I am not an expert here and cannot offer much advise. But it would be good to have some helpful hints on this for people who run into it. So please provide any information if you find ways to improve the situation.

At what scale do problems occur with this? By that I mean, how many PBS processes/nodes are trying to access that file at (nearly) the same time when errors begin to occur?



Also <count> tag seems to have no effect on number of jobs executed, other
then if it is equal to one, all jobs execute on single node.

Here is the 4.0 doc on extension handling:
        
http://www.globus.org/toolkit/docs/4.0/execution/wsgram/WS_GRAM_Job_Desc_Extensions.html#r-wsgram-extensions-constructs

This is not be well documented, but for PBS, when the resourceAllocationGroup is used, then count is ignored. As you can see here in the if-then-else in choosing what is going to set the PBS nodes directive.

From PBS.pm >>>>>>>>
    if (defined $description->nodes())
    {
#Generated by ExtensionsHandler.pm from resourceAllocationGroup elements
        print JOB '#PBS -l nodes=', $description->nodes(), "\n";
    }
    elsif($description->host_count() != 0)
    {
        print JOB '#PBS -l nodes=', $description->host_count(), "\n";
    }
    elsif($cluster && $cpu_per_node != 0)
    {
        print JOB '#PBS -l nodes=',
        myceil($description->count() / $cpu_per_node), "\n";
    }
<<<<<<<<



Example job description:

<job>
   <factoryEndpoint
xmlns:gram="http://www.globus.org/namespaces/2004/10/gram/job " xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/ addressing">
       <wsa:Address>
           
https://ng2test.auckland.ac.nz:8443/wsrf/services/ManagedJobFactoryService
       </wsa:Address>
       <wsa:ReferenceProperties>
           <gram:ResourceID>PBS</gram:ResourceID>
       </wsa:ReferenceProperties>
   </factoryEndpoint>
<executable>/bin/hostname</executable>
<count>200</count>
<queue>[EMAIL PROTECTED]</queue>
<jobType>multiple</jobType>
   <extensions>
       <resourceAllocationGroup>
               <hostCount>10</hostCount>
               <cpusPerHost>8</cpusPerHost>
               <processCount>162</processCount>
       </resourceAllocationGroup>
   </extensions>
</job>

For MPI jobs the limit seems to be 20 * number of cores, for larger
number of processes I see erros like this:

--------------------------------------------------------------------------
*** An error occurred in MPI_Init
*** before MPI was initialized
*** MPI_ERRORS_ARE_FATAL (goodbye)
[compute-1.local:23438] [0,0,0] ORTE_ERROR_LOG: Timeout in file base/ pls_base_orted_cmds.c at line 275 [compute-1.local:23438] [0,0,0] ORTE_ERROR_LOG: Timeout in file pls_rsh_module.c at line 1164 [compute-1.local:23438] [0,0,0] ORTE_ERROR_LOG: Timeout in file errmgr_hnp.c at line 90 mpiexec noticed that job rank 8 with PID 22257 on node compute-10 exited on signal 15 (Terminated). [compute-1.local:23438] [0,0,0] ORTE_ERROR_LOG: Timeout in file base/ pls_base_orted_cmds.c at line 188 [compute-1.local:23438] [0,0,0] ORTE_ERROR_LOG: Timeout in file pls_rsh_module.c at line 1196
--------------------------------------------------------------------------

Again, this does not happen all the time.


Example job description:

<job>
   <factoryEndpoint
xmlns:gram="http://www.globus.org/namespaces/2004/10/gram/job " xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/ addressing">
       <wsa:Address>
           
https://ng2test.auckland.ac.nz:9443/wsrf/services/ManagedJobFactoryService
       </wsa:Address>
       <wsa:ReferenceProperties>
           <gram:ResourceID>PBS</gram:ResourceID>
       </wsa:ReferenceProperties>
   </factoryEndpoint>

<executable>test</executable>
<directory>/home/grid-bestgrid/MPI/</directory>
<queue>[EMAIL PROTECTED]</queue>
<jobType>mpi</jobType>

   <extensions>
       <resourceAllocationGroup>
               <hostCount>5</hostCount>
               <cpusPerHost>8</cpusPerHost>
               <processCount>900</processCount>
       </resourceAllocationGroup>
   </extensions>
</job>



Can anyone explain what is going on here?


Regards,
Yuriy


Reply via email to