Usage: jcmwave_daemon_add_queue(options)

Purpose: registers a queue as a computing resource

  options: key-value list (or matlab) structure to configure the queue
    options.Hostname   -> host name of the (remote) login node of the queue
                          To form a login chain concatenate the hostnames with
                          ';' separators, i.e 'gateway.com;maxwell'
    options.JCMROOT    -> JCMsuite installation path on computing nodes of the queue
                          default: same directory as local installation
    options.Login      -> Login name to the(remote) login node of the queue
                          For a login chain concatenate the user names with
                          ';' separators, i.e 'user1;user2'
    options.SSHClient -> ssh client used to establish a secure connection to the
                         remote machine. As a default the system ssh client
                         is used (if not available on Windows Putty's plink is used)
                         For a login chain concatenate ssh clients with
                        ';' separators, i.e 'plink;ssh'
    options.SSHAgentForwarding -> Enables forwarding of the authentication agent connection.
                         ('yes'/'no', default 'no')
    options.SSHTimeOut ->  Timeout for establishing the ssh connection (default 6s)
    options.Multiplicity -> allow for multiply simultaneous submission of jobs to the queue
                            default: 10
    options.Type       -> Determines type of batch queue. Possible values are: Slurm
                          default: Slurm
    options.NThreads   -> Number of CPUs/threads used by one job in the queue
    options.OOCDir -> swapping directory for out-of-core data

    options.MaxCoreSize -> restricts maximum core RAM usage (requires setting
                             of swapping directory OOCDIR)

    The following options are used to restrict resource allocations in queues:

       options.Account       -> Your queue account [optional]
       options.PartitionName -> Name of the cluster partition you want to add
       options.NNodes        -> number of nodes allocated for each job to run a cluster parallel problem
       options.NTasks        -> number of tasks allocated for each job to run a cluster parallel problem
       options.NTasksPerNode -> (maximum) number of taks per node
       options.MemoryPerJob  -> Reserve at least MemPerCPU MB of RAM for every job that is run on this allocation
                                For a distributed job with running on multiple nodes this is the maximum memory
                                usage per node
       options.Time          -> Limit total run time of each job submitted to the queue in minutes
       options.MemPerCPU     -> Limit allocation to nodes with at least MemPerCPU MB of RAM per CPU employed
       options.WorkingDir    -> Directory used by JCMsuite to place temporary files.
                                Project files are copied as well if the project directory
                                is not shared by the login nodes and the nodes of the queue.
                                This directory must be accessible by any node of the queue,
                                i.e. a directory on a shared filesystem.
       options.TempDiskSpace -> Require at least TempDiskSpace MB of free temporary disk space on nodes
       options.Features      -> Constraints job allocation to nodes of the cluster with the selected features.
       options.NodeList      -> Limit job execution to a specific node of the cluster.
       options.ExcludeNode   -> Exclude a node of a partition from executing jobs.
                                Multiple nodes can be entered as a comma separated list
                                containing no spaces, i.e. maxwell1,maxwell2,... or
                                as a range of nodes, i.e. maxwell[1-3].
                                Setting a node list and excluding a node are mutually exclusive.
       options.CmdLineArgs   -> Command line arguments as used for the submission tool. This allows you to pass options
                                directly to the submission tool. For a slurm queue these arguments are placed at the
                                end of the header of the sbatch file. It is possible to skip all the above queue related
                                arguments and to use only this parameter to configure the queue options.
       options.Environment   -> list of environment variables (separated by white spaces)

Output: resource identifier (integer vector for multiple used resources)

Warning: Adding a job queue recursively increases the number of
         simultaneously submitted jobs in this queue.