Akademik tadqiqotlar, tushunarli til

Verianla | O‘zbekcha akademik tadqiqotlar va ilm-fan

27 Sentabr 2026, Yakshanba
VERİANLAMustaqil ilmiy nashriyot
Menyuni ochish yoki yopish
...
Bosh sahifa / Amaliy fanlar / MATLAB / Atom–ion dinamikasi uchun GPU tezlashtirilgan MATLAB dasturiy ta’minoti
MATLAB

Atom–ion dinamikasi uchun GPU tezlashtirilgan MATLAB dasturiy ta’minoti

Ushbu tadqiqot past zichlikdagi atom bulutida tutib turilgan ion bilan klassik atom–ion o‘zaro ta’sirlarini MATLABda yuqori parallellikda modellashtirish uchun ishlab chiqilgan ode45gpu va atomiongpu.m dasturlarini o‘rganadi.

24/08/2026  Veri Anla 35 marta ko‘rildi
Atom–ion dinamikasi uchun GPU tezlashtirilgan MATLAB dasturiy ta’minoti

Bu araştırma, past zichlikdagi bir atom bulutu içindeki tuzaklanmış iyonla gerçekleşen klasik atom–ion etkileşimlerini MATLAB ustida yuqori paralellikle modellashtirish etmek uchun geliştirilen ode45gpu va atomiongpu.m yazılımlarını incelemektedir. Sistem, Newton hareket denklemleri 12 bileşenli bir holat vektörüne dönüştürülerek modellenmekte; dördüncü/beşinci mertebe adaptif Runge–Kutta integrasyonu gerçekleştirilmekte va birbirinden bağımsız boshlang‘ich koşulları MATLAB'ın gpuArray va arrayfun mekanizmalarıyla GPU ustida paralelleştirilmektedir. Yüklenen preprint sürümündeki benchmark'a göre özelleştirilmiş ode45gpu, tek CPU çekirdeğinde referans ode45 kullanımından 22 kata kadar hızlı çalışmış; GPU testlerinde yaklaşık 10.000 yörüngeye kadar geniş bir parallellik bölgesi gözlenmiş va örnek bir 8-GPU çalıştırmasında 10 milyondan fazla trayektoriya 15 saatin ostida tamamlanmıştır. Temel sınır, bunun klasik va belirli atom–ion o‘zaro ta’sir modeline göre özelleştirilmiş bir modellashtirish olmasıdır; genel amaçlı ode45'in her problemde GPU ustida doğrudan yerine geçen evrensel bir yechuvchi sifatida gösterilmemiştir.

Tadqiqot qaysi muammoni hal qilishga urinadi?

Soğuk va ultrasoğuk atom–ion fiziğinde bir ion, Paul tuzağı kabi elektromanyetik bir tuzak ichida tutulurken serbest bir atom iyonla etkileşebilir. Tek bir çarpışmanın klasik hareket denklemleri görece küçük bir tizim oluşturmasına rağmen gerçek problem istatistikseldir: atomun boshlang‘ich yönü, hızı va diğer boshlang‘ich koşulları tam sifatida bilinmediği uchun tek bir trayektoriya barcha sistemi temsil etmez.

Bu nedenle binlerce, hatta milyonlarca turli boshlang‘ich koşulunun ayrı ayrı modellashtirish edilmesi gerekir. Her trayektoriya diğerinden bağımsız ekanligi uchun problem, paralel hisoblash açısından son derece elverişlidir. Çalışmanın temel fikri de budur: birbirini beklemek zorunda olmayan çok sayıda küçük ODE problemini GPU'nun çok sayıdaki işlem birimine dağıtmak.

Nima uchun faqat ikkita zarracha modellashtiriladi?

Kaynak, past zichlikdagi tampon gaz koşullarında iyonun bir xil anda esas sifatida tek bir atomla etkileştiğini varsaymaktadır. Böylece tizim faqat bir atom va bir iyondan oluşan iki parçacıklı klasik modele indirgenebilir.

Bu sadeleştirme GPU açısından avantajlıdır. Her trayektoriya az miktarda bellek kullanır va yörüngelerin tamamının sürekli bellekte tutulması zorunlu emas. Hesaplamanın büyük kısmı birbirinden bağımsız küçük sayısal integrasyonlardan oluşur.

Kaynak çalışmadaki fiziksel düzen esas alınarak Verianla uchun yeniden çizilmiş öğretici şema. Atom uzak bir küresel boshlang‘ich yüzeyinden, tuzak merkezindeki iyona doğru başlatılır.

Benchmark tizimida qaysi atom va ion ishlatilgan?

Benchmark uchun tadqiqot, merkezdeki Paul tuzağında başlangıçta hareketsiz bulunan bir Yb+ iyonu bilan yaklaşık 5000 Bohr yarıçapı uzaktan başlatılan bir Rb atomunu kullanmaktadır. Kullanıcı arayüzündeki örnek ayarlarda bunlar ayniqsa 171Yb+ va 87Rb sifatida beriladi.

Atomun benchmark boshlang‘ich hızı \(T=1\,\mu\mathrm{K}\) sıcaklığına göre:

\[ v_0=\sqrt{\frac{3k_BT}{m_a}} \]

bilan belirlenir va başlangıçta iyona doğru yönlendirilir.

Atom–ion o‘zaro ta’siri qaysi potensial bilan modellashtirilgan?

Benchmark'ta atom–ion etkileşimi uzun menzilli çekici va kısa menzilli itici terimin birleşimiyle ifade amalga oshiriladi:

\[ V_{ai}(r)=-\frac{C_4}{r^4}+\frac{C_8}{r^8}. \]

Burada ilk terim uzun menzildeki yük–indüklenmiş dipol etkileşimini temsil ederken, ikinci terim atom bilan ion çok yaklaştığında kısa menzilli itici davranışı modellemektedir.

atomiongpu.m faqat bu maxsus 4–8 biçimine kilitli emas. Kullanıcı arayüzü yanada genel:

\[ V(r)=-\frac{C_n}{r^n}+\frac{C_m}{r^m} \]

ifadesini desteklemektedir.

Paul tutqichi Hamiltonianga qanday kiradi?

Benchmark sisteminin Hamiltonyen'i atom va iyonun kinetik enerjilerini, atom–ion etkileşimini va ion üzerindeki zamana bağlı Paul tuzağı potansiyelini birlikte içerir:

\[ H= \frac{1}{2}m_av_a^2+ \frac{1}{2}m_iv_i^2 -\frac{C_4}{r_{ai}^4} +\frac{C_8}{r_{ai}^8} + \sum_{j=1}^{3} (a_j+2q_j\cos\Omega_{\mathrm{rf}}t) \frac{m_{\mathrm{ion}}\Omega_{\mathrm{rf}}^2}{8} r_j^2. \]

\(a_j\) va \(q_j\) tuzak parametreleri, \(\Omega_{\mathrm{rf}}\) esa radyo-frekans tuzak sürme frekansıdır. Zamana bağlı tuzak nedeniyle sistemin kütle merkezi bilan göreli hareketi basit biçimde birbirinden ayrılamaz.

Nima uchun holat vektori 12 o‘lchamli?

Bir atom va bir iyonun her biri üç uzaysal koordinat va üç tezlik bileşeni taşır. Dolayısıyla:

Durum değişkenleriFiziksel anlam
\(y_1,y_2,y_3\)İyonun x, y va z konumları
\(y_4,y_5,y_6\)İyonun x, y va z tezlik bileşenleri
\(y_7,y_8,y_9\)Atomun x, y va z konumları
\(y_{10},y_{11},y_{12}\)Atomun x, y va z tezlik bileşenleri

Toplamda 12 değişkenli bir holat vektori oluşur va hareket:

\[ \dot{\mathbf y}=f(t,\mathbf y) \]

biçiminde birinci mertebe adi diferansiyel denklem sistemine aylantiriladi.

Atom–ion masofasi qanday hisoblanadi?

\[ r= \sqrt{ (y_1-y_7)^2+ (y_2-y_8)^2+ (y_3-y_9)^2 }. \]

Benchmark o‘zaro ta’sir potansiyelinin türevi esa:

\[ \frac{dV}{dr} ============= ## \frac{4C_4}{r^5} \frac{8C_8}{r^9}. \]

Bu türev atom va iyonun karşılıklı ivmelerini hesaplamak uchun qo‘llanadi. İyon denklemlerine buna ek sifatida Paul tuzağının zamana bağlı kuch terimleri eklenmektedir.

Boshlang‘ich joylashuv nima uchun sfera orqali tanlanadi?

Atom, iyonun merkezde ekanligi \(r_0\) yarıçaplı bir küre ustida başlatılır. Başlangıç koordinatları küresel açılar \(\theta\) va \(\phi\) üzerinden:

\[ x=r_0\sin\theta\cos\phi, ] [ y=r_0\sin\theta\sin\phi, ] [ z=r_0\cos\theta \]

şeklindedir. Head-on durumda tezlik vektori bu konum vektörünün ters yönünde seçilir; yani atom doğrudan merkeze doğru hareket eder.

Neden her θ değerini eşit aralıkla seçmek doğru emas?

Kürenin yüzey alanı kutuplara yaklaşıldıkça turli geometrik ağırlığa sahiptir. Bu nedenle \(\theta\)'yı faqat doğrusal aralıklarla örneklemek küre ustida eşit alan örneklemesi oluşturmaz. Çalışmada eşit katı açı örneklemesi uchun:

\[ \theta=\arccos(1-2u) \]

dönüşümü qo‘llanadi. Burada \(u\), seçilen \(\theta\) sınırlarına karşılık gelen uygun aralıkta eşit aralıklı yoki rastgele seçilmektedir. Böylece her \((\theta,\phi)\) boshlang‘ich koşulu yaklaşık eşit yüzey alanını temsil eder.

Trayektoriyalar nima uchun ba’zan juda murakkablashadi?

Bazı boshlang‘ich koşullarında atom iyonla faqat kısa süre etkileşip geri saçılır. Bazılarında esa atom va ion tekrar tekrar yakınlaşarak geçici sifatida birbirine bağlı, uzun ömürlü bir atom–ion kompleksi meydana getirebilir.

Çalışmanın örnek yörüngesi bu ikinci davranışa sahiptir. \(\theta\approx1{,}02\) va \(\phi\approx0{,}22\) civarındaki maxsus boshlang‘ich koşulu, yoğun va düzensiz bir trayektoriya üretmektedir. Yazarlar bunu ODE sisteminin güçlü doğrusal olmayan va kaotik karakterinin bir örneği sifatida kullanmıştır.

MATLABning standart ode45 yechuvchisi bu yerda qanday ishlaydi?

ode45, Dormand–Prince çiftine dayalı dördüncü/beşinci mertebe adaptif zaman adımlı Runge–Kutta yöntemidir. Kullanıcı:

  • kuch fonksiyonunu \(f(t,y)\),
  • boshlang‘ich koşullarını,
  • modellashtirish zamanını,
  • mutlak toleransı,
  • bağıl toleransı

çözücüye verir.

Çözücü her adımda yerel hata kestirimi yapar. Hata toleranstan büyükse zaman adımı küçültülür; hata kabul edilebilir düzeydeyse adım korunabilir yoki büyütülebilir.

Faqat MATLAB kodini qayta yozish tezlikni qanday qilib taxminan uch baravar oshirdi?

Çalışmanın dikkat çekici bulgularından biri, GPU'ya geçmeden avval bile kuch fonksiyonunun yazım biçiminin büyük performans farkı yaratmasıdır.

İlk kuch fonksiyonunda MATLAB'ın:

y(4:6)

kabi bir ifade uchun geçici üç elemanlı bir vektör oluşturduğu, ardından elemanların ayrı ayrı kullanıldığı qayd etiladi. Yazarlar bunu:

y(4), y(5), y(6)

kabi skaler erişimlere dönüştürmüştür.

Kaynağın benchmark'ında 2500 trayektoriya, tek Intel Haswell CPU çekirdeğinde ilk kuch fonksiyonuyla ode45 kullanıldığında 10 saatten fazla sürerken, optimize edilmiş kuch fonksiyonuyla bir xil ode45 hesabı 3,5 saatin altına düşmüştür. Yazarlar bunu yaklaşık üç kat hızlanma sifatida yorumlamaktadır.

Bu sonuç MATLAB öğrenen biri uchun önemli bir noktayı gösterir: bir xil matematiksel denklem, turli MATLAB kodlama biçimleriyle çok turli tadqiqot sürelerine sahip olabilir.

ode45gpu nima?

ode45gpu, tadqiqotning yazarlarının Dormand–Prince dördüncü/beşinci mertebe adaptif Runge–Kutta algoritmasını yeniden uygulayarak oluşturduğu, tek dosyalı va atom–ion problemi uchun özelleştirilebilir MATLAB fonksiyonudur.

Standart ode45 bilan temel algoritmik mantığı aynıdır; biroq uygulama va çıktı politikası farklıdır.

ode45gpu varsayılan sifatida barcha yörüngeyi saqlash yerine:

  • son zamanı,
  • 12 son holat değişkenini,
  • va kullanıcı tarafından seçilen past bellekli skaler gözlenebilirleri

döndürür.

Ayrıca tek simülasyonun olağanüstü uzun sürmesini engellemek uchun 1.000.000 zaman adımı sonrasında döngüyü sonlandıran güvenlik koşulu mavjud.

Nima uchun butun trayektoriyani saqlamaslik katta afzallik beradi?

Milyonlarca yörüngenin her zaman adımındaki 12 holat değişkenini saqlash bellek ihtiyacını dramatik biçimde büyütürdü. Bunun yerine tadqiqot, birçok gözlenebiliri integrasyon sırasında “on the fly” hesaplamakta va geçmiş adımların tamamını bellekte tutmamaktadır.

Örneğin:

  • iyonun son kinetik enerjisi,
  • kompleks ömrü,
  • hesaplanan zaman adımı sayısı

faqat gerekli bilgiler foydalanib kaydedilebilir.

Neden ode45gpu ichida MATLAB vektörleri parçalanmıştır?

Çalışmanın GPU uygulamasındaki kritik dasturlash kararı budur. MATLAB'ın GPU ustida arrayfun aracılığıyla çalıştırdığı fonksiyonlarda kullanılan kod kısıtları nedeniyle yazarlar 12 elemanlı holat vektörünü ayrı skaler değişkenlere dönüştürmüştür.

Örneğin geleneksel sifatida:

f(1:3)=y(4:6)

shaklida ifade edilebilecek işlem mantıksal sifatida üç ayrı skaler atamaya açılmıştır.

Bu nedenle ode45gpu genel MATLAB ODE kodundan yanada uzun görünse de GPU yürütme modeline yanada uygun bir yapı kazanmıştır.

Kuvvet fonksiyonu nima uchun yedi kez bulunuyor?

Dormand–Prince yöntemi her zaman adımında birden fazla ara eğim değerlendirmesi yapar. Çalışmanın ode45gpu uygulamasında kuch fonksiyonunun skalerleştirilmiş ifadesi yedi ayrı yerde mavjud va her aşamada turli ara holat değişkenleri qo‘llanadi.

Bu, kaynak kodu açısından tekrar kabi görünse de GPU uchun fonksiyon çağrısı va vektör oluşturma yükünü azaltmaya yönelik özelleştirilmiş uygulamanın bir parçasıdır.

Kaynak tadqiqotning gpuArray–arrayfun–ode45gpu–gather yapısı temel alınarak Verianla uchun yeniden çizilmiş MATLAB/GPU veri akışı.

Verianla Live: ode45gpu bilan GPU ustida paralel hisoblash

Bu süreç, tadqiqotning akış şeması va MATLAB kod ekranlarında verilen gerçek işlem sırasını özetlemektedir.

AşamaMATLAB işlemiBilimsel işlevKaynak
1. Başlangıç örneklemesiθ, φ va 12 boshlang‘ich değişkeni oluşturulurBirbirinden bağımsız atom–ion yörüngeleri tanımlanırŞekil 7 va Bölüm 3.3
2. GPU belleğine taşımagpuArrayBaşlangıç koşulları, sabitler va toleranslar GPU ustida tutulurŞekil 7
3. Paralel yürütmearrayfun(@ode45gpu,...)Her boshlang‘ich koşulu uchun adaptif Runge–Kutta integrasyonu çalışırŞekil 7
4. Düşük bellekli çıktıSon durumlar + skaler gözlenebilirlerBütün zaman geçmişini saklamadan milyonlarca trayektoriya işlenebilirBölüm 3.2–3.3
5. Sonuç aktarımıgatherGPU sonuçları CPU tarafında analiz edilmek üzere alınırŞekil 7
6. İstatistik va görselleştirmeatomiongpu.mOlasılık, heatmap, CSV va seçilmiş tam trayektoriyalar üretilirBölüm 4
 

gpuArray bu yerda aynan nima qiladi?

Her boshlang‘ich koşulu uchun bir matris elemanı oluşturulur. Örneğin atomun boshlang‘ich x koordinatlarının tamamı bir matris halinde hesaplanıp GPU belleğine aktarılır. Aynı işlem diğer 11 boshlang‘ich değişkeni uchun de yapılır.

Kuvvet sabitleri va hata toleransları değişmiyorsa bile arrayfun çağrısıyla uyumlu olmak uchun boshlang‘ich matrisleriyle bir xil boyutta, her elemanı bir xil sabit değeri taşıyan GPU dizileri oluşturulur.

arrayfun bu yerda qanday parallellikni ta’minlaydi?

arrayfun, karşılık gelen GPU dizi elemanlarını bağımsız birer fonksiyon çağrısına dönüştürür. Bu çalışmada her indeks bir yörüngeyi temsil eder. Dolayısıyla GPU bir xil anda çok sayıda:

\[ \dot y=f(t,y) \]

problemini turli boshlang‘ich koşullarıyla çözebilir.

gather nima uchun oxirida ishlatiladi?

ode45gpu natijalari GPU belleğinde gpuArray sifatida kalır. Çalışma, son analiz va veri işleme aşamasını CPU tarafında yapmayı tercih ettiği uchun sonuçlar:

GPU → gather → CPU belleği

zinciriyle geri alınmaktadır.

CPU'da ode45gpu gerçekten nima uchun hızlı?

Yüklenen v1 benchmark'ında, 2500 trayektoriya uchun ode45gpu tek CPU çekirdeğinde, yazarların referans sifatida kullandığı ode45 + f(t,y) uygulamasından 22 kat hızlı çalışmıştır. Çalışma shuningdek bu tezlik oranının 28 bağımsız CPU çekirdeğine kadar paralelleştirmede korunduğunu bildirmektedir.

Bu sonucu “MATLAB ode45 her problemde 22 kat yavaştır” biçiminde okumak doğru emas. Benchmark, belirli atom–ion problemi, belirli kuch fonksiyonu va bu maxsus çıktı politikasına aittir. Nitekim tadqiqotning yanada sonraki hakemli sürümünde CPU hızlanma değeri yeniden değerlendirilmiştir.

GPU benchmark'ında qaysi donanımlar kullanıldı?

Çalışma üç NVIDIA Tesla GPU ustida test yapmıştır:

GPUBellek
NVIDIA Tesla K8024 GB
NVIDIA Tesla P10016 GB
NVIDIA Tesla V10032 GB

Her testte bir xil maxsus yörüngenin bağımsız kopyalarının sayısı 1'den 1.000.000'a kadar artırılmıştır.

Yaklaşık 10.000 trayektoriya eşiği nima anlama geliyor?

Üç GPU'da da yaklaşık 10.000 trayektoriya civarında belirgin bir geçiş görülmüştür. Bu sayının ostida trayektoriya sayısı artırıldığında toplam tadqiqot süresi yaklaşık sabit kalmaktadır. Yazarların yorumuna göre bu bölge, GPU'nun yeni yörüngeleri mevcut paralel işlem kapasitesi içine yerleştirebildiğini gösterir.

Eşik aşıldıktan so‘ng tadqiqot süresi trayektoriya sayısıyla yaklaşık doğrusal artmaya başlar. GPU'nun eşzamanlı işlem kapasitesi dolmuştur va ek trayektoriyalar yeni tadqiqot dalgaları halinde işlenmektedir.

Aynı yörüngeyi kopyalamak benchmark'ı yanıltıyor olabilir mi?

Yazarlar bunu shuningdek test etmiştir. Tesla K80 ustida bir xil yörüngenin çok sayıda kopyası bilan küre yüzeyinden eşit katı açıyla örneklenmiş turli boshlang‘ich koşulları karşılaştırılmıştır.

Farklı yörüngelerde ayniqsa küçük örnek sayılarında tadqiqot süresinde yanada fazla dalgalanma görülmüştür; çünkü bazı boshlang‘ich koşulları yanada karmaşık va uzun dinamikler üretmektedir. Yaklaşık parallellik eşiğinden so‘ng iki durumda da tadqiqot süresi trayektoriya sayısıyla yaklaşık doğrusal hale gelmiştir.

atomiongpu.m nima uchun geliştirildi?

ode45gpu'yu doğrudan kullanmak, kuch fonksiyonunu va GPU girişlerini ayrıntılı biçimde düzenlemeyi gerektirir. Yazarlar bu süreci kolaylaştırmak uchun atomiongpu.m adlı bir üst seviye kullanıcı script'i geliştirmiştir.

Kullanıcı dosyanın üst bölümündeki parametreleri değiştirir; script boshlang‘ich koşullarını oluşturur, paralelleştirmeyi düzenler, ode45gpu'yu çalıştırır, sonuçları toplar, gözlenebilirleri işler va dosyaları üretir.

atomiongpu.m bilan qaysi atom va iyonlar değiştirilebilir?

Atom va ion kütleleri atomik birimlerle kullanıcı tarafından girilebilir. Örnek ayarlarda:

  • 171Yb+ iyonu,
  • 87Rb atomu

ishlatilgan.

Atom va ion sıcaklıkları da Kelvin cinsinden ayrı ayrı belirlenebilir.

“head-on” va “thermal” çarpışma modları arasındaki fark nedir?

head-on: Atom sabit hızla doğrudan orijine/iyona doğru gönderilir. İyon başlangıçta orijinde hareketsizdir. Bu modda ion sıcaklığı değişkeni kullanılmaz.

thermal: Atom va ion tezlik bileşenleri sıcaklıklarına karşılık gelen normal dağılımlardan örneklenir. İyonun tuzak içindeki boshlang‘ich koordinatları da sıcaklığa va seküler tuzak frekansına bağlı normal dağılımdan seçilir. Kaynak bu modu atomların oluşturduğu termal banyodaki ion uchun yanada gerçekçi senaryo sifatida tanımlamaktadır.

Potansiyel uchun qaysi giriş biçimleri destekleniyor?

potential seçeneğiKullanıcının verdiği bilgilerKodun hesapladığı
CnCm\(n,m,C_n,C_m\)Katsayılar doğrudan qo‘llanadi
CnDe\(n,m,C_n,D_e\)\(C_m\) analitik sifatida hesaplanır
DeRe\(n,m,D_e,R_e\)\(C_n\) va \(C_m\) analitik sifatida hesaplanır

Bütün durumlarda kullanılan genel potensial:

\[ V(r)=-\frac{C_n}{r^n}+\frac{C_m}{r^m} \]

biçiminde kalır.

İyon tuzaksız, harmonik tuzakta yoki Paul tuzağında ishga tushirilishi mumkin mi?

Evet. Kaynak üç yapı tarif etmektedir.

Tuzaksız tizim

Tuzak parametreleri sıfıra ayarlanır.

Harmonik tuzak

\(q_x=q_y=q_z=0\) seçilir va uygun \(a_x,a_y,a_z\) parametreleri harmonik frekanslara göre girilir.

Paul tuzağı

Kullanıcı \(a_x,a_y,a_z,q_x,q_y,q_z\) va \(\Omega_{\mathrm{rf}}\) değerlerini gerçek Paul tuzağı parametrelerine göre verir.

Simülasyon nima zaman duruyor?

Her trayektoriya iki durma koşulundan hangisi avval gerçekleşirse o anda sonlandırılır:

  • modellashtirish zamanı tmax'a ulaştığında,
  • yoki zaman adımı sayısı maxsteps'e ulaştığında.

Kaynak örneğinde tmax yaklaşık 1 ms va maxsteps 1.000.000'dur.

Kaç trayektoriya ishga tushirilishi mumkin?

Kaynağa göre ntrajectories yaklaşık 10.000.000 düzeyine kadar ayarlanabilir. Yazarlar yaklaşık 25.000.000 yörüngeyi denediklerinde bellek sorunları gözlemlediklerini belirtmektedir.

Buradaki sınır evrensel emas; kullanılan GPU belleği, çıktı seçenekleri va diğer donanım koşullarına bağlıdır.

ntheta va nphi nima işe yarıyor?

Yörünge başlangıçları iki boyutlu bir \(n_\theta\times n_\phi\) matris yapısında organize amalga oshiriladi. nanglesauto="yes" olduğunda program bu iki değeri trayektoriya sayısının kareköküne yakın biçimde otomatik seçer.

Manuel modda:

\[ n_\theta n_\phi=n_{\mathrm{trajectories}} \]

koşulu uygulanır.

CPU va GPU tanlovi qanday amalga oshiriladi?

processor değişkeni:

  • CPU yoki
  • GPU

sifatida ayarlanabilir.

ncores, kullanılacak bağımsız CPU süreçlerini belirler. GPU modunda her süreç kendi GPU'sunda çalıştırılabildiğinden kaynak, ncores değerinin kullanılabilir GPU sayısını aşmaması gerektiğini belirtmektedir.

Tüm yörüngeleri saklamıyorsa belirli bir yörüngeyi qanday çiziyor?

Program avval past bellekli toplu hesaplamayı yapar. Daha so‘ng kullanıcı isterse belirli bir boshlang‘ich koşulunu yeniden çalıştırarak tam yörüngeyi kaydeder.

İki maxsus seçenek vardır:

  • longestlived: en uzun kompleks ömrünü veren boshlang‘ich koşulunu bulur va tam yörüngeyi tekrar hesaplar.
  • custom: kullanıcının girdiği 12 bileşenli maxsus boshlang‘ich koşulunu tam trayektoriya sifatida hesaplar.

Tam trayektoriya dört biçimde görselleştirilir:

  • atom–ion uzaklığına karşı zaman,
  • xy düzlemi trayektoriya izdüşümü,
  • xz izdüşümü,
  • yz izdüşümü.

Hangi gözlenebilirler kaydedilebiliyor?

Çıktı adıKaynakta verilen anlamı
angleAtomun saçılma açısı
bouncesYörünge davomida atom va ion arasındaki kısa menzilli çarpışma sayısı
lifetimeİlk va son bounce arasındaki atom–ion kompleks ömrü
positionİlk bounce sırasında iyonun orijinden masofasi
transferAtom tarafından aktarılan momentum
distSon atom–ion masofasi
nstepsSimülasyonda kullanılan zaman adımı sayısı
KEİyonun son kinetik enerjisi

Sonuç dosyaları qanday yönetiliyor?

Kullanıcı üç temel depolama davranışını kontrol edebilir:

  • MATLAB workspace'in work.mat sifatida kaydedilmesi,
  • barcha gözlenebilirlerin CSV dosyalarının kaydedilmesi,
  • faqat seçilen tek bir gözlenebilirin CSV dosyasının kaydedilmesi.

Program shuningdek çalışmaya başlamadan avval yaklaşık depolama gereksinimini kullanıcıya bildirir. Böylece kullanıcının disk alanı yetersizse modellashtirish başlamadan çıktı seçeneklerini azaltması mümkündür.

Isı haritası neyi ko‘rsatadi?

Kaynak, her gözlenebiliri atomun boshlang‘ich küresel açıları \(\theta\) va \(\phi\)'nin fonksiyonu sifatida ısı haritasına dönüştürebilmektedir. Saçılma açısı uchun verilen örnekte bazı boshlang‘ich bölgeleri basit geri saçılma üretirken başka bölgeler son derece karmaşık örüntüler oluşturmaktadır.

Yazarlar bu desenlerde görülen fraktal yapıyı sistemin kaotik saçılma dinamikleriyle ilişkilendirmektedir.

Kaynak tadqiqotning çıktı mantığı temel alınarak Verianla uchun yeniden çizildi. Toplu simülasyonda tam zaman geçmişi yerine past bellekli gözlenebilirler tutulur; maxsus trayektoriyalar gerektiğinde yeniden hesaplanır.

Örnek çalıştırmada nima oldu?

Makaledeki örnek konsol çıktısında program 10.004.569 atom–ion yörüngesi uchun hisoblash başlatmaktadır. Hesap sekiz GPU foydalanib yürütülmüş va tamamlanma süresi 52.848,874 saniye sifatida raporlanmıştır; tadqiqot bunu 10 milyondan fazla yörüngenin 15 saatin ostida tamamlanması sifatida özetlemektedir.

Aynı örnek çalıştırmada programın hesapladığı kompleks oluşma olasılığı %59,87 sifatida yazdırılmıştır. Bu değer tadqiqotning barcha atom–ion sistemleri uchun evrensel kompleks olasılığı emas; faqat gösterilen parametreler va boshlang‘ich koşulu örneklemesi uchun elde edilen modellashtirish çıktısıdır.

CPU va GPU nima uchun bir xil kaotik yörüngede turli sonuç verebilir?

Çalışmanın MATLAB açısından en öğretici bölümlerinden biri budur. Aynı boshlang‘ich koşulları va bir xil ODE algoritması kullanılmasına rağmen GPU bilan CPU'da hesaplanan çok kaotik bir yörüngenin bounce sayısı va kompleks ömrü turli çıkabilmiştir.

Yazarlar bunu CPU va GPU mimarilerinin kayan noktalı işlemleri turli yuvarlama sıralarıyla gerçekleştirebilmesine bağlamaktadır. Kaotik sistemlerde boshlang‘ich yoki sayısal hesaplamadaki son derece küçük farklar zamanla büyüyebilir.

Örnek konsol çıktısındaki en uzun ömürlü yörüngede GPU hesabı 3 bounce va 987,1 µs, CPU üzerindeki ode45gpu hesabı esa 2 bounce va 954,9 µs vermektedir.

Bu holat tek başına GPU hesabının yanlış ekanligi anlamına gelmez. Program doğrulama amacıyla bir xil maxsus yörüngeyi CPU ustida hem ode45gpu hem MATLAB'ın standart ode45 çözücüsüyle yeniden çalıştırmakta va son durumların uyuşup uyuşmadığını kontrol etmektedir.

Bu bize sayısal modellashtirish hakkında nima öğretiyor?

Bir modellashtirish kodunun bir xil diferansiyel denklemi çözmesi, her donanımda her ara noktada bit düzeyinde bir xil yörüngeyi üretmesini garanti etmez. Özellikle kaotik sistemlerde:

  • kayan noktalı yuvarlama,
  • işlem sıralaması,
  • CPU va GPU mimari farkları

gözlenebilir yörüngeyi zaman ichida ayırabilir. Bu nedenle tadqiqot doğrulamayı faqat tek bir kaotik yörüngenin mikro ayrıntıları üzerinden emas, yechuvchi tutarlılığı va istatistiksel çıktılar üzerinden ele almaktadır.

MATLAB öğrenen biri bu çalışmadan qaysi dasturlash darslarini chiqara oladi?

Birinci ders: MATLAB'da performans faqat algoritmanın matematiksel karmaşıklığı emas; dizi oluşturma, indeksleme va bellek davranışı da hesap süresini ciddi biçimde etkileyebilir.

İkinci ders: GPU'ya geçmeden avval CPU kodunu optimize etmek muhimdir. Kaynakta faqat kuch fonksiyonunun yeniden yazılması yaklaşık üç kat tezlik kazandırmıştır.

Üçüncü ders: GPU'ya uygun kod her zaman CPU uchun yazılan en doğal MATLAB koduyla bir xil biçimde emas. Vektörler burada GPU arrayfun gereksinimleri nedeniyle skaler değişkenlere dönüştürülmüştür.

Dördüncü ders: Milyonlarca simülasyonda barcha ara verileri saqlash yerine faqat ilmiy sifatida gerekli özet değişkenleri hesaplamak çok büyük bellek avantajı sağlayabilir.

Beşinci ders: Paralel işlem biroq bağımsız iş birimleri varsa verimlidir. Bu çalışmada her atom–ion yörüngesi diğerlerinden bağımsız ekanligi uchun GPU paralelliği doğal biçimde uygulanabilmektedir.

Altıncı ders: Sayısal doğrulama zarur. Hız kazanımı tek başına yeterli emas; sonuçların güvenilirliği standart çözücüyle karşılaştırılmalıdır.

Tadqiqot qo‘llab-quvvatlaydigan natijalar

  • Atom–ion klasik yörüngeleri MATLAB ustida bağımsız boshlang‘ich koşulları üzerinden kitlesel biçimde paralelleştirilebilir.
  • Kaynak v1 benchmark'ında kuch fonksiyonunun yeniden yazılması tek başına yaklaşık üç kat CPU hızlanması sağlamıştır.
  • Yüklenen preprint benchmark'ında özelleştirilmiş ode45gpu, belirli referans ode45 kullanımına göre tek CPU çekirdeğinde 22 kata kadar hızlıdır.
  • GPU ustida yaklaşık 10.000 yörüngeye kadar güçlü eşzamanlılık bölgesi gözlenmiştir.
  • atomiongpu.m, yaklaşık on milyon trayektoriya ölçeğine kadar giriş hazırlama, paralel hesap, istatistik, CSV va görselleştirme işlerini otomatikleştirebilir.
  • Saçılma açısı va benzeri gözlenebilirlerin boshlang‘ich açılarına göre ısı haritaları kaotik va fraktal yapılar gösterebilir.

Tadqiqot qo‘llab-quvvatlamaydigan yoki sinamagan natijalar

  • Bu tadqiqot kuantum mekanik atom–ion dinamiğinin tam çözümü emas; klasik hareket denklemlerini kullanmaktadır.
  • ode45gpu'nun barcha ODE problemlerinde MATLAB ode45'ten 22 kat hızlı ekanligi gösterilmemiştir.
  • GPU va CPU'nun her kaotik yörüngede birebir bir xil zaman geçmişini üretmesi beklenmemektedir.
  • Yaklaşık on milyon trayektoriya sınırı barcha bilgisayarlar uchun sabit bir kapasite emas; bellek va donanıma bağlıdır.
  • Çalışma laboratuvar deneyi gerçekleştirmemiş va modellashtirish sonuçlarını yeni bir deneysel veri setiyle doğrudan doğrulamamıştır.
  • Yüklenen v1'deki 22× benchmark değeri yanada sonraki hakemli yayın sürümünün nihai performans sonucu sifatida kullanılmamalıdır.

Tadqiqot usuli va natijalari

Simülasyon türü

Araştırma klasik moleküler dinamik simülasyonudur. Atom va ion noktasal klasik parçacıklar sifatida hareket eder; iç serbestlik dereceleri hesaba katılmaz. Düşük yoğunluk varsayımı nedeniyle tek bir iyonun bir xil anda bir atomla etkileştiği iki parçacıklı dinamik çözülür.

Benchmark fiziksel parametreleri

ParametreKaynak benchmark'ı
AtomRb; kullanıcı arayüzü örneğinde 87Rb
İyonYb+; kullanıcı arayüzü örneğinde 171Yb+
Başlangıç atom–ion masofasi5000 \(a_0\)
Atom sıcaklığı1 µK
İyon başlangıcıPaul tuzağı markazida, benchmark'ta başlangıçta hareketsiz
Benchmark modellashtirish süresi1 ms
ODE holat boyutu12
ODE yöntemiDormand–Prince temelli adaptif 4./5. mertebe Runge–Kutta

Başlangıç koşulları

\[ \mathbf y_0= ( 0,0,0,0,0,0, r_0\sin\theta\cos\phi, r_0\sin\theta\sin\phi, r_0\cos\theta, -v_0\sin\theta\cos\phi, -v_0\sin\theta\sin\phi, -v_0\cos\theta ). \]

İlk altı bileşen benchmark'ta iyonun orijinde va hareketsiz olduğunu; sonraki üç bileşen atom konumunu, son üç bileşen esa atomun merkeze yönelmiş boshlang‘ich hızını verir.

CPU kuch fonksiyonu optimizasyonu

Hesap2500 trayektoriya uchun kaynakta raporlanan sonuç
ode45 + ilk \(f(t,y)\) yazımı10 saatten fazla
ode45 + optimize edilmiş \(g(t,y)\)3,5 saatin ostida
YorumYalnız kuch fonksiyonunun yeniden yazılması yaklaşık 3× hızlanma

ode45gpu CPU benchmark'ı

2500 yörüngede, yüklenen v1'e göre ode45gpu tek CPU çekirdeğinde referans ode45 + f(t,y) çalıştırmasından 22× hızlıdır. Paralellik 28 CPU çekirdeğine kadar artırıldığında kaynak, bu tezlik oranının yaklaşık korunduğunu bildirmektedir.

Bu karşılaştırmanın preprint sürümüne özgü ekanligi ayniqsa korunmalıdır; 2026'daki hakemli sürüm benchmark metodolojisini va performans rakamlarını değiştirmiştir.

GPU ölçekleme deneyi

NVIDIA Tesla K80 24 GB, P100 16 GB va V100 32 GB ustida:

\[ n=1,2,5,10,20,\ldots,1.000.000 \]

trayektoriya test edilmiştir.

Yaklaşık \(n\sim10^4\) yörüngeye kadar tadqiqot süresinin büyük ölçüde sabit olması GPU paralelliğinin henüz doygunluğa ulaşmadığını; yanada so‘ng sürenin yaklaşık \(n\) bilan orantılı büyümesi işlem kapasitesinin dolduğunu ko‘rsatadi.

Gerçekçi boshlang‘ich koşulu testi

K80 ustida bir xil yörüngenin kopyalarıyla yapılan benchmark'a ek sifatida, ilk oktant üzerindeki turli \((\theta,\phi)\) boshlang‘ich koşullarıyla da test yapılmıştır. Küçük \(n\) değerlerinde trayektoriya karmaşıklığı nedeniyle tadqiqot süresinde yanada fazla dalgalanma görülse de yuqori trayektoriya sayısında iki test de yaklaşık doğrusal ölçekleme göstermiştir.

atomiongpu.m örnek çalıştırma sonucu

ÖlçütÖrnek çıktı
Yörünge sayısı10.004.569
Kullanılan GPU sayısı8
Toplam tadqiqot süresi52.848,874 saniye
Kaynağın zaman yorumu10 milyondan fazla trayektoriya, 15 saatin ostida
Kompleks oluşum olasılığı%59,87

Bu tablo tek bir örnek parametre kümesinin çıktısıdır. %59,87 değeri genel atom–ion kompleks oluşum oranı sifatida kullanılmamalıdır.

GPU–CPU farqi xaotik trayektoriyada

HesapBounce sayısıKompleks ömrü
ode45gpu — GPU3987,1 µs
ode45gpu — CPU2954,9 µs

Kaynak bu farklılığı kayan noktalı hesapların GPU va CPU mimarilerinde turli yuvarlama davranışlarına sahip olması va dinamiğin kaotik olmasıyla açıklamaktadır. Kod, shuningdek CPU üzerindeki ode45gpu çıktısını MATLAB'ın ode45 sonucu bilan karşılaştırarak son koşulların eşleşmesini doğrulamaktadır.

Programın ilmiy natijalari

atomiongpu.m toplu simülasyonun ardından:

  • kompleks oluşum olasılığını,
  • saçılma açısı dağılımını,
  • kompleks ömrünü,
  • bounce sayısını,
  • momentum transferini,
  • iyonun son kinetik enerjisini,
  • zaman adımı sayısını,
  • son atom–ion uzaklığını

hesaplayabilir va bu değişkenleri boshlang‘ich \(\theta,\phi\) açılarına göre ısı haritaları halinde gösterebilir.

Yazılımın kuchli tomonlari

  • MATLAB ortamından ayrılmadan GPU paralelliği kullanabilmesi.
  • Çok sayıda bağımsız trayektoriya uchun past bellekli hesap yaklaşımı.
  • Tuzaksız, harmonik va Paul tuzak yapılarını desteklemesi.
  • Atom/ion kütleleri va sıcaklıkların değiştirilebilmesi.
  • Farklı genelleştirilmiş atom–ion potansiyellerinin girilebilmesi.
  • Head-on va thermal boshlang‘ich koşulları.
  • CPU va GPU seçeneklerinin bir xil kullanıcı script'inde bulunması.
  • CSV, heatmap, maxsus trayektoriya va outlier çıktılarının otomatik oluşturulması.
  • Standart ode45 bilan doğrulama kontrolü.

Yöntemsel sınırlılıklar

  • Simülasyon klasik dinamiktir; iç kuantum serbestlik dereceleri yoktur.
  • İki zarracha varsayımı past yoğunluk koşuluna dayanır.
  • ode45gpu genel amaçlı MATLAB ODE API'sinin birebir GPU eşleniği emas; kuch fonksiyonunun maxsus biçimde gömülmesi gerekir.
  • GPU arrayfun kısıtları kod mimarisini şekillendirmiştir.
  • Kaotik dinamiklerde CPU va GPU yörüngeleri küçük kayan nokta farklarından dolayı ayrışabilir.
  • Yaklaşık on milyon trayektoriya kapasitesi donanıma va belleğe bağlıdır.
  • Kaynak, yeni bir laboratuvar atom–ion deneyini raporlamamaktadır.
  • Yüklenen preprint'in benchmark sayıları nihai hakemli sürümde değiştirilmiştir.

Çalışmanın MATLAB açısından asıl önemi

Bu tadqiqot MATLAB'ın faqat “bir denklem yaz, ode45 çağır va grafik çiz” biçiminde kullanılmadığını gösteren güçlü bir örnektir. Tek bir fizik problemi üzerinden:

  1. fiziksel Hamiltonyen kurulmakta,
  2. 12 boyutlu ODE sistemi çıkarılmakta,
  3. standart yechuvchi benchmark amalga oshirilmoqda,
  4. MATLAB kodunun veri yapıları optimize amalga oshirilmoqda,
  5. Runge–Kutta algoritması maxsus sifatida yeniden uygulanmaktadır,
  6. GPU yürütmesine uygun skaler kod oluşturulmaktadır,
  7. milyonlarca boshlang‘ich koşulu gpuArray bilan hazırlanmakta,
  8. arrayfun bilan bağımsız trayektoriyalar paralel çözülmekte,
  9. gather bilan sonuçlar CPU'ya alınmakta,
  10. va son sifatida ilmiy gözlenebilirler, CSV'ler, ısı haritaları va maxsus trayektoriyalar üretilmektedir.

Dolayısıyla tadqiqot MATLAB'da ilmiy hesaplamanın dört temel katmanını bir xil örnekte bir araya getirir: fiziksel modelleme, sayısal analiz, performans mühendisliği va veri görselleştirme.

Manba va usul haqida izoh

Tam özgün tadqiqot adı: GPU-Accelerated MATLAB Software for Atom-Ion Dynamics

Yazarlar: Saajid Chowdhury; Jesús Pérez-Ríos.

Yazar sırası: Kaynaktaki sıra aynen korunmuştur.

Eş katkı/eş birinci yazar: Kaynakta bildirilmemiştir.

Sorumlu yazar: Saajid Chowdhury.

Kurum: Department of Physics and Astronomy, Stony Brook University, Stony Brook, New York 11794, USA.

Yüklenen kaynak türü: Hesaplamalı fizik / ilmiy yazılım preprint'i va klasik moleküler dinamik modellashtirish çalışması.

Preprint platformu: arXiv.

Preprint kimliği: arXiv:2509.12381v1.

Preprint tarihi: 15 Eylül 2025.

Hakemlik durumu: Bu tadqiqot, yüklenen sürüm itibarıyla hakem değerlendirmesinden geçmemiş bir preprinttir; sonuçları bu yayın aşaması dikkate alınarak değerlendirilmelidir.

Yüklenen sürümde DOI: Bulunmamaktadır.

Daha sonraki hakemli yayın: Aynı tadqiqot yanada so‘ng “GPU-parallelized MATLAB software for atom-ion dynamics” başlığıyla Computer Physics Communications, Cilt 321, Makale 110041, 2026'da yayımlanmıştır.

Hakemli sürüm DOI: 10.1016/j.cpc.2026.110041.

Önemli sürüm farkı: Yüklenen arXiv v1'de CPU benchmark'ı uchun 22× hızlanma raporlanırken, nihai hakemli yayın CPU hızlanmasını yaklaşık 7× sifatida raporlamakta va shuningdek bir milyon yörüngenin GPU paralelleştirmesinde CPU ode45 tabanına göre 600–3500× hızlanma bildirmektedir. Bu Verianla makalesinin ilmiy gövdesindeki 22×, 10.000-trayektoriya eşiği va örnek 8-GPU çalıştırma değerleri faqat yüklenen v1'den alınmıştır; iki sürüm sessizce birleştirilmemiştir.

Program: atomiongpu.m.

Sayısal yechuvchi: ode45gpu.

Programlama ortamı: MATLAB R2023a va Parallel Computing Toolbox.

Geliştirici deposu: Kaynakta saajidchowdhury/supplementGPU sifatida belirtilmiştir.

Lisans: Yüklenen preprint'in program özetinde “Licensing provisions” alanı doldurulmamıştır. Nihai hakemli sürüm program uchun CC0 1.0 belirtmektedir.

Finansman: United States Air Force Office of Scientific Research, FA9550-23-1-0202.

Veri/kod erişimi: Kaynak, kodların, şekillerin va yardımcı materyalin geliştirici deposunda bulunduğunu belirtmektedir.

Yazar katkıları: Yüklenen v1'de ayrı CRediT katkı tablosu bulunmamaktadır. Daha sonraki hakemli sürümde Saajid Chowdhury uchun yazılım, görselleştirme va yazım; Jesús Pérez-Ríos uchun kavramsallaştırma, metodoloji, danışmanlık va finansman edinimi dahil katkılar raporlanmıştır.

Çıkar çatışması: Yüklenen v1'de ayrı bir çıkar çatışması bölümü bulunmamaktadır; hakemli yayın sürümünde shuningdek beyan edilmiştir.

Bilimsel içerik kaynağı: Bu Verianla makalesindeki fizik modeli, algoritma, MATLAB mimarisi, giriş parametreleri, benchmark değerleri, GPU testleri, konsol natijalari va ilmiy yorumlar kullanıcının yüklediği arXiv v1 çalışmasına dayanmaktadır. Daha sonraki yayın sürümü faqat bibliyografik doğrulama va sürüm farkının açıkça belirtilmesi amacıyla ishlatilgan.

Temel yöntemsel sınır: Bu bir klasik moleküler dinamik simülasyonudur. Çalışma yeni bir saha yoki laboratuvar deneyi sunmaz; kuantum dinamiğinin tam çözümü emas va yazılım performansı problem, kod yapısı va donanım bağımlıdır.


Ulashish:

Izohlar ko‘rib chiqilgandan keyin e’lon qilinadi.Izohingiz tasdiqlash jarayoniga yuboriladi va ma’qullangach ko‘rinadi.

Izoh qoldiring

E-pochta manzilingiz chop etilmaydi. Majburiy maydonlar * bilan belgilangan

Bu saytda cookie-fayllarga ruxsat berish foydalanish tajribangizni yaxshilaydi. Cookie-fayllar siyosati