Setup

Hero is straightforward to start and configure. The steps are:
  1. Create/start the Hero project.
  2. Create the emulator configuration file emul.cfg.
  3. Run the configuration command.
To start a project (and create it the first time around), use the following command:
hemgr start

This will create a project which is named hero by default. When using the nc commands, the project name must be supplied (either via -q or the NC_QUEUE environment variable).

The emulator configuration file needs to be set up. The configuration describes the details of the emulators managed by Hero. The file is stored in the hero project directory (called server working directory, SWD) which may be found using the command:
nc cmd vovserverdir -p

As an example, it may be helpful to copy the demo files demo_data/ and emul.cfg found under $VOVDIR/training/demos/hero/ into the directory SWD/config/hero/. The emul.cfg gives an example configuration file, the demo_data/ directory contains some example files used by the example emul.cfg to describe the emulators.

The configuration file is named emul.cfg and it has a section that describes the emulators listed under EMULATORS. Most of the entries in the emulator description apply to all emulators, some are emulator specific.
  • NAME is the name used to refer to the emulator in the interface. The name must be alphanumeric and be unique among emulator names.
  • TYPE must be one of three types, "PalladiumZ1" (which also applies to the PZ2), "Zebu" or "HAPS".
  • GROUP is a label for a group of emulators that are equivalent in the sense that a job can potentially run on any emulator in the group. For example, a number of ZeBu Z4s could be grouped together. The group name must be alphanumeric and unique among group names.
  • RTHOSTS is a list of hosts on which jobs associated with this emulator will run. They must be configured by Hero so that emulator scheduling works properly.
The following entries are emulator dependent:
  • TEST_SERVER_JSON is a JSON format file for the Palladium emulators that describes the emulator configuration and contains the output of the test_server -json command for that emulator.
  • ZSE is a Tcl format file describing the layout of the ZeBu emulator. This file is part of the Synopsys emulator installation setup.
The following entries are optional:
  • IGNORE_LIST is a list of emulator elements that are not to be included when determining resources where a job may run. The format is emulator dependent, the Palladium IGNORE_LIST is a list of boards, the Zebu IGNORE_LIST is a list of either unit or module names.
  • Example usage would be if a module is out of service, or a cluster that is not physically present. An example for the Palladium would be IGNORE_LIST = ["7"] which will not schedule a job on Board 7. An example for ZeBu would be IGNORE_LIST = ["U1", "U3.M2"] which will not schedule a job on Unit 1 or Unit 3, Module 2.
  • TASKER_ENV is a space separated list of environment variables and values that will be assigned when the taskers associated with this emulator are started (see the RTHOSTS entry). An example usage is to set the ZEBU_SYSTEM_DIR variable to identify a ZeBu emulator.
To process the configuration and start the taskers associated with the emulators, use the command:
nc cmd vovemulmgr config
It typically takes a few iterations to get the configuration file syntax correct. As an additional check, run the following command (which should print no error messages).
nc cmd vovemulmgr check

The web interface Status page provides a useful visual check.