
Bu araştırma, aşağı sıxlıqlı bir atom bulutu içindeki tuzaklanmış iyonla gerçekleşen klasik atom–ion etkileşimlerini MATLAB üzərində yüksək paralellikle simulyasiya etmek üçün geliştirilen ode45gpu və atomiongpu.m yazılımlarını incelemektedir. Sistem, Newton hareket denklemleri 12 bileşenli bir vəziyyət vektörüne dönüştürülerek modellenmekte; dördüncü/beşinci mertebe adaptif Runge–Kutta integrasyonu gerçekleştirilmekte və birbirinden bağımsız başlanğıc koşulları MATLAB'ın gpuArray və arrayfun mekanizmalarıyla GPU üzərində 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 paralellik bölgesi gözlenmiş və örnek bir 8-GPU çalıştırmasında 10 milyondan fazla orbit 15 saatin altında tamamlanmıştır. Temel sınır, bunun klasik və belirli atom–ion qarşılıqlı təsir modeline göre özelleştirilmiş bir simulyasiya olmasıdır; genel amaçlı ode45'in her problemde GPU üzərində doğrudan yerine geçen evrensel bir həlledici kimi gösterilmemiştir.
Tədqiqat hansı problemi həll etməyə çalışır?
Soğuk və ultrasoğuk atom–ion fiziğinde bir ion, Paul tuzağı kimi elektromanyetik bir tuzak içində tutulurken serbest bir atom iyonla etkileşebilir. Tek bir çarpışmanın klasik hareket denklemleri görece küçük bir sistem oluşturmasına rağmen gerçek problem istatistikseldir: atomun başlanğıc yönü, hızı və diğer başlanğıc koşulları tam kimi bilinmediği üçün tek bir orbit bütün sistemi temsil etmez.
Bu nedenle binlerce, hatta milyonlarca müxtəlif başlanğıc koşulunun ayrı ayrı simulyasiya edilmesi gerekir. Her orbit diğerinden bağımsız olduğu üçün problem, paralel hesablama 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.
Nə üçün yalnız iki hissəcik simulyasiya edilir?
Kaynak, aşağı sıxlıqlı tampon gaz koşullarında iyonun eyni anda esas kimi tek bir atomla etkileştiğini varsaymaktadır. Böylece sistem yalnız bir atom və bir iyondan oluşan iki parçacıklı klasik modele indirgenebilir.
Bu sadeleştirme GPU açısından avantajlıdır. Her orbit az miktarda bellek kullanır və yörüngelerin tamamının sürekli bellekte tutulması zorunlu deyil. Hesaplamanın büyük kısmı birbirinden bağımsız küçük sayısal integrasyonlardan oluşur.
Benchmark sistemində hansı atom və iondan istifadə edilmişdir?
Benchmark üçün tədqiqat, merkezdeki Paul tuzağında başlangıçta hareketsiz bulunan bir Yb+ iyonu ilə yaklaşık 5000 Bohr yarıçapı uzaktan başlatılan bir Rb atomunu kullanmaktadır. Kullanıcı arayüzündeki örnek ayarlarda bunlar xüsusilə 171Yb+ və 87Rb kimi verilir.
Atomun benchmark başlanğıc hızı \(T=1\,\mu\mathrm{K}\) sıcaklığına göre:
\[ v_0=\sqrt{\frac{3k_BT}{m_a}} \]
ilə belirlenir və başlangıçta iyona doğru yönlendirilir.
Atom–ion qarşılıqlı təsiri hansı potensialla modelləşdirilmişdir?
Benchmark'ta atom–ion etkileşimi uzun menzilli çekici və kısa menzilli itici terimin birleşimiyle ifade edilir:
\[ 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 ilə ion çok yaklaştığında kısa menzilli itici davranışı modellemektedir.
atomiongpu.m yalnız bu xüsusi 4–8 biçimine kilitli deyil. Kullanıcı arayüzü daha genel:
\[ V(r)=-\frac{C_n}{r^n}+\frac{C_m}{r^m} \]
ifadesini desteklemektedir.
Paul tələsi Hamiltoniana necə daxil olur?
Benchmark sisteminin Hamiltonyen'i atom və iyonun kinetik enerjilerini, atom–ion etkileşimini və 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\) və \(q_j\) tuzak parametreleri, \(\Omega_{\mathrm{rf}}\) isə radyo-frekans tuzak sürme frekansıdır. Zamana bağlı tuzak nedeniyle sistemin kütle merkezi ilə göreli hareketi basit biçimde birbirinden ayrılamaz.
Nə üçün vəziyyət vektoru 12 ölçülüdür?
Bir atom və bir iyonun her biri üç uzaysal koordinat və üç sürət bileşeni taşır. Dolayısıyla:
| Durum değişkenleri | Fiziksel anlam |
|---|---|
| \(y_1,y_2,y_3\) | İyonun x, y və z konumları |
| \(y_4,y_5,y_6\) | İyonun x, y və z sürət bileşenleri |
| \(y_7,y_8,y_9\) | Atomun x, y və z konumları |
| \(y_{10},y_{11},y_{12}\) | Atomun x, y və z sürət bileşenleri |
Toplamda 12 değişkenli bir vəziyyət vektoru oluşur və hareket:
\[ \dot{\mathbf y}=f(t,\mathbf y) \]
biçiminde birinci mertebe adi diferansiyel denklem sistemine çevrilir.
Atom–ion məsafəsi necə hesablanır?
\[ r= \sqrt{ (y_1-y_7)^2+ (y_2-y_8)^2+ (y_3-y_9)^2 }. \]
Benchmark qarşılıqlı təsir potansiyelinin türevi isə:
\[ \frac{dV}{dr} ============= ## \frac{4C_4}{r^5} \frac{8C_8}{r^9}. \]
Bu türev atom və iyonun karşılıklı ivmelerini hesaplamak üçün istifadə olunur. İyon denklemlerine buna ek kimi Paul tuzağının zamana bağlı qüvvə terimleri eklenmektedir.
Başlanğıc mövqeyi nə üçün sfera üzərindən seçilir?
Atom, iyonun merkezde olduğu \(r_0\) yarıçaplı bir küre üzərində başlatılır. Başlangıç koordinatları küresel açılar \(\theta\) və \(\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 sürət vektoru 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 deyil?
Kürenin yüzey alanı kutuplara yaklaşıldıkça müxtəlif geometrik ağırlığa sahiptir. Bu nedenle \(\theta\)'yı yalnız doğrusal aralıklarla örneklemek küre üzərində eşit alan örneklemesi oluşturmaz. Çalışmada eşit katı açı örneklemesi üçün:
\[ \theta=\arccos(1-2u) \]
dönüşümü istifadə olunur. Burada \(u\), seçilen \(\theta\) sınırlarına karşılık gelen uygun aralıkta eşit aralıklı və ya rastgele seçilmektedir. Böylece her \((\theta,\phi)\) başlanğıc koşulu yaklaşık eşit yüzey alanını temsil eder.
Orbitlər nə üçün bəzən çox mürəkkəb olur?
Bazı başlanğıc koşullarında atom iyonla yalnız kısa süre etkileşip geri saçılır. Bazılarında isə atom və ion tekrar tekrar yakınlaşarak geçici kimi 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\) və \(\phi\approx0{,}22\) civarındaki xüsusi başlanğıc koşulu, yoğun və düzensiz bir orbit üretmektedir. Yazarlar bunu ODE sisteminin güçlü doğrusal olmayan və kaotik karakterinin bir örneği kimi kullanmıştır.
MATLAB-ın standart ode45 həlledicisi burada necə işləyir?
ode45, Dormand–Prince çiftine dayalı dördüncü/beşinci mertebe adaptif zaman adımlı Runge–Kutta yöntemidir. Kullanıcı:
- qüvvə fonksiyonunu \(f(t,y)\),
- başlanğıc koşullarını,
- simulyasiya 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 və ya büyütülebilir.
Yalnız MATLAB kodunu yenidən yazmaq təxminən üçqat sürəti necə təmin etdi?
Çalışmanın dikkat çekici bulgularından biri, GPU'ya geçmeden əvvəl bile qüvvə fonksiyonunun yazım biçiminin büyük performans farkı yaratmasıdır.
İlk qüvvə fonksiyonunda MATLAB'ın:
y(4:6)
kimi bir ifade üçün geçici üç elemanlı bir vektör oluşturduğu, ardından elemanların ayrı ayrı kullanıldığı qeyd olunur. Yazarlar bunu:
y(4), y(5), y(6)
kimi skaler erişimlere dönüştürmüştür.
Kaynağın benchmark'ında 2500 orbit, tek Intel Haswell CPU çekirdeğinde ilk qüvvə fonksiyonuyla ode45 kullanıldığında 10 saatten fazla sürerken, optimize edilmiş qüvvə fonksiyonuyla eyni ode45 hesabı 3,5 saatin altına düşmüştür. Yazarlar bunu yaklaşık üç kat hızlanma kimi yorumlamaktadır.
Bu sonuç MATLAB öğrenen biri üçün önemli bir noktayı gösterir: eyni matematiksel denklem, müxtəlif MATLAB kodlama biçimleriyle çok müxtəlif tədqiqat sürelerine sahip olabilir.
ode45gpu nədir?
ode45gpu, tədqiqatın yazarlarının Dormand–Prince dördüncü/beşinci mertebe adaptif Runge–Kutta algoritmasını yeniden uygulayarak oluşturduğu, tek dosyalı və atom–ion problemi üçün özelleştirilebilir MATLAB fonksiyonudur.
Standart ode45 ilə temel algoritmik mantığı aynıdır; lakin uygulama və çıktı politikası farklıdır.
ode45gpu varsayılan kimi bütün yörüngeyi saxlamaq yerine:
- son zamanı,
- 12 son vəziyyət değişkenini,
- və kullanıcı tarafından seçilen aşağı bellekli skaler gözlenebilirleri
döndürür.
Ayrıca tek simülasyonun olağanüstü uzun sürmesini engellemek üçün 1.000.000 zaman adımı sonrasında döngüyü sonlandıran güvenlik koşulu mövcuddur.
Nə üçün bütün orbiti saxlamamaq böyük üstünlükdür?
Milyonlarca yörüngenin her zaman adımındaki 12 vəziyyət değişkenini saxlamaq bellek ihtiyacını dramatik biçimde büyütürdü. Bunun yerine tədqiqat, birçok gözlenebiliri integrasyon sırasında “on the fly” hesaplamakta və geçmiş adımların tamamını bellekte tutmamaktadır.
Örneğin:
- iyonun son kinetik enerjisi,
- kompleks ömrü,
- hesaplanan zaman adımı sayısı
yalnız gerekli bilgiler istifadə edilərək kaydedilebilir.
Neden ode45gpu içində MATLAB vektörleri parçalanmıştır?
Çalışmanın GPU uygulamasındaki kritik proqramlaşdırma kararı budur. MATLAB'ın GPU üzərində arrayfun aracılığıyla çalıştırdığı fonksiyonlarda kullanılan kod kısıtları nedeniyle yazarlar 12 elemanlı vəziyyət vektörünü ayrı skaler değişkenlere dönüştürmüştür.
Örneğin geleneksel kimi:
f(1:3)=y(4:6)
şəklində ifade edilebilecek işlem mantıksal kimi üç ayrı skaler atamaya açılmıştır.
Bu nedenle ode45gpu genel MATLAB ODE kodundan daha uzun görünse de GPU yürütme modeline daha uygun bir yapı kazanmıştır.
Kuvvet fonksiyonu nə üçün 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 qüvvə fonksiyonunun skalerleştirilmiş ifadesi yedi ayrı yerde mövcuddur və her aşamada müxtəlif ara vəziyyət değişkenleri istifadə olunur.
Bu, kaynak kodu açısından tekrar kimi görünse de GPU üçün fonksiyon çağrısı və vektör oluşturma yükünü azaltmaya yönelik özelleştirilmiş uygulamanın bir parçasıdır.
Verianla Live: ode45gpu ilə GPU üzərində paralel hesablama
Bu süreç, tədqiqatın akış şeması və MATLAB kod ekranlarında verilen gerçek işlem sırasını özetlemektedir.
| Aşama | MATLAB işlemi | Bilimsel işlev | Kaynak |
|---|---|---|---|
| 1. Başlangıç örneklemesi | θ, φ və 12 başlanğıc değişkeni oluşturulur | Birbirinden bağımsız atom–ion yörüngeleri tanımlanır | Şekil 7 və Bölüm 3.3 |
| 2. GPU belleğine taşıma | gpuArray | Başlangıç koşulları, sabitler və toleranslar GPU üzərində tutulur | Şekil 7 |
| 3. Paralel yürütme | arrayfun(@ode45gpu,...) | Her başlanğıc koşulu üçün adaptif Runge–Kutta integrasyonu çalışır | Şekil 7 |
| 4. Düşük bellekli çıktı | Son durumlar + skaler gözlenebilirler | Bütün zaman geçmişini saklamadan milyonlarca orbit işlenebilir | Bölüm 3.2–3.3 |
| 5. Sonuç aktarımı | gather | GPU sonuçları CPU tarafında analiz edilmek üzere alınır | Şekil 7 |
| 6. İstatistik və görselleştirme | atomiongpu.m | Olasılık, heatmap, CSV və seçilmiş tam orbitlər üretilir | Bölüm 4 |
gpuArray burada dəqiq nə edir?
Her başlanğıc koşulu üçün bir matris elemanı oluşturulur. Örneğin atomun başlanğıc x koordinatlarının tamamı bir matris halinde hesaplanıp GPU belleğine aktarılır. Aynı işlem diğer 11 başlanğıc değişkeni üçün de yapılır.
Kuvvet sabitleri və hata toleransları değişmiyorsa bile arrayfun çağrısıyla uyumlu olmak üçün başlanğıc matrisleriyle eyni boyutta, her elemanı eyni sabit değeri taşıyan GPU dizileri oluşturulur.
arrayfun burada necə paralellik yaradır?
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 eyni anda çok sayıda:
\[ \dot y=f(t,y) \]
problemini müxtəlif başlanğıc koşullarıyla çözebilir.
gather nə üçün sonda istifadə olunur?
ode45gpu çıxışları GPU belleğinde gpuArray kimi kalır. Çalışma, son analiz və veri işleme aşamasını CPU tarafında yapmayı tercih ettiği üçün sonuçlar:
GPU → gather → CPU belleği
zinciriyle geri alınmaktadır.
CPU'da ode45gpu gerçekten nə üçün hızlı?
Yüklenen v1 benchmark'ında, 2500 orbit üçün ode45gpu tek CPU çekirdeğinde, yazarların referans kimi kullandığı ode45 + f(t,y) uygulamasından 22 kat hızlı çalışmıştır. Çalışma həmçinin bu sürət 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 deyil. Benchmark, belirli atom–ion problemi, belirli qüvvə fonksiyonu və bu xüsusi çıktı politikasına aittir. Nitekim tədqiqatın daha sonraki hakemli sürümünde CPU hızlanma değeri yeniden değerlendirilmiştir.
GPU benchmark'ında hansı donanımlar kullanıldı?
Çalışma üç NVIDIA Tesla GPU üzərində test yapmıştır:
| GPU | Bellek |
|---|---|
| NVIDIA Tesla K80 | 24 GB |
| NVIDIA Tesla P100 | 16 GB |
| NVIDIA Tesla V100 | 32 GB |
Her testte eyni xüsusi 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 orbit eşiği nə anlama geliyor?
Üç GPU'da da yaklaşık 10.000 orbit civarında belirgin bir geçiş görülmüştür. Bu sayının altında orbit sayısı artırıldığında toplam tədqiqat 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 sonra tədqiqat süresi orbit sayısıyla yaklaşık doğrusal artmaya başlar. GPU'nun eşzamanlı işlem kapasitesi dolmuştur və ek orbitlər yeni tədqiqat dalgaları halinde işlenmektedir.
Aynı yörüngeyi kopyalamak benchmark'ı yanıltıyor olabilir mi?
Yazarlar bunu həmçinin test etmiştir. Tesla K80 üzərində eyni yörüngenin çok sayıda kopyası ilə küre yüzeyinden eşit katı açıyla örneklenmiş müxtəlif başlanğıc koşulları karşılaştırılmıştır.
Farklı yörüngelerde xüsusilə küçük örnek sayılarında tədqiqat süresinde daha fazla dalgalanma görülmüştür; çünkü bazı başlanğıc koşulları daha karmaşık və uzun dinamikler üretmektedir. Yaklaşık paralellik eşiğinden sonra iki durumda da tədqiqat süresi orbit sayısıyla yaklaşık doğrusal hale gelmiştir.
atomiongpu.m nə üçün geliştirildi?
ode45gpu'yu doğrudan kullanmak, qüvvə fonksiyonunu və GPU girişlerini ayrıntılı biçimde düzenlemeyi gerektirir. Yazarlar bu süreci kolaylaştırmak üçün 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 başlanğıc koşullarını oluşturur, paralelleştirmeyi düzenler, ode45gpu'yu çalıştırır, sonuçları toplar, gözlenebilirleri işler və dosyaları üretir.
atomiongpu.m ilə hansı atom və iyonlar değiştirilebilir?
Atom və ion kütleleri atomik birimlerle kullanıcı tarafından girilebilir. Örnek ayarlarda:
- 171Yb+ iyonu,
- 87Rb atomu
istifadə edilmişdir.
Atom və ion sıcaklıkları da Kelvin cinsinden ayrı ayrı belirlenebilir.
“head-on” və “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 və ion sürət bileşenleri sıcaklıklarına karşılık gelen normal dağılımlardan örneklenir. İyonun tuzak içindeki başlanğıc koordinatları da sıcaklığa və seküler tuzak frekansına bağlı normal dağılımdan seçilir. Kaynak bu modu atomların oluşturduğu termal banyodaki ion üçün daha gerçekçi senaryo kimi tanımlamaktadır.
Potansiyel üçün hansı giriş biçimleri destekleniyor?
| potential seçeneği | Kullanıcının verdiği bilgiler | Kodun hesapladığı |
|---|---|---|
| CnCm | \(n,m,C_n,C_m\) | Katsayılar doğrudan istifadə olunur |
| CnDe | \(n,m,C_n,D_e\) | \(C_m\) analitik kimi hesaplanır |
| DeRe | \(n,m,D_e,R_e\) | \(C_n\) və \(C_m\) analitik kimi 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 və ya Paul tuzağında işlədilə bilər mi?
Evet. Kaynak üç yapı tarif etmektedir.
Tuzaksız sistem
Tuzak parametreleri sıfıra ayarlanır.
Harmonik tuzak
\(q_x=q_y=q_z=0\) seçilir və 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\) və \(\Omega_{\mathrm{rf}}\) değerlerini gerçek Paul tuzağı parametrelerine göre verir.
Simülasyon nə zaman duruyor?
Her orbit iki durma koşulundan hangisi əvvəl gerçekleşirse o anda sonlandırılır:
- simulyasiya zamanı
tmax'a ulaştığında, - və ya zaman adımı sayısı
maxsteps'e ulaştığında.
Kaynak örneğinde tmax yaklaşık 1 ms və maxsteps 1.000.000'dur.
Kaç orbit işlədilə bilər?
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 deyil; kullanılan GPU belleği, çıktı seçenekleri və diğer donanım koşullarına bağlıdır.
ntheta və nphi nə işe yarıyor?
Yörünge başlangıçları iki boyutlu bir \(n_\theta\times n_\phi\) matris yapısında organize edilir. nanglesauto="yes" olduğunda program bu iki değeri orbit 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 və GPU seçimi necə edilir?
processor değişkeni:
- CPU və ya
- GPU
kimi 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 necə çiziyor?
Program əvvəl aşağı bellekli toplu hesaplamayı yapar. Daha sonra kullanıcı isterse belirli bir başlanğıc koşulunu yeniden çalıştırarak tam yörüngeyi kaydeder.
İki xüsusi seçenek vardır:
- longestlived: en uzun kompleks ömrünü veren başlanğıc koşulunu bulur və tam yörüngeyi tekrar hesaplar.
- custom: kullanıcının girdiği 12 bileşenli xüsusi başlanğıc koşulunu tam orbit kimi hesaplar.
Tam orbit dört biçimde görselleştirilir:
- atom–ion uzaklığına karşı zaman,
- xy düzlemi orbit izdüşümü,
- xz izdüşümü,
- yz izdüşümü.
Hangi gözlenebilirler kaydedilebiliyor?
| Çıktı adı | Kaynakta verilen anlamı |
|---|---|
| angle | Atomun saçılma açısı |
| bounces | Yörünge ərzində atom və ion arasındaki kısa menzilli çarpışma sayısı |
| lifetime | İlk və son bounce arasındaki atom–ion kompleks ömrü |
| position | İlk bounce sırasında iyonun orijinden məsafəsi |
| transfer | Atom tarafından aktarılan momentum |
| dist | Son atom–ion məsafəsi |
| nsteps | Simülasyonda kullanılan zaman adımı sayısı |
| KE | İyonun son kinetik enerjisi |
Sonuç dosyaları necə yönetiliyor?
Kullanıcı üç temel depolama davranışını kontrol edebilir:
- MATLAB workspace'in
work.matkimi kaydedilmesi, - bütün gözlenebilirlerin CSV dosyalarının kaydedilmesi,
- yalnız seçilen tek bir gözlenebilirin CSV dosyasının kaydedilmesi.
Program həmçinin çalışmaya başlamadan əvvəl yaklaşık depolama gereksinimini kullanıcıya bildirir. Böylece kullanıcının disk alanı yetersizse simulyasiya başlamadan çıktı seçeneklerini azaltması mümkündür.
Isı haritası neyi göstərir?
Kaynak, her gözlenebiliri atomun başlanğıc küresel açıları \(\theta\) və \(\phi\)'nin fonksiyonu kimi ısı haritasına dönüştürebilmektedir. Saçılma açısı üçün verilen örnekte bazı başlanğıc 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.
Örnek çalıştırmada nə oldu?
Makaledeki örnek konsol çıktısında program 10.004.569 atom–ion yörüngesi üçün hesablama başlatmaktadır. Hesap sekiz GPU istifadə edilərək yürütülmüş və tamamlanma süresi 52.848,874 saniye kimi raporlanmıştır; tədqiqat bunu 10 milyondan fazla yörüngenin 15 saatin altında tamamlanması kimi özetlemektedir.
Aynı örnek çalıştırmada programın hesapladığı kompleks oluşma olasılığı %59,87 kimi yazdırılmıştır. Bu değer tədqiqatın bütün atom–ion sistemleri üçün evrensel kompleks olasılığı deyil; yalnız gösterilen parametreler və başlanğıc koşulu örneklemesi üçün elde edilen simulyasiya çıktısıdır.
CPU və GPU nə üçün eyni kaotik yörüngede müxtəlif sonuç verebilir?
Çalışmanın MATLAB açısından en öğretici bölümlerinden biri budur. Aynı başlanğıc koşulları və eyni ODE algoritması kullanılmasına rağmen GPU ilə CPU'da hesaplanan çok kaotik bir yörüngenin bounce sayısı və kompleks ömrü müxtəlif çıkabilmiştir.
Yazarlar bunu CPU və GPU mimarilerinin kayan noktalı işlemleri müxtəlif yuvarlama sıralarıyla gerçekleştirebilmesine bağlamaktadır. Kaotik sistemlerde başlanğıc və ya 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 və 987,1 µs, CPU üzerindeki ode45gpu hesabı isə 2 bounce və 954,9 µs vermektedir.
Bu vəziyyət tek başına GPU hesabının yanlış olduğu anlamına gelmez. Program doğrulama amacıyla eyni xüsusi yörüngeyi CPU üzərində hem ode45gpu hem MATLAB'ın standart ode45 çözücüsüyle yeniden çalıştırmakta və son durumların uyuşup uyuşmadığını kontrol etmektedir.
Bu bize sayısal simulyasiya hakkında nə öğretiyor?
Bir simulyasiya kodunun eyni diferansiyel denklemi çözmesi, her donanımda her ara noktada bit düzeyinde eyni yörüngeyi üretmesini garanti etmez. Özellikle kaotik sistemlerde:
- kayan noktalı yuvarlama,
- işlem sıralaması,
- CPU və GPU mimari farkları
gözlenebilir yörüngeyi zaman içində ayırabilir. Bu nedenle tədqiqat doğrulamayı yalnız tek bir kaotik yörüngenin mikro ayrıntıları üzerinden deyil, həlledici tutarlılığı və istatistiksel çıktılar üzerinden ele almaktadır.
MATLAB öğrenen biri bu çalışmadan hansı proqramlaşdırma dərslərini çıxara bilər?
Birinci ders: MATLAB'da performans yalnız algoritmanın matematiksel karmaşıklığı deyil; dizi oluşturma, indeksleme və bellek davranışı da hesap süresini ciddi biçimde etkileyebilir.
İkinci ders: GPU'ya geçmeden əvvəl CPU kodunu optimize etmek vacibdir. Kaynakta yalnız qüvvə fonksiyonunun yeniden yazılması yaklaşık üç kat sürət kazandırmıştır.
Üçüncü ders: GPU'ya uygun kod her zaman CPU üçün yazılan en doğal MATLAB koduyla eyni biçimde deyil. 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 bütün ara verileri saxlamaq yerine yalnız elmi kimi gerekli özet değişkenleri hesaplamak çok büyük bellek avantajı sağlayabilir.
Beşinci ders: Paralel işlem lakin bağımsız iş birimleri varsa verimlidir. Bu çalışmada her atom–ion yörüngesi diğerlerinden bağımsız olduğu üçün GPU paralelliği doğal biçimde uygulanabilmektedir.
Altıncı ders: Sayısal doğrulama zəruridir. Hız kazanımı tek başına yeterli deyil; sonuçların güvenilirliği standart çözücüyle karşılaştırılmalıdır.
Tədqiqatın dəstəklədiyi nəticələr
- Atom–ion klasik yörüngeleri MATLAB üzərində bağımsız başlanğıc koşulları üzerinden kitlesel biçimde paralelleştirilebilir.
- Kaynak v1 benchmark'ında qüvvə 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 referansode45kullanımına göre tek CPU çekirdeğinde 22 kata kadar hızlıdır. - GPU üzərində 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 orbit ölçeğine kadar giriş hazırlama, paralel hesap, istatistik, CSV və görselleştirme işlerini otomatikleştirebilir.- Saçılma açısı və benzeri gözlenebilirlerin başlanğıc açılarına göre ısı haritaları kaotik və fraktal yapılar gösterebilir.
Tədqiqatın dəstəkləmədiyi və ya sınaqdan keçirmədiyi nəticələr
- Bu tədqiqat kuantum mekanik atom–ion dinamiğinin tam çözümü deyil; klasik hareket denklemlerini kullanmaktadır.
ode45gpu'nun bütün ODE problemlerinde MATLABode45'ten 22 kat hızlı olduğu gösterilmemiştir.- GPU və CPU'nun her kaotik yörüngede birebir eyni zaman geçmişini üretmesi beklenmemektedir.
- Yaklaşık on milyon orbit sınırı bütün bilgisayarlar üçün sabit bir kapasite deyil; bellek və donanıma bağlıdır.
- Çalışma laboratuvar deneyi gerçekleştirmemiş və simulyasiya sonuçlarını yeni bir deneysel veri setiyle doğrudan doğrulamamıştır.
- Yüklenen v1'deki 22× benchmark değeri daha sonraki hakemli yayın sürümünün nihai performans sonucu kimi kullanılmamalıdır.
Tədqiqatın Metodu və Nəticələri
Simülasyon türü
Araştırma klasik moleküler dinamik simülasyonudur. Atom və ion noktasal klasik parçacıklar kimi hareket eder; iç serbestlik dereceleri hesaba katılmaz. Düşük yoğunluk varsayımı nedeniyle tek bir iyonun eyni anda bir atomla etkileştiği iki parçacıklı dinamik çözülür.
Benchmark fiziksel parametreleri
| Parametre | Kaynak benchmark'ı |
|---|---|
| Atom | Rb; kullanıcı arayüzü örneğinde 87Rb |
| İyon | Yb+; kullanıcı arayüzü örneğinde 171Yb+ |
| Başlangıç atom–ion məsafəsi | 5000 \(a_0\) |
| Atom sıcaklığı | 1 µK |
| İyon başlangıcı | Paul tuzağı mərkəzində, benchmark'ta başlangıçta hareketsiz |
| Benchmark simulyasiya süresi | 1 ms |
| ODE vəziyyət boyutu | 12 |
| ODE yöntemi | Dormand–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 və hareketsiz olduğunu; sonraki üç bileşen atom konumunu, son üç bileşen isə atomun merkeze yönelmiş başlanğıc hızını verir.
CPU qüvvə fonksiyonu optimizasyonu
| Hesap | 2500 orbit üçün kaynakta raporlanan sonuç |
|---|---|
ode45 + ilk \(f(t,y)\) yazımı | 10 saatten fazla |
ode45 + optimize edilmiş \(g(t,y)\) | 3,5 saatin altında |
| Yorum | Yalnız qüvvə 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 sürət oranının yaklaşık korunduğunu bildirmektedir.
Bu karşılaştırmanın preprint sürümüne özgü olduğu xüsusilə korunmalıdır; 2026'daki hakemli sürüm benchmark metodolojisini və performans rakamlarını değiştirmiştir.
GPU ölçekleme deneyi
NVIDIA Tesla K80 24 GB, P100 16 GB və V100 32 GB üzərində:
\[ n=1,2,5,10,20,\ldots,1.000.000 \]
orbit test edilmiştir.
Yaklaşık \(n\sim10^4\) yörüngeye kadar tədqiqat süresinin büyük ölçüde sabit olması GPU paralelliğinin henüz doygunluğa ulaşmadığını; daha sonra sürenin yaklaşık \(n\) ilə orantılı büyümesi işlem kapasitesinin dolduğunu göstərir.
Gerçekçi başlanğıc koşulu testi
K80 üzərində eyni yörüngenin kopyalarıyla yapılan benchmark'a ek kimi, ilk oktant üzerindeki müxtəlif \((\theta,\phi)\) başlanğıc koşullarıyla da test yapılmıştır. Küçük \(n\) değerlerinde orbit karmaşıklığı nedeniyle tədqiqat süresinde daha fazla dalgalanma görülse de yüksək orbit 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 tədqiqat süresi | 52.848,874 saniye |
| Kaynağın zaman yorumu | 10 milyondan fazla orbit, 15 saatin altında |
| 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ı kimi kullanılmamalıdır.
GPU–CPU fərqi xaotik orbitdə
| Hesap | Bounce sayısı | Kompleks ömrü |
|---|---|---|
| ode45gpu — GPU | 3 | 987,1 µs |
| ode45gpu — CPU | 2 | 954,9 µs |
Kaynak bu farklılığı kayan noktalı hesapların GPU və CPU mimarilerinde müxtəlif yuvarlama davranışlarına sahip olması və dinamiğin kaotik olmasıyla açıklamaktadır. Kod, həmçinin CPU üzerindeki ode45gpu çıktısını MATLAB'ın ode45 sonucu ilə karşılaştırarak son koşulların eşleşmesini doğrulamaktadır.
Programın elmi çıxışları
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 və bu değişkenleri başlanğıc \(\theta,\phi\) açılarına göre ısı haritaları halinde gösterebilir.
Yazılımın güclü tərəfləri
- MATLAB ortamından ayrılmadan GPU paralelliği kullanabilmesi.
- Çok sayıda bağımsız orbit üçün aşağı bellekli hesap yaklaşımı.
- Tuzaksız, harmonik və Paul tuzak yapılarını desteklemesi.
- Atom/ion kütleleri və sıcaklıkların değiştirilebilmesi.
- Farklı genelleştirilmiş atom–ion potansiyellerinin girilebilmesi.
- Head-on və thermal başlanğıc koşulları.
- CPU və GPU seçeneklerinin eyni kullanıcı script'inde bulunması.
- CSV, heatmap, xüsusi orbit və outlier çıktılarının otomatik oluşturulması.
- Standart
ode45ilə doğrulama kontrolü.
Yöntemsel sınırlılıklar
- Simülasyon klasik dinamiktir; iç kuantum serbestlik dereceleri yoktur.
- İki hissəcik varsayımı aşağı yoğunluk koşuluna dayanır.
ode45gpugenel amaçlı MATLAB ODE API'sinin birebir GPU eşleniği deyil; qüvvə fonksiyonunun xüsusi biçimde gömülmesi gerekir.- GPU
arrayfunkısıtları kod mimarisini şekillendirmiştir. - Kaotik dinamiklerde CPU və GPU yörüngeleri küçük kayan nokta farklarından dolayı ayrışabilir.
- Yaklaşık on milyon orbit kapasitesi donanıma və 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 tədqiqat MATLAB'ın yalnız “bir denklem yaz, ode45 çağır və grafik çiz” biçiminde kullanılmadığını gösteren güçlü bir örnektir. Tek bir fizik problemi üzerinden:
- fiziksel Hamiltonyen kurulmakta,
- 12 boyutlu ODE sistemi çıkarılmakta,
- standart həlledici benchmark edilir,
- MATLAB kodunun veri yapıları optimize edilir,
- Runge–Kutta algoritması xüsusi kimi yeniden uygulanmaktadır,
- GPU yürütmesine uygun skaler kod oluşturulmaktadır,
- milyonlarca başlanğıc koşulu
gpuArrayilə hazırlanmakta, arrayfunilə bağımsız orbitlər paralel çözülmekte,gatherilə sonuçlar CPU'ya alınmakta,- və son kimi elmi gözlenebilirler, CSV'ler, ısı haritaları və xüsusi orbitlər üretilmektedir.
Dolayısıyla tədqiqat MATLAB'da elmi hesaplamanın dört temel katmanını eyni örnekte bir araya getirir: fiziksel modelleme, sayısal analiz, performans mühendisliği və veri görselleştirme.
Mənbə və Metod Qeydi
Tam özgün tədqiqat 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 / elmi yazılım preprint'i və klasik moleküler dinamik simulyasiya çalışması.
Preprint platformu: arXiv.
Preprint kimliği: arXiv:2509.12381v1.
Preprint tarihi: 15 Eylül 2025.
Hakemlik durumu: Bu tədqiqat, 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ı tədqiqat daha sonra “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'ı üçün 22× hızlanma raporlanırken, nihai hakemli yayın CPU hızlanmasını yaklaşık 7× kimi raporlamakta və həmçinin bir milyon yörüngenin GPU paralelleştirmesinde CPU ode45 tabanına göre 600–3500× hızlanma bildirmektedir. Bu Verianla makalesinin elmi gövdesindeki 22×, 10.000-orbit eşiği və örnek 8-GPU çalıştırma değerleri yalnız yüklenen v1'den alınmıştır; iki sürüm sessizce birleştirilmemiştir.
Program: atomiongpu.m.
Sayısal həlledici: ode45gpu.
Programlama ortamı: MATLAB R2023a və Parallel Computing Toolbox.
Geliştirici deposu: Kaynakta saajidchowdhury/supplementGPU kimi belirtilmiştir.
Lisans: Yüklenen preprint'in program özetinde “Licensing provisions” alanı doldurulmamıştır. Nihai hakemli sürüm program üçün 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 və 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 üçün yazılım, görselleştirme və yazım; Jesús Pérez-Ríos üçün kavramsallaştırma, metodoloji, danışmanlık və 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 həmçinin beyan edilmiştir.
Bilimsel içerik kaynağı: Bu Verianla makalesindeki fizik modeli, algoritma, MATLAB mimarisi, giriş parametreleri, benchmark değerleri, GPU testleri, konsol çıxışları və elmi yorumlar kullanıcının yüklediği arXiv v1 çalışmasına dayanmaktadır. Daha sonraki yayın sürümü yalnız bibliyografik doğrulama və sürüm farkının açıkça belirtilmesi amacıyla istifadə edilmişdir.
Temel yöntemsel sınır: Bu bir klasik moleküler dinamik simülasyonudur. Çalışma yeni bir saha və ya laboratuvar deneyi sunmaz; kuantum dinamiğinin tam çözümü deyil və yazılım performansı problem, kod yapısı və donanım bağımlıdır.

Şərh yazın
E-poçt ünvanınız yayımlanmayacaq. Məcburi sahələr * ilə işarələnib