Omat työkalut
Osiot
Olet täällä: Etusivu > @CSC-lehden arkisto > 2007 > @CSC 2/2007 > Ohjelmankehitys Murskassa
Sivun toiminnot

Ohjelmankehitys Murskassa

Murskan ohjelmankehitysympäristö perustuu Portland Groupin (PGI) Cluster Development Kitiin. Murskaan on asennettu myös GNU Compiler Collectioniin (GCC) kuuluvat kääntäjät.

Portland Groupin (PGI) Cluster Development Kit sisältää mm. seuraavat työkalut:

  • FORTRAN 77 -ja Fortran 90/95 -sekä C- ja C++-kääntäjät
  • Tuki MPI-, OpenMP- ja HPF-rinnakkaisohjelmoinnille
  • Graafisen debuggerin PGDBG ja profilointityökalun PGPROF.

PGDBG:llä voi kuitenkin toistaiseksi tutkia vain yhtä säiettä tai MPI- tehtävää kerrallaan. Kaikkien säikeiden tai tehtävien samanaikainen tutkiminen ei ole vielä mahdollista.

  • Numeerisen lineaarialgebran BLAS- ja LAPACK-kirjastot.
PGI CDK:n mukana  tullutta ScaLAPACK:ia ei ole asennettu Murskaan. Se kirjasto löytyy muualta Murskasta.

Tuettu MPI-kirjasto on HP-MPI, mutta myös MPICH on käytettävissä

Murskaan asennetut PGI:n Fortran- ja C/C++-kääntäjät ovat versionumeroltaan 7.0-3, joka on oletusversio Murskaan kirjauduttaessa. Myös version 6.2-5 PGI-kääntäjät löytyvät Murskasta.  Rinnakkaista datan käsittelyä tukeva HPF-kääntäjä sisältyy asennukseen.

Seuraavassa taulukossa on lueteltu PGI--kääntäjien komennot ja käännettävän ohjelmakoodin tiedoston nimen tarkenneosa.

Ohjelmointikieli

Komento

Tiedoston tarkenne

Fortran 90/95

pgf95

.f90, .f95, .F90, .F95

Fortran 77

pgf77

.f, .F, .FOR

High Performance Fortran (HPF)

pghpf

.hpf

ANSI C99 ja K&R C

pgcc

.c, .i

ANSI C++

pgCC

.C, .cc, .i

 

Huomautettakoon että HPF-ohjelmoinnin vaatimaa kääntäjää ei kaikissa koneissa ole, mikä vaikeuttaa ohjelmien siirrettävyyttä. MPI:llä saavutetaan tyypillisesti myös parempi suorituskyky.

Kääntäjän valitseminen

Käytettävä kääntäjä valitaan lataamalla vastaava moduuli. Ladatut moduulit saa selville komennolla

module list

ja kaikki käytettävissä olevat moduulit selviävät komennolla

module avail

Oletusarvona on PGI-ympäristön moduuli eli PrgEnv-pgi. Tämän voi vaihtaa GCC-moduuliin komennolla

module swap PrgEnv-pgi PrgEnv-gnu

Vastaavasti voi suorittaa vaihdon toiseen suuntaan. Suositeltavaa on aina ennen ohjelmien kääntämistä tarkistaa mikä ympäristö on käytössä.

MPI-ohjelmien kääntäminen

MPI-ohjelmien kääntämistä varten on valmiit wrapperit, jotka huolehtivat tarvittavien kirjastojen linkityksestä. Komennot ovat mpif77 (Fortran 77), mpif90 (Fortran 90), mpicc (C) ja mpiCC (C++). MPICH-kirjaston saa tarvittaessa käyttöön lisäämällä komennolla loppuun tarkenteen .mpich, esim. mpif90.mpich.

Kääntäjäoptiot

Seuraavassa taulukossa on joitakin kääntäjäoptioita, jotka ovat yhteisiä sekä PGI- että GCC-kääntäjille:

Optio

Kuvaus

-c

Pelkkä käännös. Tuottaa linkkaamattoman objektin filename.o

-o filename

Nimeää filename-tiedoston suoritettavaksi ohjelmaksi. Oletuksena: a.out

-g

Mahdollistaa debuggauksen  lähdekooditasolla

-Idirname

Etsii hakemistosta dirname  include- tai module -tiedostoja

-Ldirname

Etsii hakemistosta dirname kirjastotiedostoja jotka on märitelty optiolla -l

-llibname

Etsii kirjastotiedostoa nimeltä liblibname.a

-pg

Kirjoittaa profilointitietoa gprof-työkalua varten

-O[level]

Määrittelee optimointitason

-Wl,-M

Generoi ns. loader mapin näytölle (stdout)

 

Ohjelmien ajaminen

Murska on tarkoitettu pääasiallisesti eräajotöiden suorittamiseen. Käytössä oleva eräajojärjestelmä on LSF-SLURM, jota käsitellään tässä lehdessä toisaalla. Töiden lähettämiseen käytetään komentoa bsub.

Lisätietoa

Tarkempaa tietoa PGI- and GCC-kääntäjien optioista löytyy ohjelmien manuaalisivuilta komennoilla: man pgf90 tai man gcc. Sekä PGI:n että GCC:n manuaalit ovat käytettävissä web-sivuilla tai paikallisesti Murskassa polussa /opt/pgi/linux86-64/<versio>/doc,
esim. /opt/pgi/linux86-64/7.0-3/doc (avautuu acroread-ohjelmassa) sekä vastaavasti info gcc.

Koneen käyttöopas on luettavissa osoitteessa http://www.csc.fi/english/pages/murska_guide.