eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingjak napisać szybki program › Re: jak napisać szybki program
  • Data: 2009-05-19 18:20:43
    Temat: Re: jak napisać szybki program
    Od: Michoo <m...@v...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Jędrzej Dudkiewicz pisze:
    > Maciej Sobczak wrote:
    >> On 19 Maj, 10:32, Jędrzej Dudkiewicz <j...@g...com>
    >> wrote:
    >>
    >>>> Czyli mówimy *w ogólności* o wykorzystaniu *współbieżności* w celu
    >>>> lepszego wykorzystania zasobów.
    >>> No dobra, ale sprawdź jeszcze raz odpowiedź Wojtka Muły, podał
    >>> informację o AIO w momencie, kiedy było wiadomo, że:
    >>> a) same obliczenia długo trwają
    >>> b) dużo czasu zajmuje czekanie na dane.
    >>>
    >>> Wniosek: jest szansa, że AIO pomoże.
    >>>
    >>> W tym momencie odpowiedź "możesz użyć współbieżności" jest mniej pomocne
    >>> od konkretniejszego rozwiązania, czyli podania hasła o
    >>> asynchronicznym I/O.
    >>
    >> Wątki będą gorsze?
    >
    > Do AIO? Oczywiście, że będą gorsze. AIO jako usługa kernela jest szybsza
    > niż kolejny wątek w userlandzie. Nie, nie mam danych statystycznych.
    Mówimy chyba o wątkach (kernel) a nie "włóknach" z userlandu?

    "Zwykłe" io też jest usługą kernela (np. wywołanie DMA)

    Ja widzę te 2 przedstawione możliwości tak:
    1. Mamy wątek, który asynchronicznie odbiera dane i po "uzbieraniu"
    odpowiedniej porcji je przetwarza. Na jednym procesorze mamy
    wykorzystanie go na ~100%, przy 2 procesorach (b, częste dzisiaj) nadal
    mamy wykorzystanie jednego procesora .
    2. Mamy 2 wątki w jeden "wisi" na i/o (a wiec nie jest nawet brany pod
    uwagę przez sheduler). Drugi przetwarza dane. Na jednoprocesorowej
    maszynie wykorzystają max ~99% (1% na zmiany kontekstu przy
    synchronicznym i/o to i tak za dużo). Na 2 wykorzystają max 2*100%.

    >
    >> Nie znamy kontekstu,
    >
    > Ależ oczywiście, że znamy, w pierwszym poście OP napisał co i jak, pisze
    > od początku, dużo danych, dużo obliczeń itd, itp. Odpowiedź, że może
    > pomóc AIO jest jak najbardziej na miejscu, mi tylko o to chodzi!
    Imo wielowątkowość może pomóc. Samo AIO nie da prawie nic - zaoszczędzi
    jedynie czas transferu z bufora do pamięci w porównaniu do 1 wątku z
    synchronicznym io+poll, w przypadku więcej wątków czas zmiany kontekstu.
    Na dzisiejszym sprzęcie - 2+ rdzenie - aio bez wątków będzie wolniejsze
    niż operacje synchroniczne+wątki.

    --
    Pozdrawiam
    Michoo

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: