The standard Legion host object creates objects using the process creation interface of the underlying operating system. However, some systems require using a queue management system to take full advantage of local resources. For example, some parallel computers contain a small number of "interactive" nodes, which can be accessed through normal means, and a large number of "compute" nodes, which can only be reached by submitting jobs to a local queue management system.
To make use of hosts that are managed by local queuing systems, Legion provides a modified host object implementation called the BatchQueueHost. Instead of using the standard process creation interface of the underlying operating system, BatchQueueHost objects submit jobs to the local queuing system.
The BatchQueueHost can be used with a variety of queue systems (LoadLeveler, Codine, PBS, and NQS are the currently supported queue types). The type of local queue a given BatchQueueHost object will use to manage the local objects is specified in an object attribute set on the BatchQueueHost.
Currently, each BatchQueueHost can use only one queue type at a time (i.e., if multiple local queuing systems are available, they can not all be used by the same BatchQueueHost -- an individual BatchQueueHost would need to be started to represent each queue). Typically, though, individual machines are managed by a single queue.
You can use the legion_list_attributes command to check this. This signals the scheduler that the class's instances should not run on BatchQueueHosts. This is based on the conservative assumption that any class can run on interactive hosts, but not all classes can run on batch hosts.
If you are having trouble creating objects on a BatchQueueHost, there are several points of possible trouble. First be sure that you've removed the problem class's interactive desired_host_property (see section 13.3). If you still have trouble, you may have a misconfigured host object. Check the following points to be sure that your host object is set up correctly.
You can get a better idea of whether or not the local scripts are being called and what they're doing by looking in the log file maintained by the scripts (look in $LEGION_OPR/Legion-BatchLog). You'll find this log on the host where the BatchQueueHost is running. If the logs indicate that the scripts are never called there may be a scheduling problem.
There is also a six minute delay after you add a new host to the system before which it will not be selected for scheduling, so you may need to wait a few minutes before you can test a new batch queue host.