eGospodarka.pl
eGospodarka.pl poleca

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

  • 11. Data: 2010-01-18 19:20:15
    Temat: Re: matlab taki wydajny?
    Od: "Wiktor S." <wswiktor&poczta,fm@no.spam>

    > Dlaczego mam sie nie dziwic? Matlab chyba jest cholernie drogi?

    Mnie zastanawia, jakie sa zastosowania, w których sie faktycznie OPLACA
    wybulic TAKI majatek na Matlaba... bo jakies chyba sa, skoro program zyje?

    --
    Azarien


  • 12. Data: 2010-01-18 19:26:12
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Marszałkowski <m...@g...com>

    On 18 Sty, 19:55, bartekltg <b...@g...com> wrote:
    > On 18 Sty, 13:15, Mariusz Marszałkowski <m...@g...com> wrote:
    >
    > > Witam
    >
    > > Od dość dawna słyszę opinie że procedury zaimplementowane w
    > > matlabie są bardzo wydajne. Nie znam matlaba, ale wczoraj przez
    > > przypadek miałem go pod ręką, no i tyle ile można się nauczyć
    > > przez godzinę sprawdziłem.
    >
    > > Program w matlabie robił coś takiego:
    > > for i=1:20000
    > >  v = a * m1;
    > >  a = v * m2;
    > > end;
    >
    > U mnie 520 (tzn petla do 2000 zajela 52).
    > Natomiast rownowazne
    > tic;a=a*(m1*m2)^(20000-1);  v = a * m1; a = v * m2; toc
    >
    > zajelo 50s. Czyli 10 razy mniej:)
    Niemożliwe aby jedna pętla zajmowała porównywalną ilość
    czasu do 6mln operacji. Może matlab użył innego algorytmu?
    Albo czegos nie zrozumialem....


    > > gdyż robił ciut więcej obliczeń. No i w C
    > > wykonywało to 70s.
    >
    > 100 do 70? cos mierna ta roznica.
    >
    > > Więc to tylko plotki że matlab jest taki wydajny?
    >
    > Po pierwsze, porownaj powazne procedury. Chocby mnozenie maciezy.
    Nie rozumie, a co ja porównałem jak nie mnożenie macierzy?

    > Po drugie, czy matlab w tym miejscy nie korzysta z c blas/lapack?
    > Ze napisales ogolne procedury wydajniejsze - nie wierze;)
    Napisałem wydajniej to co opisałem: mnożenie macierzy o
    rozmiarze Nx1 przez macierz MxN. Super wydajny pakiet powinien
    mieć specjalną implementację do takich macierzy.

    > Sprawa zapewne rozbija sie o lepsze uzycie procesora,
    > programiki z c je wykorzystuje, matlab raczej nie
    > (czy daja wersje pod rozne procesory, nie wiem, moj jest uczelniany
    > i bebecham malo mnie obchodza, ale watpie).
    Też mnie to nie bardzo obchodzi, ale od co najmniej roku slysze
    ze matlab jest baaardzo wydajny i jak uzyje jego procedur to
    bede mail szybsze niz swoje. A tu prosze, podstawowa procedura i
    jest prawie dwa razy wolniej. Nie bawilem sie opcjami gcc, moze by
    wyszlo ponad dwa razy. Slyszalem nawet ze matlab wykorzystuje
    CUDA, a na tamtym kompie byla karta grafiki z ta technologia.

    > Skontaktuj sie z nimi i zapytaj o podiane bibliotek na superprocek.
    Nie chce mi sie, pokazalem ze na najprostszym przykladzie radzi
    sobie gorzej, wiec dlaczego mam dawac waire ze na zaawansowanych
    procedurach radzi sobie lepiej?


    > Po trzecie. Wydajnosc matlaba to sprawa drugorzedna. 70% to
    > niezly wynik.
    To inna sprawa z ktora sie zgadzam. Po prostu czesto mnie
    zasypywano informacjami o super wydajnosci matlaba, a teraz
    wiem ze wydajnosc raczej ma przecietna.

    > Matlab to taka pierwsza linia frontu:) Mozesz sobie poeksperymentowac,
    > wszytko masz pod reka, a jesli dane do obliczen/symulacji/obrobki
    > beda duze i zalezec Ci bedzie na tym czynniku rzedu 2, posiedzisz
    > dwa tygodnia lub miesiace i napiszesz to w c/c++/fortranie.
    Z tym sie tez zawsze zgadzalem, to inna sprawa.

    Pozdrawiam serdecznie


  • 13. Data: 2010-01-18 19:41:57
    Temat: Re: matlab taki wydajny?
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl>

    Wiktor S. <wswiktor&poczta,fm@no.spam> napisał(a):
    > Mnie zastanawia, jakie sa zastosowania, w których sie faktycznie OPLACA
    > wybulic TAKI majatek na Matlaba... bo jakies chyba sa, skoro program zyje?

    Matlab ma pierdyliard funkcji, sporo zastosowań się znajdzie :)

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 0 days, 1 hours, 6 minutes and 21 seconds


  • 14. Data: 2010-01-18 19:50:52
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Marszałkowski <m...@g...com>

    On 18 Sty, 20:20, "Wiktor S." <wswiktor&poczta,f...@no.spam> wrote:
    > > Dlaczego mam sie nie dziwic? Matlab chyba jest cholernie drogi?
    >
    > Mnie zastanawia, jakie sa zastosowania, w których sie faktycznie OPLACA
    > wybulic TAKI majatek na Matlaba... bo jakies chyba sa, skoro program zyje?
    >

    Nie wiem... może są, może nie ma... Dziś do jednego zadania czesto
    istnieje
    dużo rozwiązań, od darmowych po cholernie drogie, albo wrecz po pisane
    specjalnie
    na zamowienienie. Ciekzko powiedziec obiektywnie w jakim stopniu zycie
    drogich pakietow zalezy od niewiedzy klientow, a w jakim od
    faktyczniej
    przydatnosci i braku alternatywnego taniszego rozwiazania. Zycie
    pokazuje
    ze dobry i tani produkt moze umrzec z powodu zlego marketingu, a
    kiepski i
    drogi moze przynosic zyski dzieki dobrej reklamie.

    Pozdrawiam



  • 15. Data: 2010-01-18 20:24:06
    Temat: Re: matlab taki wydajny?
    Od: Michoo <m...@v...pl>

    Mariusz Marszałkowski pisze:
    >
    >> Po trzecie. Wydajnosc matlaba to sprawa drugorzedna. 70% to
    >> niezly wynik.
    > To inna sprawa z ktora sie zgadzam. Po prostu czesto mnie
    > zasypywano informacjami o super wydajnosci matlaba, a teraz
    > wiem ze wydajnosc raczej ma przecietna.

    Napisz teraz to samo mnożenie macierzy w javie i porównaj wyniki. Okaże
    się, że matlab jest wyjątkowo szybki. ;)


    --
    Pozdrawiam
    Michoo


  • 16. Data: 2010-01-18 22:08:18
    Temat: Re: matlab taki wydajny?
    Od: "Wiktor S." <wswiktor&poczta,fm@no.spam>

    >> Mnie zastanawia, jakie sa zastosowania, w których sie faktycznie
    >> OPLACA wybulic TAKI majatek na Matlaba... bo jakies chyba sa, skoro
    >> program zyje?

    > Matlab ma pierdyliard funkcji, sporo zastosowań się znajdzie :)

    Ale nie za fafdziesiąt tysięcy... no chyba że piracimy, wtedy tak.


    --
    Azarien


  • 17. Data: 2010-01-19 01:52:07
    Temat: Re: matlab taki wydajny?
    Od: bartekltg <b...@g...com>

    On 18 Sty, 20:26, Mariusz Marszałkowski <m...@g...com> wrote:

    > Niemożliwe aby jedna pętla zajmowała porównywalną ilość
    > czasu do 6mln operacji. Może matlab użył innego algorytmu?
    > Albo czegos nie zrozumialem....

    Tak, liczymy to inaczaj. Macierz potegowana jest matoda
    binarna. Obliczenia k tej potegi zajmuje cos rzedu log_2 k
    mnozej naszych kwadratowych macierzy n*n. (chyba 3log k)

    Czyli mamy n^3 *log k + nieistotne

    Dla duzych k moze byc to szybsze niz Twoja metoda,
    czyli k*n^2.

    [i tu znow wychodzi glowna zaleta takich pakietow, napisanie
    tego uzywajac np BLAS'a zajelo by chwile, jesli nie masz w tej
    bibliotece wprawy, nie mowiac juz o napisanie calosci samemu.]

    > Nie rozumie, a co ja porównałem jak nie mnożenie macierzy?

    Porownales wektor * macierz. Ja zastanawialem sie nad porownaniem
    mnozenia 2 macierzy kwadratowych (i nieco wiekszych niz 1000).

    > Napisałem wydajniej to co opisałem: mnożenie macierzy o
    > rozmiarze Nx1 przez macierz MxN. Super wydajny pakiet powinien
    > mieć specjalną implementację do takich macierzy.

    A nie jest to wydajne? Masz czas tego samego rzedu co w jezyku
    kompilowalnym (i to skompilowanem pod swoj system i procek!).

    Chcesz z maksymalna moca swojego komputera robic ceizkie
    obliczenia gdzie te 30% jest istotne.. chyba bedzie trzeba
    zatrudnic programiste. Albo doktoranta:)

    A skad te glosy ze jest super wydajne? Moze od ludzi,
    ktorzy robili to w Ja.. jakims podejrzanym jezyku skryptowym
    bez uzycia bilioteki. Albo od ludzi, ktorym mnozenie macierzy
    pisal ow doktorant:)

    Porownalem z pythonem i bibliotekami numpy i scipy,
    mnozenie 2 macierzy. Wyniki identyczne jak w matlabie.

    BTW, rozumeim, ze pusciels oba parokrotnie i porownales
    najlepszy z najlepszym.

    > > Sprawa zapewne rozbija sie o lepsze uzycie procesora,
    > > programiki z c je wykorzystuje, matlab raczej nie
    > > (czy daja wersje pod rozne procesory, nie wiem, moj jest uczelniany
    > > i bebecham malo mnie obchodza, ale watpie).
    >
    > Też mnie to nie bardzo obchodzi, ale od co najmniej roku slysze
    > ze matlab jest baaardzo wydajny i jak uzyje jego procedur to
    > bede mail szybsze niz swoje. A tu prosze, podstawowa procedura i
    > jest prawie dwa razy wolniej. Nie bawilem sie opcjami gcc, moze by

    Moze rzeczywiscie pisali mnozenie macierzy w javie;)

    A jestes pewien, ze niewielkim nakladem pracy zbudujesz dobry
    algorytm numeryczny. Wydajne PCG dla macierzy rzadkich,
    roznego rodzaju rozklady, czy uniwersalna szukaczke minimow.

    To, ze podstawowe operacje sa ciut wolniejsze nie oznacza,
    ze osoba majaca kontakt z numeryka tylko przy okazji
    napisze szybszy kod.

    > wyszlo ponad dwa razy. Slyszalem nawet ze matlab wykorzystuje
    > CUDA, a na tamtym kompie byla karta grafiki z ta technologia.

    Podejrzewam, ze trzeba mu kazac (byc moze sa to osobne funkcje).
    I miec wersje (toolboxa?) pozwalajaca na to.

    > > Skontaktuj sie z nimi i zapytaj o podiane bibliotek na superprocek.
    >
    > Nie chce mi sie, pokazalem ze na najprostszym przykladzie radzi
    > sobie gorzej, wiec dlaczego mam dawac waire ze na zaawansowanych
    > procedurach radzi sobie lepiej?

    Szczerze mowiac, wybrales zagadneinie nad ktorym srednio sie
    pochylali. Patrz koniec postu.
    A bardziej zaawansowane algorytmy to cos wiecej niz dwie/trzy petle.
    Jak chesz naprawde porownac matlaba i swoj kod, zrob to
    na czyms powazniejszym, LUP (wbudowana), znajdowanie
    wektortow wlasnych (wbudowana, cholski i QZ) albo PCG (skrypt).
    Pewnie da sie napisac w c szybiej (trzecia na pewno;))
    zwlaszcza na konkretny procek, ale wymagac bedzie juz odrobiny
    wysilku.

    > > Po trzecie. Wydajnosc matlaba to sprawa drugorzedna. 70% to
    > > niezly wynik.
    >
    > To inna sprawa z ktora sie zgadzam. Po prostu czesto mnie
    > zasypywano informacjami o super wydajnosci matlaba, a teraz
    > wiem ze wydajnosc raczej ma przecietna.

    Ja nadal uwazam, ze jesli pakiet numeryczny daje ten sam rzad
    wielkosci, to jest przyzwoity wynik.

    W miare mozliwosci (trzeba napisac) zrob to porownanie przy mnozeniu
    dwuch macierzy 1000x1000. Roznica powinna sie znacznie zmniejszyc.

    Przy okazji:

    Zrobilem tez prosty test. Macierz 1000x1000 mnoze przez
    256 wektorow, ale na rozne sposoby. Mnoze 2^j razy paczki
    po 256/2^j wektorow.

    a=rand(1000);
    t=[];
    for j=8:-1:2,
    v=rand(2^(8-j),1000);
    tic;
    for k=1:2^j,
    v*a;
    end;
    t=[t;toc];
    end;

    Wyniki:

    petli wektorow w pakiecie czas
    256 1 3.6121
    128 2 2.2496
    64 4 1.3139
    32 8 0.80334
    16 16 0.65687
    8 32 0.53299
    4 64 0.5166

    Za kazdym razem mnozylismy tyle samo wektorow.
    Sredni czas na wektor dosc mocno spadal, jesli robilismy
    to na raz. Przyszpieszylismy szesciokrotnie!
    Teraz zaczynam sie dziwic, dlaczego Twoj program
    byl tylko niecale dwa raza szybszy (jemu wszytko jedno
    czy mnozymy po koleji, czy hurtem).


    pozdrawiam
    bartekltg


  • 18. Data: 2010-01-19 02:19:49
    Temat: Re: matlab taki wydajny?
    Od: bartekltg <b...@g...com>

    On 18 Sty, 23:08, "Wiktor S." <wswiktor&poczta,f...@no.spam> wrote:
    > >> Mnie zastanawia, jakie sa zastosowania, w których sie faktycznie
    > >> OPLACA wybulic TAKI majatek na Matlaba... bo jakies chyba sa, skoro
    > >> program zyje?
    > > Matlab ma pierdyliard funkcji, sporo zastosowań się znajdzie :)
    >
    > Ale nie za fafdziesiąt tysięcy... no chyba że piracimy, wtedy tak.

    A moze uzyc dosc czestego tu argumentu z watków
    'czemu nikt nie pisze wydfajengo oprogramowania'

    Mamy jajoglowego. Jego praca tez cos kosztuje.
    Lepiej, aby marnowal czas babrzac sie w kodowanie
    po raz n-ty w skali swiata algorytmu kogostam-kogostam,
    wynajac programiste*), czy kupic mu narzedzie, ktore
    jest znacznie prostrze (nie mowie prostrze, ale jajoglowy
    to sie nauczy) a zaoszczedzi czas na grzebanie sie
    nie tam gdzie trzeba.

    *) jesli bawimy sie w symulowanie, modelowanie etc
    na odpowiednim pozioime, to i oni beda konieczni,
    ale na etapie posrednim bardziej przydaje sie ktos
    obaznany z numeryka, a i wtedy ma raczej myslec
    nad algorytmami a nie bawic sie w kodowanie.

    pozdrawiam
    bartekltg


  • 19. Data: 2010-01-19 06:15:15
    Temat: Re: matlab taki wydajny?
    Od: Mariusz Marszałkowski <m...@g...com>

    On 19 Sty, 02:52, bartekltg <b...@g...com> wrote:
    > On 18 Sty, 20:26, Mariusz Marszałkowski <m...@g...com> wrote:
    >
    > > Nie rozumie, a co ja porównałem jak nie mnożenie macierzy?
    >
    > Porownales wektor * macierz. Ja zastanawialem sie nad porownaniem
    > mnozenia 2 macierzy kwadratowych (i nieco wiekszych niz 1000).

    Nie wiem czy się skuszę (mam masę innych rzeczy do testowana) na
    taki test, ale może... Nie znam tego algorytmu który ma mniejszą
    złożoność niż N^3. Obecnie jakie jest dokładne teoretyczne
    ograniczenie?
    Może jakbym miał przystępnie opisany ten algorytm to bym napisał w
    gołym C.
    Zapodajcie linka do dobrego algorytmu, może spróbuję.

    > > Napisałem wydajniej to co opisałem: mnożenie macierzy o
    > > rozmiarze Nx1 przez macierz MxN. Super wydajny pakiet powinien
    > > mieć specjalną implementację do takich macierzy.
    >
    > A nie jest to wydajne? Masz czas tego samego rzedu co w jezyku
    > kompilowalnym (i to skompilowanem pod swoj system i procek!).

    Zależy jak oceniać. Słyszałem opinie z których wynikało że
    matlab to wszystko robi z 50 razy szybciej. W świetle tamtych
    opinii wypadł śmiesznie, i głównie to chciałem sprawdzić. A
    czy jest 2 razy szybszy czy 2 razy wolniejszy to osobiście
    zgadzam się że nie powód do oceniania pakietu. Chciałem się
    tylko upewnić czy nie jest 50 razy lepszy :)

    > Chcesz z maksymalna moca swojego komputera robic ceizkie
    > obliczenia gdzie te 30% jest istotne.. chyba bedzie trzeba
    > zatrudnic programiste. Albo doktoranta:)

    Przy jednym z moich projektów miesięczny rachunek za energię
    na komputery liczące to około 1000zł. Dużo nie brakuje aby
    starczyło na wypłatę dla nastepnego programisty...

    > A skad te glosy ze jest super wydajne? Moze od ludzi,
    > ktorzy robili to w Ja.. jakims podejrzanym jezyku skryptowym
    > bez uzycia bilioteki. Albo od ludzi, ktorym mnozenie macierzy
    > pisal ow doktorant:)
    Właśnie od różnych ludzi i z różnych środowisk, w
    końcu mnie sprowokowali.

    > BTW, rozumeim, ze pusciels oba parokrotnie i porownales
    > najlepszy z najlepszym.
    Tak. Właściwie mój brat jeszcze zaczął kompilować projekt w
    gcc z różnymi opcjami aby jeszcze przyspieszyć, ale już
    nic nie pomagało.

    > Moze rzeczywiscie pisali mnozenie macierzy w javie;)
    Sadze ze w ogole nie pisali i w ogole nie porownywali czasow,
    tylko ulegli marketingowi matlaba.

    > A jestes pewien, ze niewielkim nakladem pracy zbudujesz dobry
    > algorytm numeryczny. Wydajne PCG dla macierzy rzadkich,
    > roznego rodzaju rozklady, czy uniwersalna szukaczke minimow.
    Niewielkim to niemozliwe, no chyba ze znam algorytm i juz
    kiedys go implementowalem.

    > Podejrzewam, ze trzeba mu kazac (byc moze sa to osobne funkcje).
    > I miec wersje (toolboxa?) pozwalajaca na to.
    Nie wiem, mozliwe.

    > > > Skontaktuj sie z nimi i zapytaj o podiane bibliotek na superprocek.
    >
    > > Nie chce mi sie, pokazalem ze na najprostszym przykladzie radzi
    > > sobie gorzej, wiec dlaczego mam dawac waire ze na zaawansowanych
    > > procedurach radzi sobie lepiej?
    >
    > Szczerze mowiac, wybrales zagadneinie nad ktorym srednio sie
    > pochylali. Patrz koniec postu.
    Ale mogil sie postarac a wrecz powinni. Wystarczy rozpoznac
    ze mnozymy wektor przez macierz i dac goto do wyspecjalizowanej
    procedurki. Tak samo jesli mnozymy macierz [NxK] przez [KxM] dla
    M i N znacznie wiekszych niz K, to jakas wyspecjalizowana procedura
    wymnozylaby duzo szybciej niz ogolna.

    > A bardziej zaawansowane algorytmy to cos wiecej niz dwie/trzy petle.
    > Jak chesz naprawde porownac matlaba i swoj kod, zrob to
    > na czyms powazniejszym, LUP (wbudowana), znajdowanie
    > wektortow wlasnych (wbudowana, cholski i QZ) albo PCG (skrypt).
    > Pewnie da sie napisac w c szybiej (trzecia na pewno;))
    > zwlaszcza na konkretny procek, ale wymagac bedzie juz odrobiny
    > wysilku.
    Zgadza sie, nigdy temu nie zaprzeczalem.

    > Ja nadal uwazam, ze jesli pakiet numeryczny daje ten sam rzad
    > wielkosci, to jest przyzwoity wynik.
    Ja tez tak podejrzewam, ale teraz tez wiem ze nie ma
    implementacji 50 razy wydajniejszych.

    > W miare mozliwosci (trzeba napisac) zrob to porownanie przy mnozeniu
    > dwuch macierzy 1000x1000. Roznica powinna sie znacznie zmniejszyc.
    Nie obiecuje, ale sprobuje, tylko zapodajcie dobry opis algorytmu,
    nigdy
    nie implementowalem lepszego algorytmu mnozenia macierzy.

    >
    > Przy okazji:
    >
    > Zrobilem tez prosty test. Macierz 1000x1000 mnoze przez
    > 256 wektorow, ale na rozne sposoby. Mnoze 2^j razy paczki
    > po 256/2^j wektorow.
    >
    > a=rand(1000);
    > t=[];
    > for j=8:-1:2,
    >     v=rand(2^(8-j),1000);
    >     tic;
    >     for k=1:2^j,
    >                         v*a;
    >     end;
    >     t=[t;toc];
    > end;
    >
    > Wyniki:
    >
    > petli   wektorow w pakiecie     czas
    > 256         1       3.6121
    > 128         2       2.2496
    > 64           4       1.3139
    > 32           8       0.80334
    > 16          16      0.65687
    > 8            32      0.53299
    > 4            64      0.5166
    >
    > Za kazdym razem mnozylismy tyle samo wektorow.
    > Sredni czas na wektor dosc mocno spadal, jesli robilismy
    > to na raz. Przyszpieszylismy szesciokrotnie!
    > Teraz zaczynam sie dziwic, dlaczego Twoj program
    > byl tylko niecale dwa raza szybszy (jemu wszytko jedno
    > czy mnozymy po koleji, czy hurtem).

    Może mieć algorytm o lepszej zlozonosci niż N^3 i
    jego moc się nie ujawnia gdy mnozymy macierze
    podobne do wierszowych.

    Pozdrawiam serdecznie


  • 20. Data: 2010-01-19 07:40:17
    Temat: Re: matlab taki wydajny?
    Od: Maciej Pilichowski <P...@g...com>

    On Mon, 18 Jan 2010 23:08:18 +0100, "Wiktor S."
    <wswiktor&poczta,fm@no.spam> wrote:

    >> Matlab ma pierdyliard funkcji, sporo zastosowań się znajdzie :)
    >
    >Ale nie za fafdziesi?t tysięcy... no chyba że piracimy, wtedy tak.

    To zalezy ile pakietow sobie dokupisz. Matlab edu to koszt az 400
    zlotych bodajze. Bez przesady.

    milego dnia, hej

strony : 1 . [ 2 ] . 3 ... 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: