Quickstart¶
This example runs a small CPU simulation with a fast heuristic solver. It is a
better first check than virne alone, because the default
configuration trains an RL solver and processes 1,000 VN requests.
Run a Small Experiment¶
With the environment containing Virne active, run this from any writable directory:
virne \
solver.solver_name=nrm_rank \
v_sim_setting.num_v_nets=10 \
training.use_cuda=false \
'logger.backends=[console]'
Virne generates a physical network and ten virtual requests, solves each arrival event, and prints a summary. A successful run ends with:
-------------------- Complete --------------------
The progress bar also shows the running acceptance rate (ac),
revenue-to-cost ratio (r2c), and number of in-service requests.
Inspect the Results¶
Hydra places the run under results/. The most useful files are:
results/virne/nrm_rank/<run-id>/config.yaml
results/virne/nrm_rank/<run-id>/summary.csv
results/virne/nrm_rank/<run-id>/records/*.csv
config.yaml is the fully resolved experiment configuration,
summary.csv contains one row of run-level metrics, and records/*.csv
contains per-event details. See Metrics for the field
definitions.
Override the Configuration¶
Virne uses Hydra, so any existing configuration value
can be overridden with key=value. Prefix a new key with +.
# Select another registered solver
virne solver.solver_name=random_rank
# Load a physical topology from a GML file
virne +p_net_setting.topology.file_path=/path/to/Geant.gml
# Use the offline network system
virne system.if_offline_system=true
# Preview the resolved configuration without running a simulation
virne --cfg job
Use the solver registry for valid solver names and
simulation scenarios for the canonical PN and VN settings.
Source checkouts retain python main.py as a compatibility alias for the
virne command.