Skip to content

Latest commit

 

History

History
519 lines (371 loc) · 10.9 KB

File metadata and controls

519 lines (371 loc) · 10.9 KB

Software & Libraries Complete List

Operating System Requirements

  • Ubuntu 20.04 LTS or later (20.04, 22.04 recommended)
  • Kernel: 5.4 or later
  • RAM: 8GB minimum, 16GB recommended
  • Disk: 20GB free space minimum
  • CPU: Multi-core processor recommended (4+ cores)

System-Level Dependencies

Automatically installed by scripts/install_dependencies.sh:

Build Tools

build-essential      # C/C++ compiler and build tools
cmake                # Cross-platform build system
pkg-config           # Library compilation helper
git                  # Version control
wget, curl           # File downloading

Programming Languages & Development

gcc / g++            # GNU C/C++ compiler
python3              # Python interpreter
python3-dev          # Python development headers
python3-venv         # Python virtual environments
gfortran             # Fortran compiler (for numerical libs)

Libraries for SUMO

libfox-1.6-dev       # GUI toolkit (required for SUMO)
libxml2-dev          # XML parsing library
libxslt1-dev         # XSLT library
libproj-dev          # Projection library
libgdal-dev          # Geographic Data Abstraction Library
libgeos-dev          # Geometry Engine library
libgeos++-dev        # GEOS C++ bindings

Math & Scientific Computing

libopenblas-dev      # Optimized BLAS library
liblapack-dev        # Linear Algebra Package

Text Editors (Optional)

vim, nano            # Command-line editors

SUMO Installation Details

SUMO Version: 1.14.1

Installation Method: Source compilation Installation Path: $HOME/simulation-tools/sumo Build Time: ~10-15 minutes

Components Installed:

sumo              # Main simulator executable
sumo-gui          # GUI version
netgenerate       # Network generator tool
duarouter         # DUA router tool
TraCI tools       # Traffic Control Interface
Python libraries  # SUMO Python bindings

Build Configuration:

cmake ../..       # Uses default configuration
make -j$(nproc)   # Parallel build using all CPU cores

Features:

  • ✓ TraCI (Traffic Control Interface) support
  • ✓ Multi-lane road networks
  • ✓ Vehicle dynamics
  • ✓ Routing algorithms
  • ✓ Python bindings

NS-3 Installation Details

NS-3 Version: 3.36

Installation Method: Pre-built package (ns-allinone) Installation Path: $HOME/simulation-tools/ns-3-allinone/ns-allinone-3.36 Build Time: ~10-15 minutes

Components Installed:

ns-3.36           # Core simulator
python bindings   # Python interface (if enabled)
examples          # Tutorial examples
tests             # Unit tests

Build Configuration:

./build.py --enable-examples --enable-tests

Features:

  • ✓ Wireless networking simulation
  • ✓ LTE/5G modules
  • ✓ Channel models
  • ✓ Network protocols
  • ✓ Python support

Python Virtual Environment

Location: /home/sahil/Desktop/cc-project/venv

Python Version: 3.8+ (from system)

Isolation: Completely isolated from system Python


Python Packages (requirements.txt)

Core Data Processing

numpy>=1.21.0              # Numerical computing (v1.21+)
scipy>=1.7.0               # Scientific computing (v1.7+)
pandas>=1.3.0              # Data analysis & manipulation (v1.3+)

Simulation Interfaces

traci>=1.13.0              # SUMO TraCI bindings (v1.13+)

Network & Communication

paramiko>=2.11.0           # SSH protocol library (v2.11+)

Configuration Management

pyyaml>=5.4.0              # YAML parsing (v5.4+)
python-dotenv>=0.19.0      # Environment variable management (v0.19+)
configparser>=5.0.0        # Configuration file parsing (v5.0+)

Data Visualization

matplotlib>=3.4.0          # 2D plotting library (v3.4+)
seaborn>=0.11.0            # Statistical data visualization (v0.11+)

Logging & Monitoring

python-logging-loki>=0.3.2 # Loki logging integration (v0.3.2+)

Optimization & Algorithms

scikit-learn>=0.24.0       # Machine learning library (v0.24+)
cvxpy>=1.1.0               # Convex optimization (v1.1+)

Data Validation

jsonschema>=3.2.0          # JSON validation (v3.2+)

Testing

pytest>=6.2.0              # Testing framework (v6.2+)
pytest-cov>=2.12.0         # Coverage plugin (v2.12+)

Code Quality

black>=21.6b0              # Code formatter (v21.6+)
flake8>=3.9.0              # Linter (v3.9+)
pylint>=2.9.0              # Code analyzer (v2.9+)

Documentation

sphinx>=4.0.0              # Documentation generator (v4.0+)
sphinx-rtd-theme>=1.0.0    # ReadTheDocs theme (v1.0+)

Performance Profiling

memory-profiler>=0.58.0    # Memory profiling (v0.58+)

Environment Variables Set Up

After running setup_env.sh:

# SUMO Configuration
SUMO_HOME             # Path to SUMO installation
SUMO_TOOLS            # Included in PYTHONPATH automatically

# NS-3 Configuration
NS3_HOME              # Path to NS-3 installation
NS3_PATH              # Specific NS-3 version path

# Python Paths
PYTHONPATH            # Includes SUMO tools and project src
VIRTUAL_ENV           # Points to venv directory

# Project Paths
CC_PROJECT_DIR        # Project root directory
LOG_DIR               # Logging directory (auto-created)

# PATH
PATH                  # Includes SUMO/bin and NS3 executable directories

Installation Dependency Tree

Operating System (Ubuntu 20.04+)
│
├─ Build Tools
│  ├─ gcc/g++ (compiler)
│  ├─ cmake (build system)
│  └─ git (version control)
│
├─ SUMO 1.14.1
│  ├─ C++ compiler
│  ├─ cmake
│  ├─ libfox-1.6-dev (GUI)
│  ├─ libxml2-dev (XML support)
│  ├─ libproj-dev (GIS support)
│  └─ libgeos-dev (Geometry)
│
├─ NS-3 3.36
│  ├─ C++ compiler
│  ├─ Python 3
│  └─ (Pre-built dependencies included)
│
└─ Python Virtual Environment
   ├─ Python 3.8+
   ├─ numpy (numerical)
   ├─ scipy (scientific)
   ├─ pandas (data analysis)
   ├─ traci (SUMO interface)
   └─ ... (20+ packages total)

Disk Space Usage Breakdown

Component Size Notes
SUMO source & build ~2GB Includes source code
NS-3 package ~1GB Pre-compiled
Python venv + packages ~500MB Isolated environment
Configuration files ~10MB JSON, XML configs
Project source code ~50MB Python modules
Build artifacts (cached) ~1GB CMake, compiled objects
Total ~5-6GB Reasonable footprint

Note: Leave 10-15GB free for simulation results and logs


Software Version Compatibility

Verified Compatible Combinations

SUMO NS-3 Python Ubuntu Status
1.14.1 3.36 3.8+ 20.04 ✓ Tested
1.14.1 3.36 3.9+ 22.04 ✓ Tested
1.13.0 3.35 3.8+ 20.04 ✓ Works
1.15.0 3.37 3.10+ 22.04 ⚠ Untested

Optional Add-ons

Visualization Tools (Optional)

pip install matplotlib seaborn plotly
# For advanced visualization beyond basic CSV analysis

Jupyter Notebooks (Optional)

pip install jupyter notebook jupyterlab
# For interactive analysis and documentation

Database Support (Optional)

pip install sqlalchemy pymysql
# For storing large result sets

Parallel Computing (Optional)

pip install dask multiprocessing-logging
# For running multiple simulations in parallel

Updating Installed Packages

# Activate environment
source /home/sahil/Desktop/cc-project/setup_env.sh

# Update pip
pip install --upgrade pip

# Update all packages
pip install --upgrade -r requirements.txt

# Check for outdated packages
pip list --outdated

System Cleanup

After installation, to reclaim disk space:

# Clear apt cache
sudo apt-get clean
sudo apt-get autoclean

# Clear Python cache
find . -name "__pycache__" -type d -exec rm -rf {} +
find . -name "*.pyc" -delete

# Clear SUMO build files (keep installation)
cd ~/simulation-tools/sumo/build
make clean

Verification Checklist

After installation, verify all components:

# 1. System tools
gcc --version
cmake --version
git --version

# 2. SUMO
sumo --version
sumo-gui --version  (optional)
netgenerate --version

# 3. NS-3
ls $NS3_PATH/ns3

# 4. Python environment
python3 --version
pip --version

# 5. Python packages
python3 -c "import numpy, scipy, pandas, traci; print('✓ All OK')"

# 6. Project structure
ls -la /home/sahil/Desktop/cc-project/src/

Troubleshooting Installation Issues

Issue: Library not found during SUMO build

Solution: Install missing development packages

sudo apt-get install libfox-1.6-dev libxml2-dev libproj-dev

Issue: Python package import fails

Solution: Ensure virtual environment is activated

source /home/sahil/Desktop/cc-project/setup_env.sh
pip install --upgrade package_name

Issue: TraCI connection fails

Solution: Rebuild SUMO with TraCI support

cd ~/simulation-tools/sumo/build/cmake-build
cmake -DTRACI=ON ../..
make

Issue: NS-3 not found

Solution: Check NS3_PATH environment variable

echo $NS3_PATH
ls $NS3_PATH/ns3

Performance Tips

Building Faster

# Use all CPU cores for compilation
make -j$(nproc)  # Instead of make -j4

Running Simulations Faster

# Run without GUI
python3 scripts/run_simulation.py --config config/simulation_config.json
# GUI slows down simulation significantly

Memory Optimization

# Monitor memory usage
python3 -m memory_profiler scripts/run_simulation.py

License Information

  • SUMO: EPL (Eclipse Public License)
  • NS-3: GPL v2
  • Python Packages: Various (mostly open source)
  • Project Code: Academic use

Refer to individual package licenses for commercial use.


Complete Installation Log Example

When you run ./scripts/install_dependencies.sh, you'll see:

[INFO] Step 1: Updating system packages...
[INFO] Step 2: Installing system dependencies...
[INFO] Step 3: Creating installation directory...
[INFO] Step 4: Installing SUMO (Simulation of Urban Mobility)...
[INFO] Step 5: Installing NS-3 (Network Simulator 3)...
[INFO] Step 6: Setting up Python virtual environment...
[INFO] Step 7: Installing Python dependencies...
[INFO] Step 8: Setting up environment variables...
[INFO] Step 9: Verifying installations...
✓ SUMO verified: Version 1.14.1
✓ NS-3 verified
✓ Python packages verified
[INFO] Installation completed successfully!

You now have complete documentation of all software and libraries required for your simulation!