Hardware Recommendations
Pulsejet.AI is designed for performance, especially its core components like ScramDB (query engine) and PulsejetDB (vector database). While it can run on standard hardware, optimal performance is achieved with the following considerations:
General Recommendations
- CPU: Modern multi-core processors are highly recommended. ScramDB’s query engine (ScramVM) is designed for parallelism (morsel-based execution) and benefits significantly from multiple cores. Higher clock speeds also help single-threaded performance aspects.
- RAM: Sufficient RAM is crucial for caching data (like bytecode in ScramVM, index data in PulsejetDB) and holding intermediate query results. The amount needed depends heavily on your dataset size and query complexity. Start with at least 16GB for development/testing, but scale up significantly (64GB, 128GB, or more) for larger datasets and production workloads.
- Storage: Fast storage is essential for both the embedded Tundra engine within ScramDB and for PulsejetDB’s vector storage.
- NVMe SSDs: Strongly recommended for the best I/O performance, minimizing latency for data reads/writes.
- SATA SSDs: A viable alternative if NVMe is not available, but expect lower performance compared to NVMe.
- HDDs: Not recommended for primary data storage due to high latency, though they might be acceptable for storing large external datasets (e.g., Parquet files accessed by ScramDB or Kerosene) if query performance on that data is less critical.
- Network: A fast, low-latency network is important if components are distributed across multiple machines (though the default Docker setup runs them on a single host).
Specific Considerations
- ScramDB (ScramVM):
- CPU Cores: Benefits directly from more cores due to its parallel, morsel-based execution model.
- NUMA Awareness: ScramVM attempts to be NUMA-aware, pinning worker threads to specific cores. Running on NUMA architecture hardware can provide performance benefits if configured correctly, as it minimizes cross-socket memory access latency.
- PulsejetDB (Vector Search):
- RAM: Vector indexes (like HNSW) can consume significant RAM for optimal search performance. Ensure enough RAM to hold frequently accessed parts of the index in memory.
- CPU: Similarity search calculations can be CPU-intensive.
- NTU (AI Processing):
- GPU: If using GPU-accelerated models for embedding generation or LLM inference, a powerful Nvidia GPU with sufficient VRAM is required. Ensure drivers and the NVIDIA Container Toolkit are installed.
- CPU/RAM: Even with a GPU, sufficient CPU and RAM are needed for data handling and orchestration around the AI models.
Summary
For optimal performance, prioritize:
- Fast Storage (NVMe SSDs)
- Sufficient RAM (Scale based on data size)
- Multi-Core CPUs (More cores generally better for ScramVM)
- (Optional) Nvidia GPU (For NTU AI acceleration)
Always monitor resource utilization (CPU, RAM, I/O, Network) under your specific workload to identify bottlenecks and guide hardware scaling decisions.