Keresés

Új hozzászólás Aktív témák

  • husztiimi

    csendes tag

    válasz proci985 #20809 üzenetére

    Sok-sok cikket elolvasgattunk, de jellemzően nem írják le a cikkekben (PRC, J. Phys. G), hogy a konkrét kód CPU-n futott-e, vagy sem?! Meg azt sem, hogy CPU-n milyen módon (openMP, vagy MPI)? Meg azt sem, hogy a kód milyen nyelven íródott?! Úgyhogy azt gondolom, hogy előbb-utóbb majdcsak megoldjuk valamilyen úton-módon a GPU-ra való átrakását a mátrixdiagonalizációknak. Ha meg át lesznek téve, akkor majd megmérjük, hogy mi legideálisabb inputtól függő választás? openMP + GPU? MPI + GPU? MPI + openMP + GPU? Ha meg esetleg GPU-val valami nem várt csoda folytán mégis lassulás lesz a „hozadék” például az adatmozgatások miatt, akkor meg úgy fogjuk fel, hogy milyen jó ujjgyakorlat volt a GPU-ra való kódrész implementációja...

  • husztiimi

    csendes tag

    válasz emvy #20806 üzenetére

    MPI-hoz a Komondor gépet használjuk: https://hpc.kifu.hu/hu/komondor

    Ha a "probléma" nem indokolja az MPI használatot (ez néha-néha azért előfordul), és elegendő hozzá az openMP is, akkor arra pedig van két darab számítási nódusunk: az egyik AMD EPYC 9554 64-Core procikkal és 2.5TB memóriával, a másik pedig Intel(R) Xeon(R) CPU E7-8880 v2 procikkal és 3TB memóriával.

  • husztiimi

    csendes tag

    válasz coco2 #20804 üzenetére

    Ja igen, "szuperszámítógépen futtatjuk" - az a napi nagyot mondás gyakorlatod volt?

    Nagyon szomorúan látom, hogy bejegyzésed nem segítő szándékkal, csupán csúfolódási szándékkal született. Így a tisztánlátás érdekében kifejtem inkább egy kicsit: Képzeld el, hogy nemcsak olyan programok léteznek, amelyek asztali platformra vannak "megálmodva", hanem vannak olyan progik is, amik sokkal nagyobb erőforrásokat igényelnek. Pl. a saját fejlesztésű programunk, amit a kollégáimmal együtt évek óta fejlesztgetünk-csiszolgatunk pont ilyen. (Dokumentációt is írtunk hozzá, amelyet igyekszünk frissíteni, amikor új részek/rutinok kerülnek a kódba.)

    A programot arra használjuk, hogy kiszámolunk vele ezt-azt, azután pedig ha szerencsénk van, akkor évente 1-2 cikket publikálunk azokból az eredmény(ek)ből, ami a programnak az eredményeiből levont konklúzió. A program képes openMP és MPI módokon futni. (Remélem ezekről már hallottál.) Viszont bemenő inputtól függően (bemenő input = probléma paraméterei) a futási idő rettenetesen sok lenne egy asztali számítógépen. (Asztali gépen csak az openMP-nek lenne amúgy is értelme, az MPI-nak nem.) Így a programot olyan esetben, ahol az input úgy kívánja, szuperszámítógépen futtatjuk hibrid módon (hibrid = MPI + openMP). A futási idő tetemes részét a hatalmas méretű mátrixdiagonalizációk viszik el. Ezért jött az ötlet, -ha már eleve HPC környezetben futtatjuk a kódot (amennyiben az input ezt kívánja), akkor miért nem fejlesztjük fel eme kódot úgy, hogy a futási idő redukálásában a GPU is segítsen? (Azaz a sok-sok dsyev mátrixdiagonalizáció szubrutin-hívásokat a GPU végezze.) Eredeti bejegyzésem ezért született… (Sőt, a bejegyzésben lévő egy darab 100x100-as méretű eset csak egy "állatorvosi ló". -Nem igazi eset... Ilyen kicsi mátrix élő esetben nincs... )

    Nem gondoltam, hogy az általam felvetett "problémához” ennyi magyarázat szükséges lett volna. Egyszerűen csak bíztam benne, hogy hátha olvassa ezt a topikat olyan HPC user is, aki pont nvfortrant használ a saját kutatásához/szimulációihoz mint mi és már találkozott ilyesmi problémával. Benne volt a pakliban, hogy esetleg nem találok a fórumban segítséget; -ezzel nincs is gond. De véleményem szerint a kicsúfolásod felesleges volt... A fórumbeli bejegyzéseidben sem HPC használatra utaló nyomokat, sem (openMP, vagy MPI) parallelizációt nem látok. Nem tudom, hogy te miket fejlesztesz, meg hol és minek, de tuti, hogy ha leírnád, akkor többen is bele tudnának kötni.

  • husztiimi

    csendes tag

    válasz emvy #20801 üzenetére

    Sajnos pont ettől tartottam... A chatgpt egyik válasza a sok közül nekem is az volt, hogy felajánlotta, hogy ír egy olyat, ami a C-s modult használja... De amit írt nekem az nem fordítható le. Sajnos a neked írt kód sem fordul le. (Írtam eredeti posztomban, hogy: "Sajnos az AI (chatgpt) ebben nem tud segíteni.")

    Félreértés ne essék, én is használom sokmindenre a chatgpt-t, pl. keresse meg a hibát egy adott kódrészletben, vagy írjon egy-egy kisebb részt. Néha ezeket jól megcsinálja. De sajna néha kurvára nem. Sajna a te "megoldásod" az utóbbiak táborát erősíti.

  • husztiimi

    csendes tag

    válasz emvy #20798 üzenetére

    Neked ez milyen kapcsolóval fordult le? És milyen compilerrel?

  • husztiimi

    csendes tag

    Sziasztok!

    Picit esélytelennek érzem a "kérdés-felrakását", mert nem sok kódot látok ebben a kiemelt topikban, de azért hátha…


    Ért valaki a CUDA nvfortran cusolver csomagjához? Van egy kb. 10e soros saját fejlesztésű programunk, amit többnyire szuperszámítógépen futtatgatunk MPI-ban. De rájöttem arra, hogy a kód viszonylag sokszor meghív egy lapack rutint (melynek neve dsyev) ami nagyméretű mátrixokat diagonalizál. Arra gondoltam, hogy a dsyev rutinokat kiváltanám CUDA alatt valamivel.., Meg is találtam a cusolver-ban a dsyev rutint, ámde sajnos képtelen vagyok a cusolver-ben megírni 1 darab dsyev hívást. Sajnos az AI (chatgpt) ebben nem tud segíteni.

    Aki esetleg tud, az mutassa már meg nekem, hogy az alábbi egyszerű, lebutított programnak mi lenne a megfelelője nvfortran alatt? (Esetleg cusolver-ben vagy akár bármi másban: CUDA-MAGMA, SLATE, cuBLAS, akármi...)

    program PHdemo
    implicit none
    integer :: lwork,info
    real*8, allocatable, dimension(:) :: w,work
    character :: jobz,uplo
    integer :: ujp,i,j
    real*8, dimension(:,:), allocatable :: pn_redmat


    ujp=100
    allocate(pn_redmat(ujp,ujp))
    do i=1,ujp
    do j=1,ujp
    pn_redmat(i,j)=i+j
    enddo !j
    enddo !i


    jobz='v'
    uplo='u'
    lwork=3*ujp-1
    allocate(work(lwork),w(ujp))
    call dsyev(jobz,uplo,ujp,pn_redmat,ujp,w,work,lwork,info)
    write(*,*)w
    end program

    Sajna az nem opció, hogy a 10e soros programot írjuk át más nyelvre...

Új hozzászólás Aktív témák