eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › matlab taki wydajny?
Ilość wypowiedzi w tym wątku: 89

  • 41. Data: 2010-01-21 13:29:51
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < "thrunduil"
    >> Co to znaczy "bardzo optymalnym"?
    >wezmy dowolny problem optymalizacji praktycznej -> jest funkcja i
    >zbior solverow numerycznych.
    >Kazdy solver daje rozwiazanie optymalne, ale jedne bardziej inne mniej.

    Sorry, ale to jest bzdura. Któreś solvery (BTW, jest na to jakieś
    porządne polskie słowo?) dają rozwiązania suboptymalne.

    --
    \.\.\.\.\.\.\.\.\.\.\.\.\.\
    .\....@e...eu.org.\.\.
    \.http://epsilon.eu.org/\.\
    .\.\.\.\.\.\.\.\.\.\.\.\.\.


  • 42. Data: 2010-01-21 13:34:44
    Temat: Re: matlab taki wydajny?
    Od: thrunduil <t...@w...pl>

    On 21 Sty, 14:29, Mariusz Kruk <M...@e...eu.org> wrote:

    > Sorry, ale to jest bzdura. Któreś solvery (BTW, jest na to jakieś
    > porządne polskie słowo?) dają rozwiązania suboptymalne.

    Kazdy, chyba ze rozumiesz ta jedyna optymalnosc jako optymalnosc z
    dokladnoscia do epsilona (nieznanego)
    i wydruk wyniku jako pelny dowod.


  • 43. Data: 2010-01-21 13:37:14
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < "thrunduil"
    >> Sorry, ale to jest bzdura. Któreś solvery (BTW, jest na to jakieś
    >> porządne polskie słowo?) dają rozwiązania suboptymalne.
    >Kazdy, chyba ze rozumiesz ta

    "tę"

    >jedyna optymalnosc jako optymalnosc z
    >dokladnoscia do epsilona (nieznanego)

    Nie ma "optymalność z dokładnością". Optymalny oznacza "najlepszy przy
    zadanych kryteriach". A z podstaw TM pewnie pamiętasz, że w zbiorze
    uporządkowanym nie ma dwu największych elementów.

    --
    [------------------------]
    [ K...@e...eu.org ]
    [ http://epsilon.eu.org/ ]
    [------------------------]


  • 44. Data: 2010-01-21 13:53:47
    Temat: Re: matlab taki wydajny?
    Od: thrunduil <t...@w...pl>

    On 21 Sty, 14:37, Mariusz Kruk <M...@e...eu.org> wrote:
    > epsilon$ while read LINE; do echo \>"$LINE"; done < "thrunduil"
    >
    > >> Sorry, ale to jest bzdura. Któreś solvery (BTW, jest na to jakieś
    > >> porządne polskie słowo?) dają rozwiązania suboptymalne.
    > >Kazdy, chyba ze rozumiesz ta
    >
    > "tę"
    >
    > >jedyna optymalnosc jako optymalnosc z
    > >dokladnoscia do epsilona (nieznanego)
    >
    > Nie ma "optymalność z dokładnością". Optymalny oznacza "najlepszy przy
    > zadanych kryteriach". A z podstaw TM pewnie pamiętasz, że w zbiorze
    > uporządkowanym nie ma dwu największych elementów.

    Nie. Optymalny znaczy rozwiazujacy problem optymalizacji (w matematyce
    tylko). Optymalny to nie jest funkcja: kryteria->wynik.
    Jezeli solvery problemow optymalizacyjnych nie daja wyniku optymalnego
    (bo wynik jest zwiazany z dokladnoscia i moze nawet lezy w malym
    otoczeniu rozwiazania, przynajmniej mozna w to gleboko wierzyc)
    to co daja?

    Co oznacza optymalny wszedzie poza matematyka?
    Moze zaproponujesz jakis slownik pojec matematyki praktycznej?


  • 45. Data: 2010-01-21 14:01:01
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Kruk <M...@e...eu.org>

    epsilon$ while read LINE; do echo \>"$LINE"; done < "thrunduil"
    >> >> Sorry, ale to jest bzdura. Któreś solvery (BTW, jest na to jakieś
    >> >> porządne polskie słowo?) dają rozwiązania suboptymalne.
    >> >Kazdy, chyba ze rozumiesz ta
    >> "tę"
    >> >jedyna optymalnosc jako optymalnosc z
    >> >dokladnoscia do epsilona (nieznanego)
    >> Nie ma "optymalność z dokładnością". Optymalny oznacza "najlepszy przy
    >> zadanych kryteriach". A z podstaw TM pewnie pamiętasz, że w zbiorze
    >> uporządkowanym nie ma dwu największych elementów.
    >Nie. Optymalny znaczy rozwiazujacy problem optymalizacji (w matematyce
    >tylko). Optymalny to nie jest funkcja: kryteria->wynik.

    A problem optymalizacji polega na znalezieniu ekstremum funkcji celu.
    Ekstremum.

    >Jezeli solvery problemow optymalizacyjnych nie daja wyniku optymalnego
    >(bo wynik jest zwiazany z dokladnoscia i moze nawet lezy w malym
    >otoczeniu rozwiazania,

    Ale piszesz o optymalizacji, czy numeryce? Optymalizacja to jedno,
    a numeryka z jej zabawami z dokładnością, to jednak coś innego.
    (choć owszem, można zaprzęgać jedno do drugiego)

    >przynajmniej mozna w to gleboko wierzyc)
    >to co daja?

    Rozwiązania suboptymalne. Możliwe, że z powodu istnienia czynników
    zewnętrznych akceptowalne w danym zastosowaniu, ale jednak suboptymalne.

    >Co oznacza optymalny wszedzie poza matematyka?

    To samo, co w matematyce. http://sjp.pwn.pl/lista.php?co=optymalny


    --
    /\-\/\-\/\-\/\-\/\-\/\-\/\
    \ K...@e...eu.org /
    / http://epsilon.eu.org/ \
    \/-/\/-/\/-/\/-/\/-/\/-/\/


  • 46. Data: 2010-01-21 14:05:14
    Temat: Re: matlab taki wydajny?
    Od: Krzysiek Kowaliczek <k...@g...com>

    Użytkownik thrunduil napisał:
    > Nie. Optymalny znaczy rozwiazujacy problem optymalizacji (w matematyce
    > tylko). Optymalny to nie jest funkcja: kryteria->wynik.

    Nie, optymalny znaczy najlepszy.

    > Jezeli solvery problemow optymalizacyjnych nie daja wyniku optymalnego
    > (bo wynik jest zwiazany z dokladnoscia i moze nawet lezy w malym
    > otoczeniu rozwiazania, przynajmniej mozna w to gleboko wierzyc)
    > to co daja?

    Proste, daje wynik zbliżony do optymalnego.

    Pozdrawiam
    KK


  • 47. Data: 2010-01-21 14:39:55
    Temat: Re: matlab taki wydajny?
    Od: thrunduil <t...@w...pl>

    On 21 Sty, 15:05, Krzysiek Kowaliczek
    <k...@g...com> wrote:

    > Proste, daje wynik zbli ony do optymalnego.

    ta terminologia cieszy sie ogromnym powodzeniem, wszedzie mozna ja
    spotkac.)

    rozwazmy problem prostszy. Optymalizujemy kod z flagami O1, O2, O3.
    Uzyskujemy kod zoptymalizowany ale nie optymalny.
    Wynikiem zastosowania procedury optymalizacji, ktora zakonczyla sie
    sukcesem uzyskujemy cos co nie jest optymalne.
    Spojnosc z terminologia matematyczna jest naprawde powalajaca :)

    Czy moze zglosiles bug report: zly wording?


  • 48. Data: 2010-01-21 14:56:15
    Temat: Re: matlab taki wydajny?
    Od: Wit Jakuczun <w...@g...com>

    On 21 Sty, 14:23, thrunduil <t...@w...pl> wrote:
    > On 21 Sty, 11:40, Mariusz Kruk <M...@e...eu.org> wrote:
    >
    > > Co to znaczy "bardzo optymalnym"?
    >
    > wezmy dowolny problem optymalizacji praktycznej -> jest funkcja i
    > zbior solverow numerycznych.
    > Kazdy solver daje rozwiazanie optymalne, ale jedne bardziej inne mniej.

    Sformułowanie "bardziej optymalne" jest błędne w języku Polskim!

    Jeśli solver daje rozwiazanie optymalne to z definicji inny nie może
    dać rozwiązania
    lepszego, to znaczy takiego, że funkcja celu przyjmuje większą/
    mniejszą wartość (w zależności
    od tego czy maksymalizujemy czy minimalizujemy).
    Jeśli solver nie daje rozwiązania optymalnego to znaczy, że daje
    rozwiązanie
    nieoptymalne.
    W mowie potocznej rzeczywiście mówi się, że ktoś coś zrobił bardziej
    optymalnie niż
    ktoś inny. Ale mowa potoczna często nie jest poprawna...

    Pozdrawiam,
    Wit Jakuczun


  • 49. Data: 2010-01-21 15:03:19
    Temat: Re: matlab taki wydajny?
    Od: Wit Jakuczun <w...@g...com>

    On 21 Sty, 15:39, thrunduil <t...@w...pl> wrote:

    > > Proste, daje wynik zbli ony do optymalnego.
    >
    > ta terminologia cieszy sie ogromnym powodzeniem, wszedzie mozna ja
    > spotkac.)
    >
    To oczywiste, gdyż ta terminologia jest poprawna.

    > rozwazmy problem prostszy. Optymalizujemy kod z flagami O1, O2, O3.
    > Uzyskujemy kod zoptymalizowany ale nie optymalny.
    > Wynikiem zastosowania procedury optymalizacji, ktora zakonczyla sie
    > sukcesem uzyskujemy cos co nie jest optymalne.
    Normalka w praktyce.

    > Spojnosc z terminologia matematyczna jest naprawde powalajaca :)
    >
    Gdzie tu widzisz brak spójności? Nie każda metoda optymalizacji zwraca
    rozwiązanie
    optymalne. Powiem więcej, w praktyce, o której wspominałeś, metoda ma
    zwróć
    dobre rozwiązanie (o wysokiej jakości mierzonej funkcją celu) w
    krótkim czasie. Nikt
    nie oczekuje rozwiązania optymalnego. Wszyscy oczekują rozwiązania
    lepszego od tego,
    które teraz jest stosowane.

    Pozdrawiam,
    Wit Jakuczun


  • 50. Data: 2010-01-21 15:10:59
    Temat: Re: matlab taki wydajny?
    Od: bartekltg <b...@g...com>

    On 21 Sty, 10:08, thrunduil <t...@w...pl> wrote:

    > > No to sie okazuje, ze narzut matlaba dla niewielkich wektorkow jest
    > > spory.
    >
    > To nie ma nic wspolnego z narzutem Matlaba.

    Zakład?

    > To sie nie skaluje liniowo. Kod mnozenia gdy prawa strona jest
    > macierza robi pewna sztuczke - blocking, podstawowy kod mnozenia ma
    > conajmniej szesc zagniezdzonych petli w taki sposob aby potrzebne
    > rzeczy byly w pamieci cache.
    > Cache misses dla L2 to koszt rzedu 200-300 cykli procesora. Unikniecie
    > wiec koniecznosci czytania pamieci daje duze oszczednosci.
    > Da sie to zrobic gdy prawa strona jest macierza, Gdy mnozy sie
    > wielkokrotnie przez wektor z prawej strony wykorzystanie pamieci jest
    > duzo gorsze, stad roznica efektywnosci. Narzut petli powinien byc
    > zaniedbywalny.

    To nie ma nic wspolnego z pamiecia, przynajmniej nie tak, jak
    sugerujesz.
    Jesli by mialo, to moj prosty kod (podany na koncu) tez by mizernie
    dzialal.
    Ale on nie chec, 1000 roznych mnozen wektorka dlugosci 1000
    przez macierz 1000x1000 liczy w niecale 6s.

    Dwa razy wolniej niz matlab liczac iloczyn 2 macierzy,
    ale tez ponad dwa razy szybciej niz analogiczne petla
    w matlabie:

    ||>> tic,for j=1:1000,a*v;end;toc
    ||
    ||Elapsed time is 15.379616 seconds.

    Czyli rozdrabnianie wywoluje jakis narzyt nie tylko
    przez gorsze wykorzystywanie pamieci.

    Chyba, ze cos w kodzie jest zle. Wektor wejsciowy zalezy od
    tego, co sie wpisze, wynik jest takze wypisywany ('potrzebny').
    W kazdej petli korzystam z innego wektora (kawalka znacznie
    dluzszego wektora)..

    pozdrawiam
    bartekltg

    #include <time.h>
    #include <stdio.h>
    #include <stdlib.h>

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

    int _tmain(int argc, _TCHAR* argv[])
    {
    double *w;double *M;double *v;
    clock_t start,end;
    double dif;

    int n,r;
    scanf("%d %d",&n,&r);

    srand(r);//coby jakos dziwnie nie zoptymalizowalo

    w=new double [n*n];
    v=new double [n*n];
    M=new double [n*n];

    for (int i=0;i<n*n;i++)
    v[i]=rand()*1.024894;
    for (int i=0;i<n*n;i++)
    M[i]=rand()*1.894;

    start=clock();
    for (int i=0;i<n;i++) //n razy podrzucamy rozne wektorki
    mnoz(&w[i*n],M,&v[i*n],n);
    end=clock();

    double aku=1;
    for (int i=1;i<n*n;i++)
    aku+=w[i]*w[i-1]; //coby wynik byl potrzebny i kod nie wyparowal
    printf("\n%.2le \n",aku);
    dif = difftime (end,start);
    printf ("\n%.2lf \n", double(end-start)/double(CLOCKS_PER_SEC) );
    return 0;
    }

strony : 1 ... 4 . [ 5 ] . 6 ... 9


Szukaj w grupach

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: