eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingna 4rech procesorachRe: na 4rech procesorach
  • Data: 2011-11-02 08:12:22
    Temat: Re: na 4rech procesorach
    Od: " " <f...@N...gazeta.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Wiktor S. <wswiktor&poczta,fm@no.spam> napisał(a):

    > > na 4rech procesorach mozna by zrobic 4
    > > wywolania
    > >
    > > renderImage4Procki(...)
    > > {
    > >
    > > renderImage(0, CLIENT_Y*0.0/4, CLIENT_X , CLIENT_Y*1.0/4);
    > > renderImage(0, CLIENT_Y*1.0/4, CLIENT_X , CLIENT_Y*1.0/4);
    > > renderImage(0, CLIENT_Y*2.0/4, CLIENT_X , CLIENT_Y*1.0/4);
    > > renderImage(0, CLIENT_Y*3.0/4, CLIENT_X , CLIENT_Y*1.0/4);
    > > }
    >
    > to pod warunkiem, że renderImage() uruchamia nowy wątek i od razu wychodzi,
    > bo jeśli nie, to nic to nie da...
    >
    > > jak zakonczyc funkcje dopiero gdy wszystkie watki skoncza,
    >
    > w winapi jest WaitForMultibleObjects() - trzeba mu podać tablicę uchwytów
    do
    > poszczególnych wątków.

    no to by bylo ok - wlasnie o cos takiego chodzi, czyli nic wiecej
    4 razy new_thread() zaqpisac uchwyty w tablicy i odpalic
    waitForMultipleObjects? czy jak mam 4 procesory to lpiej odpalic
    4 watki czy trzy (bo jeden ten glowny juz jest)?


    > można też w pętli for zrobić WaitForSingleObject() dla każdego wątku po
    > kolei. niezależnie od tego, w jakiej kolejności wątki będą kończyć pracę,
    > cała pętla się zakończy dopiero po wszystkich

    a co robi dokladnie to waitForSingleObject bo nie do konca
    zrozumialem ? zatrzymuje nadrzędny watek do momentu az konkretny child
    skonczy?


    > w różnych innych API funkcja czekająca na zakończenie wątku zwykle nazywa
    > się "join".
    >
    > > i jak zapewnic ze kazdy pojdzie na oddzielnym procesorze
    >
    > tego się nie robi, to zostawiamy systemowi operacyjnemu. bo w tym samym
    > czasie może pracować też inny program wielowątkowy, niech więc wątki się
    > rozłożą optymalnie względem rzeczywistego obciążenia CPU, a nie tak jak nam
    > się wydaje.

    wlasnie wczoraj czytalem na stronce agnera foga ze np pewne programy
    (tam bylo glownie wymienione jedno engine szachowe 'rybka' o iloe pamietam
    ale dotyczy to raczej wiekszej ilosci programow) dzialaja wolniej
    jesli uruchomic je w hiperthreadingu, (wolniej niz normalnie), natomiast
    jesli poprzypisywac watki odpowiednio do logicznych procesorow, dzialaja
    szybciej niz normalnie, tj od szczegolow tego przypisania 'z reki'
    zalezy czy program bedzie dzialal szybciej (niz bez HT) czy nawet wolniej;
    ale ze system nie pozwala za bardzo tego robic (nie ma api) i ze sam
    przydziela niedobrze (nawet w najnowszym windows7); i tak wogole to
    agner fog sklania sie do wniosku HT najpewniej jest pomyslem niewartym
    zachodu - za to wychwalil architekture Sandy Bridge





    >
    > > (ew jak sprawdzic ile procesorow jest do dyspozycji)
    >
    > GetSystemInfo() i wartość dwNumberOfProcessors w zwracanej strukturze.
    >
    >


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

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: