» »

Matlab

Matlab

__jack__ ::

Ve kdo za kakšno fajn gradivo za Matlab za začetnika? Knjiga ali pa še boljše kaj na netu?

švrk ::

Priporočam knjigo:
http://www.dmfa-zaloznistvo.si/mafi/ma/...
v njej imaš celo poglavje namenjeno Matlabu in je vse lepo razloženo.
Če si študent jo dobiš za švoh 11EUR ali pa si jo sposodi v knjižnici.
Na netu je ogromno help-a tako da moraš malo poiskat. Uporabna zadevca je npr:
http://www.km.fgg.uni-lj.si/psks/matlab...

LiamGothe ::

Pozdravljeni!

Je imel kdo od vas mogoče opravka z paralelnim programiranjem v Matlabu?.
Pišem program za izračunati produkt matrik in mi nikakor ne dela kot bi želel.
Vzporedno mi porabi veliko več časa za izračunati. Množim pa vektorsko (vektorsko množenje matrik).
Če se kdo javi prilepem gor še kodo:D

Hvala in lp

švrk ::

Če želiš, da ti kdo pomaga prilepi kodo in natančno opiši problem. Dvomim, da bo kdo odgovarjal na tvoja vprašanja ter te prosil za kodo in razlago problema:)

LiamGothe ::

torej.

Želim zmnožiti 2 matriki. To se pravi da moreš eno vrstico ene matrike pomnožiti z vsakim stolpec druge matrike. Probelm je pa v tem da ko povečam matriko porabi za izračunat veliko časa. Če dam pa majhno matriko je pa vse v redu. Dal sm velikost matrike 400x400.

koda:
     A=magic(400);%[1,0,2;-1,3,1];
B=magic(400);%[3,1;2,1;1,0];
[x,y]=size(A);
l=0;
tic
C=zeros(x);
for k=1:x
    for i=1:x
        %fprintf(1,'%d. ',k);
        parfor j=1:x
            l=l+A(k,j)*B(j,i);
            %fprintf(1,'%d ',l);
        end
        C(k,i)=l;
        l=0;
        %fprintf(1,'\n');
    end
end
toc
%C

Zgodovina sprememb…

Senitel ::

Skalarnega produkta ne moreš tkole paralelizirat. Lahko pa ostali dve for zanki.

LiamGothe ::

Senitel je izjavil:

Skalarnega produkta ne moreš tkole paralelizirat. Lahko pa ostali dve for zanki.


primer je z wikipedii. In je vektorski. problem je v času ne da mi koad ne dela. izračuna že, ampak traja veliko časa.

primer: če sta A in B matriki velikosti 20:

čas za paralelno je: Elapsed time is 85.990975 seconds.
čas za neparalelno je: Elapsed time is 0.000187 seconds.

Kaj si pa mislil z ostalimi 2 zankami. Se opravičujem ampak sem nov (začetnik):D

Senitel ::

Seveda je počasno. Če pa skalarnega produka ne moreš izvajat paralelno (l = l + ...) in ti Matlab verjetno nameče not miljardo mutexov, ki vse skup serializirajo nazaj. Koda v parfor ne sme bit odvisna od ostalih threadov.
Od treh for zank, dve od katerih sta fajn kandidatki za parfor si izbral ravno tisto, ki se jo je za izognit.


Vredno ogleda ...

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

Baza v vektorskem prostoru

Oddelek: Šola
182636 (1134) BivšiUser2
»

Matlab problem

Oddelek: Pomoč in nasveti
281459 (883) bluefish
»

Matlab pomoč

Oddelek: Programiranje
142128 (1432) Jan23
»

Matrix multiplication program Pycuda in Mathlab

Oddelek: Programiranje
292582 (2157) Senitel
»

excel+visual basic

Oddelek: Pomoč in nasveti
101568 (1455) švrk

Več podobnih tem