minseok
π Release BioPhys 6.0 Grand Master: 16GB (14.89GB) Gemma-4 100% Devour, Ecosystem Evolution, Solar MoE, SNN Autoregressive SDK, Dynamic PhaseVM
be99550 | // π 100λ§ λ Έλ λκ·λͺ¨ λ³λ ¬ + μ€μκ° νλ μ£Όμ ν΅ν© λ²€μΉλ§ν¬ (src/bin/run_large_scale.rs) | |
| mod live_streamer; | |
| mod parallel_engine; | |
| 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!("============================================================"); | |
| } | |