eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingmatlab taki wydajny? › Re: matlab taki wydajny?
  • Path: news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!p
    ostnews.google.com!j14g2000yqm.googlegroups.com!not-for-mail
    From: bartekltg <b...@g...com>
    Newsgroups: pl.comp.programming
    Subject: Re: matlab taki wydajny?
    Date: Sun, 24 Jan 2010 22:45:04 -0800 (PST)
    Organization: http://groups.google.com
    Lines: 83
    Message-ID: <3...@j...googlegroups.com>
    References: <5...@a...googlegroups.com>
    <6...@1...googlegroups.com>
    <9...@k...googlegroups.com>
    <7...@g...googlegroups.com>
    <f...@c...googlegroups.com>
    <2...@n...googlegroups.com>
    NNTP-Posting-Host: 82.210.189.188
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1264401904 7444 127.0.0.1 (25 Jan 2010 06:45:04 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Mon, 25 Jan 2010 06:45:04 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: j14g2000yqm.googlegroups.com; posting-host=82.210.189.188;
    posting-account=CvUQzQoAAABvVQmR58QmR6N4Cev1qhAS
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.1.7)
    Gecko/20091221 Firefox/3.5.7 (.NET CLR
    3.5.30729),gzip(gfe),gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.comp.programming:184620
    [ ukryj nagłówki ]

    On 24 Sty, 11:23, thrunduil <t...@w...pl> wrote:
    > On 23 Sty, 10:11, Mariusz Marszałkowski <m...@g...com> wrote:
    >
    > > Przy mnozeniu macierzy wierszowej przez prostokatna juz wiem
    > > na 100% ze matlab nie jest o zaden rzad wielkosci szybszy, tylko
    > > jest dwa razy wolniejszy od procedury napisanej doslownie na
    > > kolanie w C++.
    >
    > to bylo sprawdzane czy sa to tylko domysly?
    >
    > bo podany kod mnozenia macierzy byl >10x wolniejszy od matlaba.

    To byl moj kod wiecz czuje sie wywolany do usprawiedliwien.
    Tamten kod byl napisany przed odrobieniem lekcji i skakal
    po macierzy nie w tej kolejnosci, w jakiej lubi to cache.

    Napisalem trzy wersje mnozenia poziomego wektora przez macierz
    naiwna ze zla kolejnoscia petli, naiwna z dobra kolejnoscia
    i wariacje na temat blokowego mnozenia macierzy.

    n=960. Wszystko, program w cpp i matlab dostawaly piorytet real time.

    naiwny, złe petle 51.345
    naiwny, ok 7.923
    blok32 8.705
    blok16 6.865
    blok8 4.886
    blok4 5.476

    MATLAB 8.899
    tic,for j=1:960,w=v*M;end;toc

    Mam nadzieje, ze tym razem nie strzelilem babola;)


    void mnoz (double *w,double *M,double *v,int n)
    {//petle ok
    for (int i=0;i<n;i++)
    {
    v[i]=0;
    }
    for (int i=0;i<n;i++)
    {
    for (int j=0;j<n;j++)
    v[j]=w[i]*M[n*i+j];
    }
    }

    void mnoz_naiw(double *w,double *M,double *v,int n)
    {//zle petle
    for (int i=0;i<n;i++)
    {
    v[i]=0;
    }
    for (int j=0;j<n;j++)
    for (int i=0;i<n;i++)
    v[j]=w[i]*M[n*i+j];

    }


    template<class T, int SN>
    void blokmnoz (T *w,T *M,T *v,int n)
    {
    for (int i=0;i<n;i++)
    {
    v[i]=0;
    }
    for (int i=0;i<n;i+=SN)
    {
    for (int j=0;j<n;j+=SN)
    {
    for (int ii=i;ii<i+SN;ii++)
    {
    for (int jj=j;jj<j+SN;jj++)
    v[jj]=w[ii]*M[n*ii+jj];
    }
    }
    }
    }

    pozdrawiam
    bartekltg

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: