» »

Paralelno programiranje in platforme

Paralelno programiranje in platforme

terryww ::

1. Katere knjige/linke predlagate za učenje HPC in multicore programiranja?

2. Kakšne so vaše izkušnje s programiranjem v C/C++ na resnejših platformah (Solaris, FBSD, Linux) za računsko zahtevne programe?

3. Če je prog računsko zahteven, se splača iti iz Linuxa na Solaris zaradi:
- Memory Placement Optimization (MPO)
- Thread Local Storage (TLS)
- Dynamic Tracing (DTrace)
in koliko se v praksi profitira zaradi teh tehnologij? A je razvijanje res nekajkrat lažje če uporabljaš DTrace?

4. Izkušnje s kompilerji. Recimo PGI vs. Intel vs. GCC za HPC.

Loki ::

kaksne zadeve bos pa delal?
I left my wallet in El Segundo

terryww ::

Imam računsko zahteven program in večjedern server na razpolago. Rad bi uporabil ostalih 7 jeder. Kasneje bi laufalo na klastru.

Zgodovina sprememb…

  • spremenil: terryww ()

Karlos ::

Na FRI-ju sem za eno seminarsko napisal program, ki reši igrico preskakovanja žebljičkov Peg Game, vzporedno na poljubno mnogo računalnikov (cluster) s pomočjo LAM - MPI v C++.

Stvar je dokaj preprosta za inštalerat in uporabljat, nisem pa 100% če si mislil kaj takega.
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."

terryww ::

Najlepša hvala za odgovor. Za MPI oz OpenMPI vem, ampak sem slišal da je razvojni čas zelo dolg. Trenutno se igram s Ct [http://techresearch.intel.com/articles/..., da vidim kak kaj to znese.

Gundolf ::

Za na cluster je več ali manj najbolj uporaben MPI (mišljeno kot standard, katerokol implementacijo že uporabljaš). Večjedrniki so pa v nasprotju s clustri shared-memory in to se splača izkoristit. Se pravi, če načrtuješ stvar nekoč dat na cluster začni kar takoj z MPI, sicer pa s čim primernim večjedrnikom, samo tu pa nimam pojma kaj se splača (za razliko od MPI ni moje področje).

MPI je pa drugače čist enostaven. Z dvema ukazoma (API funkcijama) za initializacijo in dvema za komunikacijo lahko narediš že praktično karkoli. Za kaj bolj advanced imaš potem tudi bolj specializirane ukaze. Ampak ponavadi uporabljaš zelo majhen subset MPIja zato se lahko vse sproti naučiš.

terryww ::

Fino.
A uporablja kdo DTrace (na solarisu al pa fbsdju)?
In kake so vaše izkušnje s compilerji? Intel je za mat op dosti hitrejši kot recimo GCC...

Zgodovina sprememb…

  • spremenil: terryww ()

Gundolf ::

Morda lahko kvečjemu računaš, da zna intelov compiler nekatere stvari pretvorit v specializirane streaming ukaze, vendar moraš ponavadi znat ga okol prinest, da se to zgodi. Drugje sta si dokaj blizu. Pa še problem moraš imeti tak, da to omogoča. Zame je recimo gcc čisto zadosti dober. Kot vedno pa je najzaneslivejši način če take dele kode, ki se jih da v MMX/SSD/3Dnow! izvest sam pravilno designiraš in tudi v assemblerju skodiraš. Samo redko komu se to da...

dr.J ::

> Intel je za mat op dosti hitrejši kot recimo GCC...

Jaz uporabljam gcc, intelov ter portlandov fortranski prevajalnik,
vse na Linux platformi. Izkušnje:
Intel: najbolje podpira - jasno - svoje procesorje in naredi
najhitrejšo izvršilno kodo
portland: takoj so podprte vse arhitekture
gcc: dobra hitrostna optimizacija pride z zamikom in je boljša
od Portlandove.

Za matematične operacije uporabiš binarno Intelovo mkl ali (AMDjevo
ACML) (Math Kernel Library) - zadeva leti!

Pathscale in absoft prevajalnikov nisem preizkusil, ker enostavno
nimam časa. Prednost gcc in intelovega prevajalnika je, da sta free
(intelov za nekomercialno rabo).

Zanimiv pristop pa je recimo CUDA od Nvidie.
In theory, there is no difference between practice and theory.

terryww ::

No, pred kratkim sem naletel na članek o programiranju SMP serverjev v klastru (nisem si mislil, da obstajajo cele študije o tem kako programirat na supercomupu ali klastru..). Ugotovitev je bila, da najhitreje program leti, če se programira hibridno (MPI (za globalno)+OpenMP(za lokalno)), ampak to je verjetno tudi odvisno od tega, kaj bo program delal.. V glavnem, zdaj me zanima primerjava OpenMP vs. Intel Threading Building Blocks. Nekje sem zasledil, da obstaja tudi več vrst niti (recimo POSIX). Zna kdo kaj več o tem povedat oz priporočiti literaturo za paralelno programiranje(razen OpenMP in TBB dokumentacije)?

Zgodovina sprememb…

  • spremenil: terryww ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

ARSO - nov superračunalnik, 640.000 EUR

Oddelek: Strojna oprema
193471 (2652) jest10
»

Nov najhitrejši superračunalnik zmore 20 petaflops (strani: 1 2 )

Oddelek: Novice / Znanost in tehnologija
5512795 (10467) Isotropic
»

Rusija gradi drugi najhitrejši superračunalnik na svetu

Oddelek: Novice / Znanost in tehnologija
227801 (5978) Bistri007
»

Napovedan prevajalnik CUDA C za x86

Oddelek: Novice / Procesorji
154745 (3666) noraguta
»

Larrabee s približno 1,7 milijarde tranzistorjev

Oddelek: Novice / Procesorji
395118 (3735) PrimozR

Več podobnih tem