Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

C sučelje za LAPACK (informacija)

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 2:18 ned, 6. 3. 2011    Naslov: C sučelje za LAPACK Citirajte i odgovorite

Jedna od varijanti MKL C sučelja za LAPACK prihvaćena je od strane samog LAPACK projekta u zadnjem izdanju.
Možda vam to bude korisno za neke buduće probleme i zadaće.

https://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=6&t=2068#p5869
Jedna od varijanti MKL C sučelja za LAPACK prihvaćena je od strane samog LAPACK projekta u zadnjem izdanju.
Možda vam to bude korisno za neke buduće probleme i zadaće.

https://icl.cs.utk.edu/lapack-forum/viewtopic.php?f=6&t=2068#p5869


[Vrh]
Korisnički profil Pošaljite privatnu poruku
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 21:14 uto, 22. 11. 2011    Naslov: Citirajte i odgovorite

LAPACKE dokumentacija:
http://www.netlib.org/lapack/lapacke.html
LAPACKE dokumentacija:
http://www.netlib.org/lapack/lapacke.html


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Atomised
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 23:57 uto, 25. 12. 2012    Naslov: Citirajte i odgovorite

Radi li ovo na Fermiju? Ja sam probao i nije mi radilo pa ne znam jesam li krivo probao ili nije do mene. :)
Radi li ovo na Fermiju? Ja sam probao i nije mi radilo pa ne znam jesam li krivo probao ili nije do mene. Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 0:10 sri, 26. 12. 2012    Naslov: Citirajte i odgovorite

Nisam probao (vozim Fortran-style Lapack za sebe), ali trebalo bi raditi.
Odite [url=http://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mklman/index.htm]ovdje[/url], potražite odgovarajuću Lapack rutinu i pod C dijelom piše kako se poziva u LAPACKE stilu.
Ako ne bude radilo, molit ću lijepo kod koji ne radi, što ne radi (tj. poruke o greškama) i kako je kompajlirano.
Nisam probao (vozim Fortran-style Lapack za sebe), ali trebalo bi raditi.
Odite ovdje, potražite odgovarajuću Lapack rutinu i pod C dijelom piše kako se poziva u LAPACKE stilu.
Ako ne bude radilo, molit ću lijepo kod koji ne radi, što ne radi (tj. poruke o greškama) i kako je kompajlirano.


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Atomised
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 0:31 sri, 26. 12. 2012    Naslov: Citirajte i odgovorite

Ma meni se ovo sviđa jer se samo brine za memoriju. :D
Provjerio sam još u međuvremenu, na Fermiju postoji mkl_lapacke.h, trebalo bi raditi.
Znam i kako se pišu funkcije (npr. DGEQRF postaje LAPACKE_dgeqrf), jedino što još nisam skužio kako to sve skupa linkati/kompajlirati.
Hvala na linku (i odgovoru). :)
Ma meni se ovo sviđa jer se samo brine za memoriju. Very Happy
Provjerio sam još u međuvremenu, na Fermiju postoji mkl_lapacke.h, trebalo bi raditi.
Znam i kako se pišu funkcije (npr. DGEQRF postaje LAPACKE_dgeqrf), jedino što još nisam skužio kako to sve skupa linkati/kompajlirati.
Hvala na linku (i odgovoru). Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku
venovako
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 07. 11. 2002. (22:46:38)
Postovi: (2F9)16
Sarma = la pohva - posuda
56 = 65 - 9

PostPostano: 1:31 sri, 26. 12. 2012    Naslov: Citirajte i odgovorite

[code:1]#include <mkl.h>[/code:1]

To će povući i mkl_lapacke.h.

Kompajl/link za C:
[code:1]icc -mkl=??? bla.c[/code:1]
ili za C++:
[code:1]icpc -mkl=??? bla.cpp[/code:1]
gdje je ???
sequential (ako se ne želi da MKL diže vlastite threadove), ili
parallel (ako se želi).
Ako je još u igri MPI, icc zamijeniti s mpiicc, odnosno icpc s mpiicpc, a MKL uzeti sekvencijalni.

Ako uzmete DGELS primjer [url=http://www.netlib.org/lapack/lapacke.html]odavde[/url], i samo promijenite zaglavlja da izgleda ovako:
[code:1]/* Calling DGELS using row-major order */

#include <mkl.h>
#include <stdio.h>

int main (int argc, const char * argv[])
{
double a[5][3] = {1,1,1,2,3,4,3,5,2,4,2,5,5,4,3};
double b[5][2] = {-10,-3,12,14,14,12,16,16,18,16};
lapack_int info,m,n,lda,ldb,nrhs;
int i,j;

m = 5;
n = 3;
nrhs = 2;
lda = 3;
ldb = 2;

info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);

for(i=0;i<n;i++)
{
for(j=0;j<nrhs;j++)
{
printf("%lf ",b[i][j]);
}
printf("\n");
}
return(info);
}[/code:1]
to spremite na Fermiju kao proba.c i zatim kažete
[code:1]icc -mkl=sequential proba.c[/code:1]
te pokrenete ./a.out, dobijete
[code:1]2.000000 1.000000
1.000000 1.000000
1.000000 2.000000[/code:1]

Radi li sad?
Kod:
#include <mkl.h>


To će povući i mkl_lapacke.h.

Kompajl/link za C:
Kod:
icc -mkl=??? bla.c

ili za C++:
Kod:
icpc -mkl=??? bla.cpp

gdje je ???
sequential (ako se ne želi da MKL diže vlastite threadove), ili
parallel (ako se želi).
Ako je još u igri MPI, icc zamijeniti s mpiicc, odnosno icpc s mpiicpc, a MKL uzeti sekvencijalni.

Ako uzmete DGELS primjer odavde, i samo promijenite zaglavlja da izgleda ovako:
Kod:
/* Calling DGELS using row-major order */

#include <mkl.h>
#include <stdio.h>

int main (int argc, const char * argv[])
{
   double a[5][3] = {1,1,1,2,3,4,3,5,2,4,2,5,5,4,3};
   double b[5][2] = {-10,-3,12,14,14,12,16,16,18,16};
   lapack_int info,m,n,lda,ldb,nrhs;
   int i,j;

   m = 5;
   n = 3;
   nrhs = 2;
   lda = 3;
   ldb = 2;

   info = LAPACKE_dgels(LAPACK_ROW_MAJOR,'N',m,n,nrhs,*a,lda,*b,ldb);

   for(i=0;i<n;i++)
   {
      for(j=0;j<nrhs;j++)
      {
         printf("%lf ",b[i][j]);
      }
      printf("\n");
   }
   return(info);
}

to spremite na Fermiju kao proba.c i zatim kažete
Kod:
icc -mkl=sequential proba.c

te pokrenete ./a.out, dobijete
Kod:
2.000000 1.000000
1.000000 1.000000
1.000000 2.000000


Radi li sad?


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Atomised
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 04. 09. 2007. (15:33:59)
Postovi: (399)16
Sarma = la pohva - posuda
70 = 95 - 25
Lokacija: Exotica

PostPostano: 1:42 sri, 26. 12. 2012    Naslov: Citirajte i odgovorite

Radi. :bow:
Radi. I bow before you


[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji diplomskih i starih studija -> Paralelni algoritmi 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Možete otvarati nove teme.
Možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan