🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #267738

Re: Ciemna strona C++

#267738
From: Maciej Piechotka
Date: Thu, 15 Nov 2007 17:58
60 lines
4009 bytes
On Thu, 15 Nov 2007 17:17:00 +0100, H5N1 wrote:

> Sebastian Kaliszewski napisał(a):
> 
>> Sporo do myślenia dała mi
>> kiedyś wypowiedź gościa z jakiegoś brytyjskiego centrum
>> superkompuetrowego, który stwoerdził, że przez 10 lat pracy nie widział
>> ani jednego programu wielowątkowego. Równoległe rozwiązania
>> wieloprocesowe, gdzie komunikacja między kontekstami przetwarzania jest
>> ściśle wydzielona i gdzie jest zarządzanie całością jest sensownie
>> realizowalne, są po prostu szybsze (i to o kilkadziesiąt procent).
> Super, jeśli możesz zdefinować i odpalić statyczną pulę procesów,
> najlepiej każdy na osobnym procesorze. Ale jeśli musisz je opalać np. na
> żądanie klientów to okazuje się, że koszt utworzenia nowego procesu jest
> masakryczny. A jak liczba równoległych zadań idzie w setki, albo tysiące
> to z kosztami przełączania kontekstu też trzeba się liczyć.

Nie jest to może najlepszy test (za prosty program do odpalania) ale Linux 
na P M 1.5 GHz (1 rdzeń), 512 MiB Ramu (większość zajęta przez Gnome ;) ) 
potrafi odpalić ich ponad 100000 na sekundę (wynik podał 13107 ale 
zapomniałem funkcji podającej dokładny czas) - taki prosty benchmark.

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>

#define PER_LOOP 0xffff

int main() {
        time_t begin, end;
        int status;
        while(1) {
                time(&begin);
                for(int i = PER_LOOP; i; --i) {
                        switch(fork()) {
                        case -1:
                                fprintf(stderr, "Error on creating child
\n");
                                exit(1);
                        case 0:
                                exit(0);
                        default:
                                wait(&status); //Inaczej za szybko tworzy
                        }
                }
                time(&end);
                time_t diff = end - begin;
                fprintf(stdout, "%d in %d -> %f pps\n",
                        PER_LOOP, diff, ((double)PER_LOOP)/(diff));
        }
}

Pozdrawiam
-- 
I've probably left my head... somewhere. Please wait untill I find it.
Homepage (pl_PL): http://uzytkownik.jogger.pl/
(GNU/)Linux User: #425935 (see http://counter.li.org/)
Technical Details
Message-ID: <uudu05-rpp.ln1@router.piechotka.com.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!nnrpd.internetia.pl
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhag70$6kk$1@atlantis.news.tpi.pl> <fhag1b$9or$3@news.vectranet.pl> <1194912011.15035.13.camel@qrnik> <1194962417.690643.172410@v3g2000hsg.googlegroups.com> <1195078411.24656.6.camel@qrnik> <fhhlii$cg1$1@bozon2.softax.pl> <fhhrds$lld$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.internetia.pl!nnrpd.internetia.pl
From: Maciej Piechotka <uzytkownik2@gmail.com>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Thu, 15 Nov 2007 18:58:22 +0100
Organization: Netia S.A.
Lines: 61
Message-ID: <uudu05-rpp.ln1@router.piechotka.com.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhag70$6kk$1@atlantis.news.tpi.pl> <fhag1b$9or$3@news.vectranet.pl> <1194912011.15035.13.camel@qrnik> <1194962417.690643.172410@v3g2000hsg.googlegroups.com> <1195078411.24656.6.camel@qrnik> <fhhlii$cg1$1@bozon2.softax.pl> <fhhrds$lld$1@inews.gazeta.pl>
NNTP-Posting-Host: 87-205-198-42.adsl.inetia.pl
Mime-Version: 1.0
X-Trace: mx1.internetia.pl 1195149864 28450 87.205.198.42 (15 Nov 2007 18:04:24 GMT)
X-Complaints-To: abuse@inetia.pl
NNTP-Posting-Date: Thu, 15 Nov 2007 18:04:24 +0000 (UTC)
X-Tech-Contact: usenet@internetia.pl
X-Orig-Path: router.piechotka.com.pl!news
User-Agent: Pan/0.132 (Waxed in Black)
X-Server-Info: http://www.internetia.pl/news/
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit