eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › jak napisać szybki program
Ilość wypowiedzi w tym wątku: 106

  • 101. Data: 2009-05-24 00:06:35
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Sat, 23 May 2009 14:59:51 -0700 (PDT), Maciej Sobczak
    <s...@g...com> wrote:

    >On 20 Maj, 14:32, A.L. <a...@a...com> wrote:
    >
    >> >Czyli cały czas mówimy o użyciu współbieżności w celu lepszego
    >> >wykorzystania zasobów sprzętowych. Powtórzę: to nie jest wyłączna
    >> >cecha AIO. Współbieżność jest narzędziem bardziej ogólnym.
    >>
    >> .. i uzycie jej nie gwarantuje automatycznie poprawienia sprawnosci...
    >>
    >> http://www.ddj.com/go-parallel/article/showArticle.j
    html?articleID=21...
    >
    >Co to ma do obliczeń wykonywanych równolegle z I/O?

    Zalezy od Panskiej interpretacji tekstu

    A.L.


  • 102. Data: 2009-05-28 19:32:00
    Temat: Re: jak napisać szybki program
    Od: "Mariusz Marszałkowski" <b...@W...gazeta.pl>

    > >>Dana jest zmienna
    > >>
    > >>int var = 0;
    > >>
    > >>dalej użyta jako licznik w pętli.
    > >>W celu ziększenia wartości var o 1 mamy kilka możliwości,
    > >>rozpatrzmy dwie z nich: ++var lub var++.
    > >>
    > >>Którą wersję Kolega by wybrał i jak uzasadniłby wybór?
    > >>
    > >
    > > Nie da sie uzasadznic wyboru nie znajac kontekstu w ktorym ta operacja
    > > jest uzyta.
    >
    > Ano właśnie. Ja nie podałem szczegółów kontekstów a mimo to Kolega
    > potrafił wyrazić krytykę, rozumiem że uzasadnioną i o to uzasadnienie
    > prosiłem.
    > Przyjmuję, że "nawyki eliminuja myslenie" jest tym uzasadnieniem. Zgadzam
    > sie z nim.

    Dla mnie też było oczywiste, że chodzi o inkrementację zmiennej typu
    podstawowego. Szczegóły były podane niejawnie, gdyż optymalizowanie
    zapisu kompletnie nie idzie w parze z żadnymi wysokopoziomowymi
    konstrukcjami, np. z przeciążeniem operatorów :)

    Jak uzasadnić użycie ++var zamiast var++ w kontekście optymalizowania
    zapisu? Taka operacja dla typu podstawowego to niuans i można by
    pominąć jej wpływ na wydajność kodu wynikowego. Jednak czasami użycie
    var++ zamiast ++var umożliwia inną konstrukcję pozostałych instrukcji,
    więc chodzi o coś więcej niż var++ vs ++var. Jak uzasadnić użycie
    jednego zapisu wraz z var++ a nie drugiego z ++var? Otóż skompilować i
    zrobić test szybkości. Następnie wybieramy ten który jest "szybszy".
    W cudzysłowie dlatego, że po przeniesieniu na inny procesor, albo po
    skompilowaniu innym kompilatorem wynik może być inny :) No ale taki
    bardzo ograniczony sens ma optymalizowanie zapisu zamiast
    optymalizowania algorytmów :)

    Pozdrawiam


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 103. Data: 2009-05-30 05:15:46
    Temat: Re: jak napisać szybki program
    Od: "Mariusz Marszałkowski" <b...@W...gazeta.pl>

    A.L. <a...@a...com> napisał(a):
    > Podsumowujac: mniej koku i wielokrotne uzycie kodu spowalnei program a
    > nei przyspiesza"

    Nie zawsze to przyspieszy, gdyż wykonując w pętli ten sam kod zwiększa
    się szansę na to, że kod jest w pamięci podręcznej i dlatego wykona się
    szybciej pomimo dodatkowych instrukcji na pętle i warunek pętli.

    Pozdrawiam



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 104. Data: 2009-06-07 05:20:32
    Temat: Re: jak napisać szybki program
    Od: "Remek" <w...@n...pl>

    Użytkownik "gosmo" napisał:

    > to się okazało, że mój kod był wolniejszy niż ten napisany w języku
    > wysokiego poziomu.

    Co w tym dziwnego, skoro sam piszesz, że nie masz pojęcia o assemblerze?
    Dziwne jest raczej to, że w ogóle działało. Natomiast twierdzenie, że jakiś
    optymalizator zrobi coś lepiej niż wprawny programista w asm jest delikatnie
    mówiąc bajaniem laika. Zresztą co tu miałby do roboty optymalizator.
    Optymalizować trzeba sam algorytm, a nie program.

    Remek



  • 105. Data: 2009-06-07 14:40:12
    Temat: Re: jak napisać szybki program
    Od: A.L. <a...@a...com>

    On Sun, 7 Jun 2009 07:20:32 +0200, "Remek" <w...@n...pl>
    wrote:

    >U?ytkownik "gosmo" napisa?:
    >
    >> to si? okaza?o, ?e mój kod by? wolniejszy ni? ten napisany w j?zyku
    >> wysokiego poziomu.
    >
    >Co w tym dziwnego, skoro sam piszesz, ?e nie masz poj?cia o assemblerze?
    >Dziwne jest raczej to, ?e w ogóle dzia?a?o. Natomiast twierdzenie, ?e jaki?
    >optymalizator zrobi co? lepiej ni? wprawny programista w asm jest delikatnie
    >mówi?c bajaniem laika. Zreszt? co tu mia?by do roboty optymalizator.
    >Optymalizowa? trzeba sam algorytm, a nie program.
    >
    >Remek
    >

    Pieprzysz, jak, przepraszam za wyrazenie, potluczony

    A.L.


  • 106. Data: 2009-06-07 17:35:16
    Temat: Re: jak napisać szybki program
    Od: Mirosław Habarta <M...@p...pl>

    Remek pisze:
    > Użytkownik "gosmo" napisał:
    >
    >> to się okazało, że mój kod był wolniejszy niż ten napisany w języku
    >> wysokiego poziomu.
    >
    > Co w tym dziwnego, skoro sam piszesz, że nie masz pojęcia o assemblerze?
    > Dziwne jest raczej to, że w ogóle działało. Natomiast twierdzenie, że jakiś
    > optymalizator zrobi coś lepiej niż wprawny programista w asm jest delikatnie
    > mówiąc bajaniem laika. Zresztą co tu miałby do roboty optymalizator.
    > Optymalizować trzeba sam algorytm, a nie program.
    >
    > Remek
    >
    Wydaje mi się, że aby napisać szybki program w asm nie wystarczy dobrze znać asm-a.
    Trzeba przede wszystkim znać procesor na który się pisze. A obecne procesory są
    "dość" skomplikowane. To nie jest chyba tak, że mamy pamięć i kilka rejestrów, choć
    z pewnego punktu widzenia tak to może wyglądać. Nie wszystkie instrukcje wykonują się
    równie szybko, a część operacji można chyba zrównoleglać (mówię o pracy na tym samym
    rdzeniu). Kideyś miałem taką książeczkę "procesry x486" czy jakoś tak. Tam były
    opisane wszystkie instrukcje i ile taktów procesora potrzeba na ich wykonanie.
    To jest chyba kluczowa sprawa. Ale pewnie dla każdej następnej generacji procesorów
    te dane się zmieniają. W Pentium4 były już jakieś potoki wykonawcze
    (hyper-threading),
    i być może niektóre operacje można było zrównoleglać, ale pod pewnymi warunkami,
    itp..
    A... bym zapomniał - jeszcze cache - ile to tam tych poziomów było ?

    Zadanie napisania optymalnego programu w asm dla konkretnego procesora to chyba
    jest pewien problem optymalizacyjny, z ogromną ilością zmiennych. Szansa, że człowiek
    potrafi to lepiej rozwiązać, niż wyspecjalizowany program jest chyba niewielka.

    Oczywiście, to są moje gdybania, jeśli czyta to ktoś znający się na rzeczy, to niech
    się do tego odniesie.


    M.H.

strony : 1 ... 10 . [ 11 ]


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: