Visokozmogljivi računski sestav Fakultete za strojnišvo v Ljubljani namenjen raziskavam, ki zahtevajo vzporedno računanje znanstvenih problemov.

Message Passing Interface (MPI)

MPI je dominanten način komuniciranja s pošiljanjem sporočil. Sporočila se pošiljajo na nivoju procesov. Model MPI omogoča vzporedno izvajanje s sodelovanjem večih procesov na isti nalogi. Vsak proces ima pri delu svoje podatke. Procesi komunicirajo tako, da si med sabo pošiljajo in sprejemajo sporočila.Večina MPI programov temelji na modelu SPMD (Single-Program-Multiple-Data), kar pomeni, da vsi procesi izvajajo isti program s svojimi podatki. Da se omogoča medsebojno delo imajo procesi vsak svoj ID. Običajno se poganja en proces na eno procesorsko jedro.

Programiranje z deljenim spominom v OpenMP

OpenMP je način paralelnega programiranja v načinu, ko je več proceorjev priklopljeno na skupen spomin. Glavna prednost takega programiranja je enoten naslovni prostor preko celotnega spominskega sistema

  • vsak procesor lahko bere in piše na vse spominske lokacije
  • eden logičen spominski prostor
  • vsi procesorji naslavjlajo spomin z istim naslovom

 

Razhroščevanje, analiza in razčlenitev programov

Brian W. Kernighan je nekoč napisal:
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”

Subversion

Subversion (SVN) je sistem za sledenje spremembam izvorne kode, ki omogoča sočasno delo na skupnem projektu. Pri vsaki shranitvi na SVN strežnik, se shranijo le spremembe datotek, ki so bile dane pod nadzor. S hranjenjem vseh verzij izvorne kode je tako lažje nadzorovati razvoj projekta, slediti spremembam in oceniti njihov vpliv na delovanje celotnega projekta. Ker se hranijo vse verzije določene datoteke, lahko tako delamo le na eni datoteki, ne da bi bilo potrebno shranjevanje stabilnih ali kako drugae pomembnih verzij datoteke. Način dela je tako lahko časovno in prostorsko razporejen.

Fortran - Vaja 2

module trig implicit none real, parameter :: pi = 3.1415992 contains real function degtorad(deg) real, intent(in) :: deg degtorad = deg*pi/180 end function degtorad real function radtodeg(rad) real, intent(in) :: rad radtodeg = rad*180/pi end function radtodeg end module trig program anglecov use trig implicit none real a,b,c, d,e,f ! preberi tri kote read *, a, b, c ! Pretvori kote iz stopinj v radiane d=degtorad(a); e=degtorad(b); f=degtorad(c) ! izpiši kote print *, d, e, f ! pretvori kote iz radianov v stopinje

Primeri v Fortranu 90

Vaja 1 : Pozdrav

Preverimo delovanje programa z najkrajšim programom.

 program hello
  !Izpiše klasični pozdrav na terminal
  implicit none
  write (unit = *, fmt= *) "Hello World!"
end program hello

Program prevedemo in poženemo z ukazom

$ f95 hello.f90 -o hello
$ ./hello
 Hello World

Vaja 2 : Stopinje v Radiane

Poleg vgrajenih trigonometrijskimi funkcijami (sin(), cos(), tan, ...) si želimo še razne pomožne funkcije, kot je pretvorba stopinj.

Napišimo modul imenovan trig, ki vsebuje te funkcije za modularno rabo v drugih programih. Osnutek programa trig.f90 je naslednji

Osnove Fortrana

Programski jezik FORmulaTRANslation je bil prvotno razvit 1950 in nato standardiziran 1977. Kasnejše posodobitve vsebujejo Fortran 90.

Glavne prednosti so:

  • Pisanje formul
  • Zelo soroden pisanju matematičnih operaci
  • vgrajena kompleksna števila
  • Upravljanje s polji je naravno. Fortran 90 ima zmogljivo sintakso
  • Zelo optimiziran jezik. Uporaba kazalcev je omejena.
  • Naravni jezik za HPC aplikacije

Slabosti:

Strani

Subscribe to Visokozmogljivi računski sestav HPCFS RSS