# SPDX-FileCopyrightText: 2006-2021 Istituto Italiano di Tecnologia (IIT)
# SPDX-License-Identifier: BSD-3-Clause
Some quick unofficial notes on usage.
What is?
========
- Module, is an executable binary file developed using YARP
or any other libraries;
- Application, referes to a collection of modules and connections
or other applications.
- Resource refers to any physical or logical resources which are
needed by a module. (e.g Memory, GPU, Platform)
See ./tests/templates to understand how to use XML model to describe
each of these concepts.
Configuration
=============
An example of yarpmanager configuration file can be found in
./tests/ymanager.ini.
'apppath', 'modpath', 'respath' respectively point to the folder where
the XML description of Applications, Modules and Resources are stored.
if 'load_subfolders' is enabled, applications description files will be
recursively loaded from subfolders of 'apppath'.
Set 'external_editor' to your preferable text editor. It will be used by
yarpmanager for editing any XML file.
Running examples
================
First make sure you have a name server running. Open a terminal and type:
$ yarpserver
using yarpmanager
=================
Open another terminal and try this:
$ cd ${YARP_ROOT}/src/yarpmanager/tests
$ yarpmanager
>> help
# a list of yarpmanager keywords
>> list app
# you should see EyesViewer-Localhost, FakeEyes, ...
>> load app EyesViewer-Localhost
>> run
>> connect
# you should see moving red bar
>> disconnect
>> stop
>> exit
using yarpmanager (1.1)
==================
$ cd ${YARP_ROOT}/src/yarpmanager/tests
$ yarpmanager
+ From "Entities" frame, click the triangle beside Applications, then
double-click "EyesViewer-Localhost".
+ From menu "Manage" press "Run" to run all modules
+ From menu "Manage" press "Connect" to stablish all connections.
+ To terminate application, chose "Manage">"Disconnect" and "Manage">"Stop".
To run "EyesViewer-Cluster" using load-balancer you need to have yarprun
running as server; Open a terminal and type:
$ yarprun --server /node1
Open another one and type:
$ yarprun --server /node2
Then try this:
$ yarpmanager
+ From "Entities" frame, click the triangle beside Applications, then
double-click "EyesViewer-Cluster".
+ From the right side, right-click on the frame where you can see all
modules and choose "Assign hosts". You will see that modules will be
automatically assigned to available nodes. (here /node1 and /node2)
+ From menu "Manage" press "Run" to run all modules
+ From menu "Manage" press "Connect" to stablish all connections.
+ To terminate application, chose "Manage">"Disconnect" and "Manage">"Stop".
To see the system information of a node (e.g system load average), for
example of "/node1"
+ From "Entities" frame, click the triangle beside Resources, then
double-click "node1".
+ From menu "Manage" press "Refresh Status" to read system information
Some Notes
==========
While making an application using XML description file, if you set
to "localhost", the manager will use an internal module launcher to run the module
on localhost.
Leaving empty, later you can use the load balancer of yarpmanager
to automatically assign module a a node which has less processor load. Notice that,
available nodes should be listed using Resource XML file.
See ./xml/resources/cluster_nodes.xml for an example.