You can reserve an emulator for a given agent (the "reservee") for a specified amount of time. The reservation is
considered "soft" in the sense that it is enforced only if the specific agent requests the emulator during the reservation
time.
# Add these lines to your taskers.tcl fie
source $env(VOV_HERO_DIR)/zebu/hero_veloce_lib.tcl
HeroVeloce::DeclareEmulatorTaskers
Normally, in Veloce there is only one Hero wrapper,
just like there is only one Veloce Enterprise Server (veles). Start the wrapper
and the associated taskers with:
% ves VELOCE
% hero_veloce_start_wrapper
% vovtaskermgr start
Verify that the taskers and wrappers are running with:
% vovtaskermgr show
To set up Hero as the distributions system for
Veloce, in your veloce.config file, add:
To setup Preemption for Veloce, you can add a few preconfigured preemption
rules that allow a high-priority job to suspend a lower priority job.
# Add this line to hero.swd/vovpreemptd/config.tcl
source $env(VOVDIR)/scripts/hero/veloce/hero_veloce_preempt_rules.tcl
With Hero, you suspend a Veloce
job by sending SIGTSTP to the "hero_veloce_select" job, and not, as one may expect, to
the "hero_veloce_run" job. This is because in Hero, there
are two distinct jobs to drive the emulators and the "hero_veloce_select" is the one
that needs to be rescheduled. In turn, hero_veloce_select will suspend the
hero_veloce_run and make sure that the preemption is complete and successful.