eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingOpenMP do zliczania węzłów drzewaOpenMP do zliczania węzłów drzewa
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!newsfeed00.su
    l.t-online.de!t-online.de!border4.nntp.dca.giganews.com!border2.nntp.dca.gigane
    ws.com!nntp.giganews.com!postnews.google.com!z22g2000pri.googlegroups.com!not-f
    or-mail
    From: Mariusz Marszałkowski <m...@g...com>
    Newsgroups: pl.comp.programming
    Subject: OpenMP do zliczania węzłów drzewa
    Date: Mon, 15 Nov 2010 08:50:45 -0800 (PST)
    Organization: http://groups.google.com
    Lines: 39
    Message-ID: <9...@z...googlegroups.com>
    NNTP-Posting-Host: 89.229.34.123
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: quoted-printable
    X-Trace: posting.google.com 1289839845 31801 127.0.0.1 (15 Nov 2010 16:50:45 GMT)
    X-Complaints-To: g...@g...com
    NNTP-Posting-Date: Mon, 15 Nov 2010 16:50:45 +0000 (UTC)
    Complaints-To: g...@g...com
    Injection-Info: z22g2000pri.googlegroups.com; posting-host=89.229.34.123;
    posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
    User-Agent: G2/1.0
    X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.12)
    Gecko/20101026 Firefox/3.6.12,gzip(gfe)
    Xref: news-archive.icm.edu.pl pl.comp.programming:187332
    [ ukryj nagłówki ]

    Witam

    Jest sobie rekurencyjna procedura która zlicza węzły drzewa:

    int zliczaj( Object *obj , depht ) {
    if( depht == 0 )
    return 1;
    sum = 1;
    for( int i=0 ; i<ilosc_potomkow( obj ) ; i++ ) {
    wykonaj_instrukcje( obj );
    sum += zliczaj( obj , depth-1 );
    cofnij_instrukcje( obj );
    }
    return sum;
    }

    Na platformach wieloprocesorowych aż się prosi żeby zrobić po prostu
    tak:

    int zliczaj( Object *obj , depht ) {
    if( depht == 0 )
    return 1;
    sum = 1;
    #pragma omp parallel for private(obj) reduction(+:sum)
    for( int i=0 ; i<ilosc_potomkow( obj ) ; i++ ) {
    wykonaj_instrukcje( obj );
    sum += zliczaj( obj , depth-1 );
    cofnij_instrukcje( obj );
    }
    return sum;
    }

    Ale nie działa, kompilator wywala że zmienna obj jest użyta bez
    zainicjowania, a
    program się zawiesza. Co robię źle?

    Pozdrawiam

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: