Tabii mümkün ve daha önce de yapılmış bir şey. Mesela GRChombo diye bir açık kaynak kod var genel görelilik simülasyonları yapmak için kullanılıyor ve bir grup bilim insanı tarafından geliştirilmiş baya da iyidir. Aynı şekilde yine EinsteinPy adında bir Py kütüphanesi de var, genel görelilik ve yerçekimi üzerine hesaplamalar yapmaya yardımcı oluyor, geodezikleri çizmek gibi işlere yarıyor. Rust dilinde de bu modelleri yazmak elbette mümkün örneğin gr-engine-rs diye bir proje var bu da genel görelilik motoru.
Tabii Rust'ın zorlukları da var. Bu tür fiziksel modelleri kodlarken en önemli zorluklardan biri özellikle diferansiyel geometri ve tensör analizi gibi yüksek seviyede soyut matematiksel kavramları verimli bir şekilde temsil edebilmek. Mesela Einstein Alan Denklemleri gibi ifade edilir ve bu denklem tensörlerin manipülasyonu ile çözülmelidir. Rust'ın type system özelliği burada bir avantaj sağlar tamam, çünkü generics ve traits kullanılarak tensör işlemleri için tip güvenliği sağlanabilir. Fakat Rust'ta tensör işlemleri için bir autodiff kütüphanesi eksik olduğu için büyük ihtimalle bu işlevselliği ya kendiniz yazmanız ya da C++ gibi dillerden FFI ile çağırmanız gerekecek. Ama bi ara bir yerde okumuştum hatırlamıyorum şimdi hiç kontrol de etmemiştim, rust-autograd ve ndrray iş yapar diyorlardı tftensor de öyle. Artık ona bir bakarsın belki sonradan eklenmiştir bunlar emin değilim. FFI'a gerek kalmayabilir. Aynı zamanda SIMD optimizasyonlarını düşünmeden bu seviyede hesaplama yapmak performans darboğazlarına neden olacaktır. CPU'nuzu yer.
Bunun dışında Rust'ın no garbage collection modeli bellek yönetimi açısından avantajlı görünse bile dinamik bellek tahsisi gereken adaptive mesh refinement gibi algoritmaların uygulanması zorlaşabilir. Örneklendireck olursak AMR için adaptif bir grid yapısı oluşturmaya çalışırken heap üzerinde veri yapılarının etkin yönetimi gerekiyor. Ayrıca Rust'ın sahiplik modeliyle uyumlu bir şekilde dinamik veri yapılarını yeniden boyutlandırmak için arena allocation veya stackless coroutine tasarımlarını entegre etmek zorundasınız. Bu tür bir proje için özellikle ndarray veya nalgebra gibi mevcut Rust kütüphanelerinden faydalanmayı düşünebilirsiniz ancak bunların yüksek doğruluk ve hız gerektiren senaryolarda yeterli olup olmayacağını derinlemesine test etmek şart, bu da ayrı bir boyutu tabii.
Fiziksel modellerin simülasyonunu yaparken sayısal yöntemlerin seçimi gerçekten kritik. Genel görelilik denklemlerini çözmek genellikle hiperbolik kısmi diferansiyel denklemler sistemini çözmeyi gerektiriyor ve burada nümerik stabilite ile doğruluk çok önemli. Zamansal entegrasyon için Runge-Kutta veya Adams-Bashforth-Moulton gibi çok adımlı yöntemler kullanabilirsin. Uzaysal ayrıklaştırma konusunda da spektral yöntemler veya yüksek dereceli sonlu fark yöntemleri oldukça etkili olabilir diye düşünüyorum. Rust dilinde bu yöntemleri etkin bir şekilde uygulamak mümkün tabii, dilin bellek güvenliği ve tip sistemi bu konuda yardımcı olacaktır. Fakat işte yüksek performanslı lineer cebir kütüphanelerine ihtiyacın olacak çünkü hesaplamalar oldukça yoğun olacak.
Standart Model'in simülasyonuna gelince, kuantum alan teorisinin hesaplamalı zorlukları nedeniyle genellikle Lattice QCD gibi yöntemlere başvurulur. Hesaplamalar yoğun matris işlemleri ve Monte Carlo simülasyonları içerir, in Turkish bu da paralel hesaplama ve GPU hızlandırmasına ihtiyaç duyman anlamına gelir. Rust'ta GPU programlaması için kütüphaneler sınırlı, bu yüzden CUDA veya OpenCL gibi teknolojileri FFI ile entegre etmeyi düşünebilirsin, geliştiriyorlar diye geveliyorlar ancak boş yapıyorlar sen nerede C++ ya da Py'ın ekosistemine ulaşacaksın, anca rüyalarında, ya da rüyalarından bi yatırımcı çıkar gelir tabii orasını bilemem... Ayrıca kuantum alan teorisindeki yeniden normalleştirme ve düzensizliklerin sayısal olarak doğru bir şekilde ele alınması ciddi bir dikkat ve deneyim gerektiriyor illaki. Bu yüzden projeye başlamadan önce fiziksel modelin sayısal özelliklerini çook iyi anlamak ve uygun algoritmaları seçmek çok önemli, yoksa boşa vakit kaybı olur. Ha bir de elektrik tabii.
Elinde NVIDIA H100 Tensor Core GPU varsa iş görür. Böylesine yoğun hesaplamalar için gereken donanım ve enerji tüketimini de hesaba katmak önemli aslında. NVIDIA H100 Tensor Core GPU gibi üst düzey bir kart kullanmayı düşünüyorsan söyleyeyim bu kartın maksimum termal tasarım gücü (TDP) 700W civarında. Yani tek bir GPU bile oldukça yüksek bir enerji tüketimine sahip. Eğer sisteminde birden fazla GPU kullanacaksan, toplam enerji tüketimi ve buna bağlı olarak elektrik maliyetin ciddi şekilde artacaktır. Gerçi bu GPU zaten 1 milyon TL yani mulitple kullanacaksan herhalde elektrik masrafını da düşünecek durumda değilsindir zaten ama orasını bilemem tabii.
AMD'nin EPYC 9005 serisi işlemcileri AKA Turin de çok iyidir, yapay zeka, bulut bilişim ve yoğun hesaplama gerektiren uygulamalar için idealdir. Ennn az 128 GB ram lazım hatta 512 olsa daha iyi olur.