Symulacja w Badaiach i Rozwoju Vol. 6, No. 1/2015 Joaa WIŚNIEWSKA Wojskowa Akademia Techicza, 00-908 Warszawa, ul. Kaliskiego 2 E-mail: jwisiewska@wat.edu.pl Marek SAWERWAIN Uiwersytet Zieloogórski, 65-256 Zieloa Góra, ul. Liceala 9 E-mail: M.Sawerwai@issi.uz.zgora.pl Symulacja metody kwatowych trajektorii dla problemów optyki kwatowej oraz iformatyki kwatowej 1 Wstęp Metody Mote Carlo, począwszy od pierwszych prac Joha vo Neumaa, Staisława Ulama oraz Nicholasa Metropolisa [6, 7], są szeroko wykorzystywae w obliczeiach dotyczących obszaru chemii, astrofizyki, fizyki kwatowej oraz obszaru odoszącego się do obliczeń kwatowych. W przypadku problemów fizyki kwatowej, czy też obliczeń kwatowych wykorzystujących metody Mote Carlo moża wskazać wiele otwartych projektów obliczeiowych (lista oprogramowaia dostępa pod adresem: http://www.quatiki.org/wiki/list_of_qc_simulators). Na wskazaej liście projektów moża wskazać kilka projektów odoszących się do tzw. kwatowych trajektorii: a są to między iymi pakiet autorstwa Sze M. Ta [10], pakiet QuTIP [5], a także C++QED przedstawioy w pracy [12]. Dostępe jest też ieco starsze rozwiązaie [9], rówież wykorzystujące techikę trajektorii kwatowych. Jedakże wymieioe rozwiązaia ie wykorzystują wielordzeiowych systemów opartych a CPU (ag. Cetral Processig Uit), jak i GPU (ag. Graphics Processig Uit). Wyjątkiem jest pakiet QuTIP, gdzie podczas obliczeia poszczególych trajektorii kwatowych wykorzystuje się dostępe rdzeie obliczeiowe. Przy czym obliczeia są realizowae tylko za pomocą CPU. W pracy [5] pokazao, iż w przypadku rówoległego przetwarzaia trajektorii, w stosuku do starszych rozwiązań jak a przykład: pakiet [10], uzyskuje się liiowe przyspieszeie. Zastosowaie GPU w przypadku trajektorii pozwala a dalsze zwiększeie wydajości, a także pozwala a osiągięcie lepszej dokładości obliczeń w krótszym czasie, gdyż większa liczba obliczoych, a późiej uśredioych trajektorii, statystyczie polepsza dokładość uzyskaych daych. W tym artykule zostaie zaprezetowaa implemetacja metody kwatowych trajektorii wykoaa za pomocą techologii CUDA (ag. Compute Uified Device Architecture). Celem takiego podejścia jest umożliwieie wspomiaym symulatorom programowym jak ajszybszego i ajdokładiejszego odwzorowaia zjawisk z zakresu optyki i iformatyki kwatowej. Badaia tego rodzaju mogą przyczyić się do rozwoju wiedzy a temat powyższych zjawisk bez iwestowaia środków w ieporówywalie 67
Joaa WIŚNIEWSKA, Marek SAWERWAIN droższe eksperymety fizycze. Przedstawioe zostaą także testy wydajości zapropoowaej implemetacji. Algorytm kwatowych trajektorii wymaga także odpowiedich metod do geerowaia liczb pseudolosowych (pakiet CUDA oferuje odpowiedie geeratory liczb pseudolosowych o dobrej wydajości oraz w pełi dostosowae do pracy w środowisku rówoległym), a także podaia odpowiedich metod do rozwiązywaia zagadieia początkowego odpowiedie metody zostały zaimplemetowae w propoowaym rozwiązaiu i krótko omówioe w dalszej części artykułu. 2 Metoda kwatowych trajektorii Opis dyamiki staów kwatowych moża podzielić a dwa podstawowe przypadki, tzw. ewolucję zamkiętą, która jest dość często stosowaa, a przykład: w przypadku obwodów kwatowych, tj. obliczeń kwatowych, oraz ewolucję w środowisku otwartym, gdzie rówież otoczeie wpływa a postać stau kwatowego. Nie jest aszym celem w tym miejscu opisywać, jak przedstawia się matematyczy opis dyamiki wspomiaych dwóch przypadków. Szczegółowy opis moża odszukać a przykład w [8] oraz [11]. Nadmieimy tylko, iż w przypadku zamkiętym (tzw. ewolucja uitara) stosuje się rówaie Schrödigera [1, 3]: d (A) ih Ψ = HˆΨ, (B) i h ψ = H ψ, (1) t dt gdzie rówaie (A) to cząstkowe rówaie różiczkowe, atomiast w przypadku symulacji umeryczych stosuje się postać (B). W postaci (B) wielkość H to tzw. Hamiltoia opisujący dyamikę, a sta ψ reprezetuje sta badaego systemu w chwili t. Jeśli atomiast ależy uwzględić wpływ otoczeia, to stosowae jest rówaie vo Neumaa, które opisuje uogólioy sta układu za pomocą operatora gęstości: i & ρtot ( t) = [ Htot, ρtot ( t) ], Htot = H sys + Hev + Hit, (2) h gdzie H sys opisuje dyamikę systemu zamkiętego, H ev dyamikę otoczeia, a H it dyamikę iterakcji otoczeia z systemem. Dość często stosuje się tzw. operację śladu częściowego, aby usuąć wpływ otoczeia, i w te sposób uzyskuje się tzw. rówaie główe Lidblada o postaci: 1 + + + [ H ( t), ρ( t) ] + [ 2Cρ( t) C ρ( t) C C C C ( t ] i & ρ( t ) = ρ ), (3) h 2 gdzie C to tzw. operatory collapsu, które reprezetują wpływ otoczeia a symuloway układ. Zastosowaie takiego operatora aturalie zmieia postać stau. Jedakże adal mamy do czyieia z wykładiczą złożoością obliczeń w trakcie symulacji zachowaia układu kwatowego. 68
Symulacja metody kwatowych trajektorii dla problemów optyki kwatowej oraz iformatyki kwatowej Obecie uzaą metodą zmiejszeia wymagań pamięciowych jest stosowaie tzw. metody kwatowych trajektorii. Jedakże, aby poprawie przybliżyć zachowaie się układu kwatowego, wymagaa jest symulacja wielu pojedyczych trajektorii (co jest aturalą kosekwecją losowego charakteru metod Mote Carlo). Poszczególe trajektorie moża symulować iezależie od siebie, co ułatwia rówoległą implemetację metody kwatowych trajektorii. Podsumowując, symulacja ewolucji systemu w przypadku metod kwatowych trajektorii jest opisaa przez Hamiltoia o postaci: H eff = H sys ih 2 C + C. (4) Prawdopodobieństwo tzw. kwatowego skoku, czyli zastosowaia operatora collapsu C do stau układu ψ w chwili t, jest opisae jako: + δ p = δt C C. Natomiast sta systemu kwatowego po zastosowaiu operatora collapsu przedstawia się astępująco: C ψ ( t + δt) =. (6) + C C W przypadku, gdy mamy więcej iż jede operator collapsu, prawdopodobieństwo zastosowaia i-tego operatora C jest opisae w astępujący sposób: + Ci Ci Pi ( t) =. (7) δ p W procesie symulacji ależy aturalie skorzystać z geeratora liczb pseudolosowych, aby zasymulować probabilistyczy wybór odpowiediego C i. Wszystkie powyższe obliczeia sprowadzają się do operacji a macierzach oraz wektorach, przy czym postać wspomiaych macierzy zazwyczaj jest wstęgowa, tj. rzadka, toteż dla oszczędości pamięci, a także zaczego przyspieszeia obliczeń ależy stosować macierze typu sparse. Ze względu a wiele operacji typu iloczy macierz-wektor, zastosoway został format CSR (ag. Compressed Sparse Row), który oferuje w tym przypadku dalsze zwiększeie efektywości. Powyższe iezbęde uwagi, pozwalają a poiższy słowy zapis algorytmu symulacji pojedyczej trajektorii, w postaci astępujących czterech główych kroków obliczeiowych (aalogiczie do podejścia pokazaego p. w pracy [5]): 1. Wybieraa jest wartość losowa ) (0,1 r z rozkładem jedostajym ciągłym, gdzie wartość r opisuje prawdopodobieństwo wystąpieia kwatowego skoku. 2. Rozwiązywae jest rówaie Schrödigera (postać (B) ze wzoru (1)) przy pomocy (5) 69
70 Joaa WIŚNIEWSKA, Marek SAWERWAIN Hamiltoiau H eff do czasu t, tak aby spełioa była ierówość: r, co ozacza wystąpieie kwatowego skoku. 3. Wystąpieie kwatowego skoku powoduje operację projekcji systemu przy czasie t do jedego ze staów opisaych w rówaiu (6). Odpowiedi operator C i jest wybieray tak, aby dla odpowiediego spełioa była relacja: Pi ( t) r ; (8) i=1 poszczególe prawdopodobieństwa P i są określoe przez rówaie (7). 4. Otrzymay, w wyiku projekcji, sta fukcji falowej staowi ową wartość początkową dla czasu t. Losowaa jest owa wartość r i procedura symulacji trajektorii rozpoczya się od kroku pierwszego. Ogólie symulacja trajektorii jest przeprowadzaa do wcześiej wskazaej wartości czasu t. 3 Szczegóły implemetacji w architekturze CUDA C/C++ Algorytm kwatowych trajektorii (QTM ag. Quatum Trajectories Method) ze względu a swoją podstawową własość, czyli obliczaie wielu iezależych trajektorii, moża dość łatwo zapisać jako algorytm rówoległy. W algorytmie wyróżia się dwa główe etapy: 1. Symulację kwatowych trajektorii według metody opisaej w powyższej sekcji. 2. Uśredieie otrzymaych trajektorii i utworzeie ostateczej trajektorii. Główe zadaie, które w całym procesie obliczeiowym zabiera ajwięcej czasu, to aturalie sam proces wyzaczaia trajektorii. Podstawowa strategia implemetacji algorytmu QTM wykorzystuje wspomiaą własość, iż idywiduale trajektorie są obliczae iezależie od pozostałych, więc a etapie wyzaczaia trajektorii istieje peła iezależość daych pomiędzy poszczególymi trajektoriami. Łatwo także wskazać dae wspóle, jak p.: defiicja Hamiltoiau, defiicja operatorów collapsu, czy zmiea czasu w postaci listy lub tablicy, zawierająca poszczególe wartości zmieej czasowej. Wymieioe rodzaje daych mogą pozostawać iezmiee podczas wyzaczaia poszczególych trajektorii. W przypadku implemetacji algorytmu QTM ależy też wskazać duży obszar daych lokalych w każdym wątku przetwarzającym pojedyczą trajektorię. Do zmieych lokalych przyależą także zmiee opisujące stay geeratorów liczb pseudolosowych, które dla metod Mote Carlo muszą wytwarzać róże sekwecje liczb w poszczególych wątkach, aby symulacja była poprawa. Niestety, duża ilość daych lokalych, związaych też z wieloma istacjami procedury do rozwiązywaia zwyczajych rówań różiczkowych (ODE ag. Ordiary Differetial Equatio), ozacza, iż warto rozpatrywać dwa przypadki. Pierwszy przypadek staowią symulacje małych układów, gdzie ograiczoe zasoby szybkiej pamięci lokalej dostępe w jedostkach obliczeiowych GPU są w takim przypadku wystarczające. Drugi przypadek to duże systemy, gdzie iezbęde jest korzystaie z pamięci główej GPU. Schemat zadań, jaki jest wykoyway w jądrze obliczeiowym podczas wyzaczaia wartości trajektorii kwatowych, został przedstawioy a rysuku 1.
Symulacja metody kwatowych trajektorii dla problemów optyki kwatowej oraz iformatyki kwatowej Dodajmy, iż ż drugi etap QTM, polegający a uśredieiu otrzymaego zestawu trajektorii w jedą ą fialą postać, moża efektywie zrealizować, wykorzystując operację redukcji rówoległej. Rys. 1. Ogóla struktura symulacji metody kwatowych trajektorii w systemie GPU (wartość PR jest pozyskiwaa z geeratora liczb pseudolosowych) Fig. 1. The geeral structure of quatum trajectories method simulatio for GPU (value PR is obtaied with use of pseudoradom umber geerator) Realizacja algorytmu w postaci jądra obliczeiowego dla GPU wymaga zwróceia szczególej ej uwagi a postać daych wykorzystywaych w metodzie kwatowych trajektorii. Wyikiem algorytmu QTM jest ciąg tzw. wartości oczekiwaych, będących liczbami rzeczywistymi (wartości te otrzymuje się poprzez zastosowaie dodatkowego operatora uitarego a staie układu po zakończeiu obliczeń dotyczących określoej trajektorii). Wektor stau oraz macierze poszczególych operatorów wymagają, aby elemety tych struktur były wartościami zespoloymi. Pakiet CUDA oferuje odpowiedi typ daych cucomplex (jest to typ szabloowy języka C++). Jedakże w implemetacji użyto miej zaawasowaą implemetację liczb zespoloych, poieważ dodatkowy kod odpowiedzialy za stabilość umeryczą podczas realizacji operacji, takich jak dzieleie czy obliczeia modułu, ie jest potrzeby. Wszystkie wartości są zormalizowae, więc zastosowaie bardziej podstawowej implemetacji ma zaczeie dla wydajości całego systemu i ie powoduje kłopotów ze stabilością umeryczą. Defiicja wzorca simplecomplex, jaka jest używaa w dyskutowaej implemetacji, to typowa defiicja oparta a strukturze: template <typeame T> struct simplecomplex { }; T re; T im; 71
72 Joaa WIŚNIEWSKA, Marek SAWERWAIN Naturalie wraz z typem simplecomplex zostały przeciążoe podstawowe operatory sumy, iloczyu i etc., co pozwala zarówo dla kodu gospodarza (ag. host) jak też kodu wykoywaego po stroie urządzeia (ag. device), a czytely zapis operacji arytmetyczych. W podoby sposób zdefiioway został typ uvector. Typ te moża stosować zarówo dla kodu wykoywaego po stroie hosta, jak i po stroie urządzeia GPU. Dla wygody użytkowika zdefiiowao także operator dostępu do elemetów wektora: template <typeame T, size_t v_size> struct uvector { usiged it size; T m[ v_size ]; host device T& operator[] (cost size_t idx) { retur m[idx]; }; host device cost T& operator[] (cost size_t idx) cost { retur m[idx]; }; }; Pozostałe pomocicze defiicje, jak typ reprezetujący pełą macierz umatrix oraz macierz typu sparse ucsrmatrix, zostały oparte a wzorcu uvector. Istotym elemetem są geeratory liczb losowych. Zastosowao rozwiązaie CURAND dostępe w pakiecie CUDA, oferujące wystarczająco wysoką wydajość oraz dobre własości statystycze. Dostępe w pakiecie curad geeratory liczb pseudolosowych to XORWOW oraz MRG32k3A. Jedak przy rozpatrywaiu określoej symulacji dyamiki systemu kwatowego za pomocą QTM może się okazać iż zamiast stosować geerator liczby pseudolosowych w każdym wątku warto użyć wcześiej przygotowaego zbioru wartości losowych (czy to za pomocą geeratora sekwecji pseudolosowych, czy też w oparciu o źródła fizycze [2] oraz [4]). Nie wpłyie to istotie a wielkość trasferu daych, lecz pozwoli zwolić część zasobów pamięci lokalej. W efekcie może to pozwolić a zwiększeie liczby wyzaczaych trajektorii w obrębie jedego bloku. Kolejym iezbędym elemetem do otrzymaia poprawej implemetacji metody kwatowych trajektorii są metody umerycze do rozwiązywaia zwyczajych rówań różiczkowych lub dokładiej problem zagadieia początkowego. W omawiaym symulatorze dokoao implemetacji metody Ruge Kutta czwartego rzędu (RK4) oraz metody BDF (ag. Backward Differetiatio Formula). Implemetacja metod została wykoaa w postaci wzorca, co umożliwia łatwą kowersję między typami daych liczbowych float i double. Pozwala także a określeie wielkości struktur, jakie będą przetwarzae w tej procedurze obliczeiowej. Jest to koiecze, bowiem metoda QTM wylicza rozwiązaie układu rówań, gdzie liczba rówań jest wielkością stau kwatowego podlegającego badaiu. Zwarta postać metody RK4 jest kosekwecją obecości defiicji typów simplecomplex czy uvector wraz z bogatym zestawem przeciążoych operatorów, co pozwala a klarową implemetację operacji arytmetyczych a wektorach i skalarach. Należy jedak poowie podkreślić, iż w trakcie wyzaczaia trajektorii
Symulacja metody kwatowych trajektorii dla problemów optyki kwatowej oraz iformatyki kwatowej rówolegle fukcjouje wiele istacji tej metody, a do poprawego fukcjoowaia metoda ta wymaga dodatkowych wektorów, które aturalie muszą alokować lokale zasoby dostępe dla każdego wątku. Zestawy parametrów przekazywaych do metod RK4 i BDF są idetycze i wymagają podaia: szerokości przedziału itegracji (h), tzw. czasu wyjścia (Tout), maksymalej liczby iteracji, aktualej wartości zmieej czasowej, aktualego stau układu Y. Ostati parametr to fukcja odpowiedziala za ewolucję wartości stau za pomocą wcześiej określoego Hamiltoiau. 4 Podsumowaie Porówajmy zapropoowaą implemetację z bardzo popularym w ostatim czasie pakietem QuTIP, wspierającym metodę trajektorii kwatowych. Niech przykładowa symulacja dotyczy tzw. uitarego Hamiltoiau: 2π H = σ x, 10 0 σ x = 1 1, (9) 0 gdzie σ x reprezetuje tzw. operator Pauliego X, w obszarze iformatyki kwatowej azyway także operatorem egacji. Sta początkowy jest określoy astępująco: 1 ψ 0 = 0 =. (10) 0 Operator collapsu użyty w symulacji został określoy w astępujący sposób: C 5 1 0 = σ x, E0 = σ z, σ =, (11) 100 0 1 0 z gdzie σ z to kolejy operator Pauliego Z, azyway także operatorem zmiay zaku. Choć powyższe struktury są iewielkie, to proces symulacji 50 trajektorii za pomocą pakietu QuTIP a komputerze klasy PC, wyposażoego w procesor Itel Core 2 Duo 8400 3.0 Ghz, przy wykorzystaiu jedego rdzeia zabiera około trzech, czterech sekud. W przypadku użycia dwóch rdzei obliczeiowych czas będzie podoby ze względu a to, iż pakiet QuTIP geeruje zbyt duży arzut związay z obsługą dwóch wątków. Naturalie zwiększeie liczby trajektorii pozwoli zauważyć zysk związay ze zwiększoą ilością rdzei obliczeiowych. Wyiki dla karty klasy GeForce 460, wyposażoej 1GB RAM, w przypadku gdy stosowaa jest metoda RK4, otrzymujemy czas działaia około 0.08 sekudy, co daje około pięćdziesięciokrote przyspieszeie w stosuku do czasu działaia wersji jedoprocesorowej. A ależy dodać, iż tylko jede wątek był wykorzystyway w ramach jedego bloku. Przy użyciu metody BDF4 aturalie czas działaia jest dłuży i wyosi około 0.2 sekudy, więc otrzymae przyspieszeie jest już miejsze, bo dwudziestokrote. Naturalie obliczeia za pomocą CPU oraz GPU były przeprowadzae a liczbach typu double. 73
74 Joaa WIŚNIEWSKA, Marek SAWERWAIN Zapropoowae rozwiązaie pozwala a osiągięcie przyspieszeia w obliczeiach opartych a metodzie kwatowych trajektorii w stosuku do istiejących rozwiązań. Dokładość propoowaej implemetacji, dotyczy to szczególie przypadku, gdy używaa jest metoda RK4, jest aturalie porówywala do obliczeń przeprowadzaych za pomocą tradycyjych szeregowych implemetacji, czy też rówoległych, opartych a tradycyjych uiwersalych procesorach. Należy mieć jedak świadomość, że otrzymywae przyspieszeie jest w dużej mierze zależe od sprzętu, którym dyspoujemy. Zjawiska kwatowe posiadają wykładiczą aturę i symulowaie ich a klasyczych maszyach zawsze wiąże się z pewymi ograiczeiami, p. w metodzie kwatowych trajektorii ależy liczyć się z tym, że otrzymamy pewie uśredioy wyik, poieważ jest to metoda typu Mote Carlo. W dalszych plaach rozwoju opisaych tu procedur obliczeiowych, przewidziae jest dołączeie iych metod, jak p.: Block BDF (BBDF) czy metody Adamsa-Bashforda, do dwóch już zaimplemetowaych metod przezaczoych do rozwiązywaia rówań różiczkowych, tj. metody Ruge-Kutta oraz BDF. Moża oczekiwać, iż metoda BBDF dodatkowo skróci czas obliczeń ze względu a miejszą liczbę potrzebych iteracji przy zachowaiu stabilości oferowaej przez metody BDF. Rówież wykorzystaie owych możliwości związaych z techologią Dyamic Parallelism (obeca w ajowszych urządzeiach NVIDIA oraz dostępa w ramach CUDA C/C++ od wersji 5.0) może przyczyić się do uzyskaia wydajiejszej implemetacji opisywaych metod. Ważym zagadieiem jest także dodaie iego rozwiązaia związaego z geeracją liczb pseudolosowych. Zamiast wykorzystaia zestawu geeratorów liczb pseudolosowych wartości pseudolosowe będą czerpae ze zbioru wcześiej przygotowaych daych. Pozwoli to a zwolieie części lokalych zasobów, a także umożliwi korzystaie z wartości wygeerowaych za pomocą urządzeń fizyczych. Literatura 1. Chudy M.: Wprowadzeie do iformatyki kwatowej. EXIT, Warszawa 2011 2. Frauchiger D., Reer R., Troyer M.: True radomess from realistic quatum devices. arxiv:1311.4547, 2013 3. Hirvesalo M.: Algorytmy kwatowe. WsiP, Warszawa 2004 4. ID Quatique SA., Quatis, product web page http://www.idquatique.com/radom-umber-geerators/products.html, 2013 5. Johasso J.R., Natio P.D. ad Nori F.: QuTiP 2: A Pytho framework for the dyamics of ope quatum systems. Comp. Phys. Comm., vol. 184, Issue 4, pp. 1234-1240, 2013 6. Metropolis N., Ulam S.: The Mote Carlo Method. Joural of the America Statistical Associatio, vol. 44, o. 247, pp. 335-341, 1949 7. Metropolis N., Rosebluth A.W., Rosebluth M.N., Teller A.H., Teller E.: Equatio of state calculatio by fast computig machies. Joural of Chemical Physics, vol. 21, o. 6, pp. 1087-1092, 1953 8. Nielse, M.A., Chuag, I.L.: Quatum Computatio ad Quatum Iformatio: 10th Aiversary Editio. Cambridge Uiversity Press, 2010 9. Schacka R., Bru T.A.: A C++ library usig quatum trajectories to solve quatum master equatios. Comp. Phys. Comm., vol. 102, pp. 210-228, 1997
Symulacja metody kwatowych trajektorii dla problemów optyki kwatowej oraz iformatyki kwatowej 10. Sze M. Ta: A Computatioal Toolbox for Quatum ad Atomic Optics. J. Opt. B: Quatum Semiclass. Opt., vol. 1, o. 4, pp. 424, 1999 11. Wyatt R.E.: Quatum Dyamics with Trajectories. Spriger New York, 2005 12. Vukics A.: C++QEDv2: The multi-array cocept ad compile-time algorithms i the defiitio of composite quatum systems. Computer Physics Commuicatios, vol. 183, pp. 1381-1396, 2012 Streszczeie W artykule została przedstawioa rówoległa implemetacja odmiay metody Mote Carlo do symulacji dyamiki kwatowych systemów otwartych jest to tzw. metoda kwatowych trajektorii (QTM). Implemetacja została wykoaa za pomocą techologii CUDA i obejmuje oa realizację procedury umeryczej odpowiedzialej za algorytm QTM. W artykule została też pokazaa wydajość otrzymaych metod umeryczych dla QTM w stosuku do iych zaych implemetacji. Słowa kluczowe: metoda kwatowych trajektorii, symulacja kwatowych systemów otwartych, obliczeia umerycze, techologia CUDA, obliczeia GPU Simulatig the quatum trajectories method for problems related to quatum optics ad quatum computig Summary The chapter cotais a parallel implemetatio of Mote Carlo method for simulatig the ope quatum systems dyamics. The metioed approach is the Quatum Trajectories Method (QTM). The implemetatio is carried out with use of CUDA techology ad it is based o a umerical procedure realizig QTM algorithm. The chapter presets also a compariso of elaborated umerical methods performace i compariso to other existig implemetatios. Keywords: quatum trajectories method, simulatio of ope quatum systems, umerical computatios, CUDA techology, GPU computatio 75
Symulacja w Badaiach i Rozwoju Vol. 6, No. 1/2015 76