-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsgate.m10r2.
onet.pl!niusy.onet.pl
From: "fir" <p...@p...onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: [mt] few points (kilka uwag)
Date: Sun, 04 Sep 2011 09:50:49 +0200
Organization: Onet.pl
Lines: 159
Sender: n...@n...onet.pl
Message-ID: <5...@n...onet.pl>
References: <5...@n...onet.pl>
NNTP-Posting-Host: newsgate.m10r2.onet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
X-Trace: newsgate.onet.pl 1315122649 330 213.180.150.14 (4 Sep 2011 07:50:49 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Sun, 4 Sep 2011 07:50:49 +0000 (UTC)
Content-Disposition: inline
X-Mailer: http://niusy.onet.pl
X-Forwarded-For: 87.96.44.166, 10.174.28.55
X-User-Agent: Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.2.15 Version/10.00
Xref: news-archive.icm.edu.pl pl.comp.programming:192222
[ ukryj nagłówki ]> > troche pozastanawialem sie nad mt kontynuujac
> > to co juz sobie ustalilem pare czy parenascie miesiecy
> > temu (mam nadzieje ze rozwazania nie zawieraja bledow)
> >
> > wyglada mi na to ze o ile bezkolizyjnosc mozna by
> > implementowac tylko na rozdrobnionym poziomie
> > dostepu do poszczegolnych floatow czy intow to
> > nie jest to zbyt realistyczne bo raczej nie wystarczy
> >
> > potrzebne sa bitowe klucze (loki) zamykajace na raz
> > spojnie cale struktury; mozna by probowac pokusic sie
> > by lokowac wrecz 'sprzetowo' (cos jak odpowiednik
> > hardware'owych przerwan) wszystkie struktury i
> > tablice hurtem
> > (co byc moze wogole nie wymagaloby ingerencji
> > programisty w sensie pisania jakiegokolwiek kodu -
> > acz musialby miec swiadomosc ze watki beda mu
> > sprzetowo zwisaly przy konkurencyjnym dostepie
> > do struktur i tablic
> > - nie wiem dokladnie co by z tego wyszlo ale
> > pojawily by sie wydaje obecne problemy z
> > zakleszczeniami i race'ami, byc moze jednek udaloby sie
> > je rozwiazac na tym sprzetowym poziomie a moze nie
> > - ten model bylby podobny chyba do obecnego sposobu
> > zakladania lokow (znanego mi osobiscie glownie
> > z przeczytania 'pthreads primer' bo sam nie
> > pisalem prawie nic wielowatkowych programow) -
> > z tym ze nie byloby kodu bo loki zakladalyby sie
> > automatycznie
>
> problemem jest tez to ze cala duza tablica lokowala by
> sie hurtem (podzial na stale kawalki ktore mozna
> by polokowac osobno tez byc moze nie rozwiazuje problemu)
>
>
> ogolnie wydaje mi sie ze zakladanie bitowych kluczykow
> wybranym kawalkom danych jest byc moze bardziej wygodnym
> rozwiazaniem, np mozna pomyslec o lokowaniu danych
> calego modulu - to by sklanialo do dzielania danych
> na moduly w zwiazku z potrzebami wielowatkowosci
> i/ale trudno mi powiedziec czy byloby to moze dobrze
> czy zle
>
> jeszcze jedna uwaga: ten bitowy kluczyk lokujacy jakas
> strukture danych nie powinien byc raczej z musu blokiem
> (na ktorym zwisa odczyt czy przypisnie) czesto powinien
> on byc raczej informacja czy dane sa zalokowane czy nie
> tak by mozna to bylo podlaczyc do normalnego watkowego
> ifa, druga rzecz ten bitowy kluczyk powinien raczej
> dawac oddzielnie ijnformacje o tym czy dane sa przez
> kogos obcego obecnie zajete tylko do read tylko do write
> czy do obu
>
> trzebaby sie zastanowic teraz jak ew wygladaloby
> programowanie przy takim ukladzie i jak by bylo
>
>
w sumie jak zastanawiam sie jak ew mozna by zrobic/moglo by wygladac
odpalenie liczenia tablicy 1000x1000 (np zbioru mandelbrota) na tysiacu
watkow to mz mogloby to wygladac np tak - przy uzyciu normalnych srodkow
potrzebna jest tylko atomowa funkcja 'acquire' do testu czy flaga jest wolna
i jej ustawienia i funkcja 'newThread' do odpalenia nowego watku
typedef char lock;
tab [1000][1000];
lock tab_column_lock[1000];
void calculateColumn(int k)
{
//.... operacje na tab[k][...]
}
void main()
{
for(int i=0; i<1000;i++)
{
if(acquire(tab_column_lock[i]))
{
newThread( calculateColumn(i) );
}
}
}
chyba daloby sie to zrobic normalnymi srodkami i 'skalowaloby' sie to
na n procesorow - np dla dziesieciu procesorow na kazdym mw odpaliloby
sie po sto watkow po czym w miare wygasania tych watkow moc
dzielilaby sie na pozostale
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Następne wpisy z tego wątku
- 04.09.11 08:31 p...@p...onet.pl
- 04.09.11 09:13 p...@p...onet.pl
Najnowsze wątki z tej grupy
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
Najnowsze wątki
- 2025-01-27 OT musk
- 2025-01-27 Bydgoszcz => Specjalista ds. Sprzedaży (transport drogowy) <=
- 2025-01-27 Warszawa => Java Developer <=
- 2025-01-27 Warszawa => Data Engineer (Tech Lead) <=
- 2025-01-27 Warszawa => Programista Full Stack (.Net Core) <=
- 2025-01-27 Kto ma PRAWNĄ rację? poseł KO mec. R. Giertych v. mec. B. Lewandowski
- 2025-01-27 Gliwice => IT Expert (Network Systems area) <=
- 2025-01-27 Koszyk okrągły, walec 3x AA, na duże paluszki R6
- 2025-01-27 Warszawa => QA Engineer <=
- 2025-01-27 Warszawa => Analityk Biznesowo-Systemowy <=
- 2025-01-27 Mińsk Mazowiecki => Area Sales Manager OZE <=
- 2025-01-27 Bieruń => Team Lead / Tribe Lead FrontEnd <=
- 2025-01-27 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2025-01-27 Kraków => User Experience Designer <=
- 2025-01-27 Kraków => iOS Developer (Swift experience) <=