BioPhys-Neural-Agent / src /bin /run_large_scale.rs
minseok
🌌 Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550
Raw
History Blame Contribute Delete
2.92 kB
// πŸš€ 100만 λ…Έλ“œ λŒ€κ·œλͺ¨ 병렬 + μ‹€μ‹œκ°„ νŒŒλ™ μ£Όμž… 톡합 벀치마크 (src/bin/run_large_scale.rs)
#[path="../live_streamer.rs"] mod live_streamer;
#[path="../parallel_engine.rs"] mod parallel_engine;
#[path="../korean_telemetry.rs"] mod korean_telemetry;
use std::time::Instant;
use live_streamer::LiveSignalStreamer;
use parallel_engine::LargeScaleEngine;
use korean_telemetry::TelemetryReporter;
fn main() {
println!("============================================================");
println!(" πŸš€ BioPhys 100만 λ…Έλ“œ(1024x1024) λŒ€κ·œλͺ¨ 병렬 μ—”μ§„ ꡬ동");
println!("============================================================\n");
let grid_size = 1024; // 1,048,576 λ…Έλ“œ
let total_nodes = grid_size * grid_size;
println!("βš™οΈ [μ‹œμŠ€ν…œ 사양] 총 {}개 8λŒ€ μœ„μƒ λ…Έλ“œ ν• λ‹Ή μ™„λ£Œ (1M Nodes)", total_nodes);
let mut engine = LargeScaleEngine::new(grid_size);
let mut streamer = LiveSignalStreamer::new(3.0); // 3Hz 고쑰파 νŒŒλ™
println!("🌊 [μ‹€μ‹œκ°„ μ‹ ν˜Έ] 고주파 μ™ΈλΆ€ νŒŒλ™(Harmonic Wave) μ‹€μ‹œκ°„ μ£Όμž… μ‹œμž‘...\n");
let total_ticks = 10;
let start_time = Instant::now();
for tick in 1..=total_ticks {
// 1. μ™ΈλΆ€ μ‹€μ‹œκ°„ νŒŒλ™ μ‹ ν˜Έ 생성 및 μ•”λ°˜μΈ΅ μ£Όμž…
let external_wave = streamer.generate_harmonic_wave(grid_size);
for (b, w) in engine.bedrock.iter_mut().zip(external_wave.iter()) {
*b = (*b * 0.7) + (*w * 0.3); // μ™ΈλΆ€ νŒŒλ™ μœ΅ν•©
}
// 2. 100만 λ…Έλ“œ λ©€ν‹°μŠ€λ ˆλ“œ 병렬 계산 (Rayon)
let tick_start = Instant::now();
let avg_energy = engine.step_parallel();
let tick_dur = tick_start.elapsed();
// 3. ν•œκ΅­μ–΄ ν…”λ ˆλ©”νŠΈλ¦¬ 보고
let sample_phases: Vec<f32> = engine.topsoil[0..10_000].iter().map(|p| p.value()).collect();
let report = TelemetryReporter::analyze(&sample_phases, avg_energy, tick);
print!("{}", report);
println!(" └─ 100만 λ…Έλ“œ 1-Tick μ†Œμš” μ‹œκ°„: {:.2} ms\n", tick_dur.as_secs_f64() * 1000.0);
}
let total_elapsed = start_time.elapsed().as_secs_f64();
let total_cell_updates = (total_nodes as f64) * (total_ticks as f64);
let mega_updates_per_sec = (total_cell_updates / total_elapsed) / 1_000_000.0;
println!("============================================================");
println!(" πŸ“Š λŒ€κ·œλͺ¨ 병렬 μ‹€μΈ‘ 벀치마크 κ²°κ³Ό");
println!("============================================================");
println!(" ⏱️ 총 μ—°μ‚° μ‹œκ°„ : {:.4} 초", total_elapsed);
println!(" πŸ”„ 총 κ°±μ‹  μ…€ 수 : {:.1} Million Cells", total_cell_updates / 1_000_000.0);
println!(" ⚑ λ©€ν‹°μŠ€λ ˆλ“œ μ²˜λ¦¬λŸ‰ : {:.2} MCell/sec (μ΄ˆλ‹Ή μˆ˜μ–΅ 개 μ…€)", mega_updates_per_sec);
println!("============================================================");
}