Aktualności:

Nasz kanał IRC - Porozmawiaj z nami.

Menu główne

Milkyway@home

Zaczęty przez Bober, 28 Sierpień 2007, 22:40

[PBT] Horpah

Cytat: TJM w 13 Grudzień 2008, 14:18
Ale wtedy jedna aplikacja zajmuje wszystkie rdzenie


takie coś byłoby bardzo przydatne ale raczej nie w milce a w jakichś projektach liczących próbkę bardzo długo np takich jak climateprediction.net

TJM

I niedługo takie aplikacje się pojawią, na razie BOINC jeszcze nie wspiera wielowątkowych aplikacji należycie. To już się pomału zmienia w klientach 6.x, docelowo aplikacja ma określać ile rdzeni chce użyć.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

sesef

#122
Cytat: mindc w 13 Grudzień 2008, 11:31
EDIT:
zapomniałem dopisać, wersja 11 kompilatora intel, wywala od razu aplikację... ma problemy jakieś ze stosem

Po kompilacji na 10.1 mam ten sam błąd co na 11, szkoda bo po kompilacji Intelem pewnie uzyskałoby się trochę sekund.

9.1 też nie działa :/, czego to może być wina bo już chyba nie kompilatora czy ja coś źle robię czy może Milky jest zwalone ??

TJM

Pokaż no jak błąd wygląda, bo tak to można tylko zgadywać.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

sesef

A sam błąd za dużo też nie mówi



Ten sam błąd mam na 11.0, 10.1, 9.1

TJM

Myślałem, że to błąd kompilacji, a to po prostu coś się sypie z samym Visualem albo kompilatorem. Skończył mi się niestety trial dla Intelowego kompilatora więc nawet nie dam rady spróbować co jest nie teges :/

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

sesef

#126
Jednak ta automatyczna optymalizacja w VS nie jest taka zła, poszukałem trochę w googlach próbowałem wielu rzeczy między innymi:

- optymalizacja liczenia sqrt (kod asemblerowy) [Okazało się wolniejsze niż optymalizacja kompilatora]
- działania na wektorach przy pomocy SSE2 [Wolniejsze od optymalizacji kompilatora]
I moim zdaniem najciekawsze: znalazłem funkcje napisaną w asemblerze licząca jednocześnie sinus i cosinus danego kąta. W Milky w wielu miejscach jednocześnie stosuje się sinus i cosinus tego samego kąta, więc optymalizacja jak znalazł. Co się okazało po skompilowaniu aplikacja wolniejsza o jakieś 20-25% widać kompilator lepiej sobie optymalizuje jak liczy sin i cos oddzielnie.

Miałem nadzieje, że dam radę zejść poniżej 1k sec na moim AMD-ku, ale chyba to się nie uda :/

Troll81

dla mnie to czarna magia :D

Pigu

kamrrraci nie poddawajcie się, budzicie moje wielkie uznanie

sesef

Ostatnia moja nadzieja na przyspieszenie... tablicowanie wyników.

mindc

Cytat: sesef w 14 Grudzień 2008, 13:35
Ostatnia moja nadzieja na przyspieszenie... tablicowanie wyników.

coś takiego robiłem w pierwszej optymalizacji, ale wszystkiego nie da wrzucić do tablic :(



sesef

#131
Cytat57949324    58122418     14 Dec 2008 21:38:06 UTC     15 Dec 2008 9:26:33 UTC     Over     Success     Done     1,043.30     4.08     31.30

Jeszcze nie cała minuta :)

Wyszedłem na 20 min do sklepu po mleko
Cytat57995377    58166291     15 Dec 2008 9:49:33 UTC     15 Dec 2008 10:08:34 UTC     Over     Success     Done     1,022.72     4.00     30.68

Trafiły się jakieś krótsze próbki do tego komp stał nie używany o magiczna granica 1000 sekund przełamana v1.22
Cytat58027059    58197388     15 Dec 2008 17:42:15 UTC     15 Dec 2008 18:01:28 UTC     Over     Success     Done     993.39     3.88     29.80
58026052    58196391    15 Dec 2008 17:26:59 UTC    15 Dec 2008 17:45:01 UTC    Over    Success    Done    991.95    3.88    29.76

v1.25
Cytat58108897    58277352     16 Dec 2008 14:43:41 UTC     16 Dec 2008 15:03:58 UTC     Over     Success     Done     988.28     3.86     29.65
58107855    58276348    16 Dec 2008 14:28:25 UTC    16 Dec 2008 14:46:47 UTC    Over    Success    Done    987.33    3.86    29.62

v1.28
Cytat58229336    58394497     17 Dec 2008 17:34:28 UTC     17 Dec 2008 18:13:00 UTC     Over     Success     Done     981.70     3.84     29.45

1.31
Cytat58431331    58591369     19 Dec 2008 17:18:51 UTC     19 Dec 2008 17:50:01 UTC     Over     Success     Done     937.80     4.00     28.13

AiDec

#132
Testuje aplikacje mindca i sesefa. Juz po pierwszych testach polecam!!!  :attack:

Aplikacja wystepuje w trzech wersjach: NOSSE, SSE1 i SSE2.

Testy zostaly przeprowadzone na: AMDX2 2.2GHz@2.43GHz, XP32SP3 (edycja wlasna), BM 6.4.5
- na kiludziesieciu probkach. Podane wyniki sa srednie, a rozrzut czasow probek i granted credit nie wiekszy niz 5%.

Czysta aplikacja: 2800s. co daje ok. 55pkt./h
Aplikacja NOSSE: 920s. co daje ok. 105pkt./h
Aplikacja SSE1: nie dziala! Skopala BM, skopala system!
Aplikacja SSE2: 960s. co daje ok. 100pkt./h

Jak widac, dla XP32 i prockow AMD w wersji x64 zalecana jest aplikacja NOSSE. Polecam jej uzywanie :). Niedlugo testy na Intelach.



@sesef: Prosze Cie o udostepnienie na 4um nowego pliku, z poprawionym plikiem app_info (ostatnia linijka - wiesz o co chodzi, a wlasciwie przedostatnia, bo ostatnia jest pusta - skasuj ja prosze) i wpisana DOMYSLNIE nazwa app NOSSE (for dummies ;) ).



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

sesef

Cytat: AiDec w 23 Grudzień 2008, 11:43
@sesef: Prosze Cie o udostepnienie na 4um nowego pliku, z poprawionym plikiem app_info (ostatnia linijka - wiesz o co chodzi, a wlasciwie przedostatnia, bo ostatnia jest pusta - skasuj ja prosze) i wpisana DOMYSLNIE nazwa app NOSSE (for dummies ;) ).

Jak Mindc nie będzie miał nic przeciwko temu to mogę udostępnić publicznie, jak na razie dostępne jedynie przez PW.

Pigu

nie dawajmy publicznie - zaraz konkurencja by zassała :attack:

AiDec

Cytat: sesef w 23 Grudzień 2008, 12:34
Cytat: AiDec w 23 Grudzień 2008, 11:43
@sesef: Prosze Cie o udostepnienie na 4um nowego pliku, z poprawionym plikiem app_info (ostatnia linijka - wiesz o co chodzi, a wlasciwie przedostatnia, bo ostatnia jest pusta - skasuj ja prosze) i wpisana DOMYSLNIE nazwa app NOSSE (for dummies ;) ).

Jak Mindc nie będzie miał nic przeciwko temu to mogę udostępnić publicznie, jak na razie dostępne jedynie przez PW.

Jasne :). Tylko nie zapomnij wprowadzic poprawek.


Cytat: Pigu w 23 Grudzień 2008, 12:45
nie dawajmy publicznie - zaraz konkurencja by zassała :attack:

No mosz racje kamracie  :attack:



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

mindc

ja jeszcze trochę powalczyłem
a z sezefem wymieniamy się pomysłami :)

Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz [EM64T Family 6 Model 15 Stepping 11] @3.0GHz winxp x64 + sse2
Cytat
58832338    58979222     23 Dec 2008 8:24:30 UTC     23 Dec 2008 9:50:56 UTC     Over    Success     Done    757.78     4.92     22.73
58832337    58979221    23 Dec 2008 8:24:30 UTC    23 Dec 2008 9:35:59 UTC    Over    Success    Done    779.13    5.06    23.37

AMD Athlon(tm) Processor LE-1600 [Family 15 Model 95 Stepping 3] @default linux2.4 x86 + sse2
Cytat
58833841    58980718     23 Dec 2008 8:43:35 UTC     23 Dec 2008 9:30:14 UTC     Over    Success     Done    846.11     1.65     25.38
58832561    58979445    23 Dec 2008 8:28:15 UTC    23 Dec 2008 8:48:13 UTC    Over    Success    Done    853.57    1.66    25.61

nie mam danych z C2D bo liczą obecnie POEM
jakby ktoś chciał binarkę pod linuxa -> PM


sesef

szkoda tylko, że roboty nie ma :/ no nic policzy się trochę Clean Energy :)

mindc

Cytat: sesef w 23 Grudzień 2008, 21:15
szkoda tylko, że roboty nie ma :/

pewnie będą odpalać validatora, więc "czyszczą" serwer....

Cytat: sesef w 23 Grudzień 2008, 21:15
(...) policzy się trochę Clean Energy :)

i trochę 3x+1 :)


mindc

wracając do głównego wątku...

przypominam wszystkim, że cały czas jest ograniczenie na Milce do 2500-2600 pkt na dobę na CPU i nie można tego przeskoczyć...

zwracam uwagę także na to, że teraz punktowanie za WU zostało obcięte z 140pkt i 260pkt na ok. 40pkt
i ilość danych do przemielenia w jednym WU została podwojona w stosunku do wersji 1.22...

porównując czasy liczenia i wielkość próbek, nasza optymalizacja działa porównywalnie tak szybko jak ta od Milksop, ale... patrz wyżej

pozostaje jeszcze aplikacja Crunch3r'a... według mnie, coś jest zakombinowane z odrzucaniem wyników pośrednich, niemających wpływu na wynik końcowy, co widać po bardzo zmiennych czasach liczenia dla próbek...


sesef

Cytat: mindc w 23 Grudzień 2008, 23:08
pewnie będą odpalać validatora, więc "czyszczą" serwer....

No to będzie chwila prawdy tego pow-a -0,000000000000002


Co do Crunch3r-a można prosić o link do jego kompa, chciałbym sobie zobaczyć te jego czasy przeliczeń. A co do jego aplikacji, może część obliczeń tak jak piszesz pomija, może w niektórych przypadkach da się jeszcze więcej stablicować tylko akurat te testowe parametry tego nie pokazują.

Co do samej aplikacji dziwi mnie trochę, że admini wypuszczają tak wolne liczydełko skoro bez większej wiedzy można progsa przyspieszyć 2x-3x

Pigu

Cytat: mindc w 23 Grudzień 2008, 23:25
przypominam wszystkim, że cały czas jest ograniczenie na Milce do 2500-2600 pkt na dobę na CPU i nie można tego przeskoczyć...

zwracam uwagę także na to, że teraz punktowanie za WU zostało obcięte z 140pkt i 260pkt na ok. 40pkt
i ilość danych do przemielenia w jednym WU została podwojona w stosunku do wersji 1.22...

jesteśmy w stanie na jajeczku q6600 w okolicach 2,8-3,0 macać tę granicę?

TJM

Cytat: mindc w 23 Grudzień 2008, 23:25
przypominam wszystkim, że cały czas jest ograniczenie na Milce do 2500-2600 pkt na dobę na CPU i nie można tego przeskoczyć...

Przeskoczyć bardzo łatwo, wystarczy użyć FreeHALowych managerów zmieniających host cpid.

W razie jakiejś pilniejszej sprawy - jestem często dostępny na kanale IRC B@P, na forum czasami zapominam zajrzeć lub nie mam czasu.

mindc

Cytat: TJM w 24 Grudzień 2008, 00:06
Cytat: mindc w 23 Grudzień 2008, 23:25
przypominam wszystkim, że cały czas jest ograniczenie na Milce do 2500-2600 pkt na dobę na CPU i nie można tego przeskoczyć...
Przeskoczyć bardzo łatwo, wystarczy użyć FreeHALowych managerów zmieniających host cpid.

hmmm... nie chodzi tu o hosta tylko o CPU, czyli z q6600 można wyciągnąć 10000 pkt na dobę i tyle.
w poprzedniej optymalce i ze starymi zasadami punktowania, na wszystkich kompach jakie liczyły Milke, wyciągałem właśnie te 2500-2600 pkt na dobę
i nie ważne jaki to był sprzęt, czy q6600 czy Athlon XP czy Pentium III 500MHz

ale...
dla zaspokojenia własnej ciekawości i sprawdzenia jak to jest naprawdę, czyli czy zależy to od ilości CPU czy od ilości pkt dla jednego hosta,
zrobię testy jak znowu pojawią się próbki, uruchomię normalnie 4 WU na q6600 i na wirtualce 2 WU jednocześnie i zobaczymy jak będzie punktować....



mindc

Cytat: sesef w 23 Grudzień 2008, 23:44
Cytat: mindc w 23 Grudzień 2008, 23:08
pewnie będą odpalać validatora, więc "czyszczą" serwer....

No to będzie chwila prawdy tego pow-a -0,000000000000002

Co do Crunch3r-a można prosić o link do jego kompa, chciałbym sobie zobaczyć te jego czasy przeliczeń. A co do jego aplikacji, może część obliczeń tak jak piszesz pomija, może w niektórych przypadkach da się jeszcze więcej stablicować tylko akurat te testowe parametry tego nie pokazują.

Co do samej aplikacji dziwi mnie trochę, że admini wypuszczają tak wolne liczydełko skoro bez większej wiedzy można progsa przyspieszyć 2x-3x

ad1.
ja zrezygnowałem z tej małej pierdółki (z której o dziwo wynika jakaś fanaberia że pow(a,x)*pow(a,y) != pow(a,x+y) nawet przy zwiększonej precyzji obliczeń)
co tak znacząco zmienia wynik obliczeń a bardzo mało wnosi do całkowitej optymalizacji
ja osobiście zrezygnowałem z ustawień typu -fast czy -ffast-math przy kompilowaniu, aby wyniki były rzeczywiści poprawne,
na dodatek ustawiłem aby aplikacja liczyła z większa precyzją, w kompilatorze intela to opcja -pc80 (windows: /Qpc80)

ad2.
http://www.boincatpoland.org/smf/index.php/topic,1249.msg52219.html#msg52219

ad3.
sami admini projektu, gdzieś tam pisali, że oni to studenci a nie programiści  ;D



Troll81

przerastacie mnie o głowę :(

RAD-Poland

#146
Cytat: TJM w 24 Grudzień 2008, 00:06
Cytat: mindc w 23 Grudzień 2008, 23:25
przypominam wszystkim, że cały czas jest ograniczenie na Milce do 2500-2600 pkt na dobę na CPU i nie można tego przeskoczyć...

Przeskoczyć bardzo łatwo, wystarczy użyć FreeHALowych managerów zmieniających host cpid.

potwierdzam, wystarczy kilka VM na jednym rdzeniu i uzyskuje się podobny efekt

Cytat: mindc w 23 Grudzień 2008, 23:25
pozostaje jeszcze aplikacja Crunch3r'a... według mnie, coś jest zakombinowane z odrzucaniem wyników pośrednich, niemających wpływu na wynik końcowy, co widać po bardzo zmiennych czasach liczenia dla próbek...

ten rozrzut wynikał z machlojek w managerze który podawał zawyżony czas final_cpu_time przeliczonej próbki
jeśli wartość tego czasu jest większy od czasu miedzy pobraniem a odesłaniem próbki, serwer za czas obliczeń próbki przyjmuje tę mniejszą wartość
gdzieś na forum milki administrator zgłaszał do Crunch3ra i nie tylko o poprawę tego problemu (w wyniku dziwnym trafem czas przeliczania wu wydłużył się i wyrównał (bez komentarza))

@mindc  dzięki za binarki pod Linuksa  :attack:

   
WCG:
PG:         YOYO:

     

mindc

Cytat: RAD-Poland w 24 Grudzień 2008, 06:01
(...) w wyniku dziwnym trafem czas przeliczania wu wydłużył się i wyrównał (bez komentarza)

możesz dać jakieś namiary na te info?



mindc

Cytat: mindc w 24 Grudzień 2008, 00:54
dla zaspokojenia własnej ciekawości i sprawdzenia jak to jest naprawdę, czyli czy zależy to od ilości CPU czy od ilości pkt dla jednego hosta,
zrobię testy jak znowu pojawią się próbki, uruchomię normalnie 4 WU na q6600 i na wirtualce 2 WU jednocześnie i zobaczymy jak będzie punktować....

pojawiły się WU więc czas zacząć testy
wyłączyłem liczenie na hoście całkowicie, odpaliłem 4 wirtualki (w każdej po dwa CPU) i zobaczymy co z tego wyjdzie po 24h  :attack:


AiDec

A ja przetestowalem Linucha x64 w Milky. Jest wolniejszy od Win32 :P. Moze da sie zrobic optymalniejsze optymalki pod Lin, ale poniewaz na dzien dobry Linx64 bez optymalek jest w cholere wolniejszy od Win32, to Linuch w Milky idzie w odstawke. Potestuje inne projekty.



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

mindc

Cytat: AiDec w 25 Grudzień 2008, 07:56
A ja przetestowalem Linucha x64 w Milky. Jest wolniejszy od Win32 :P. Moze da sie zrobic optymalniejsze optymalki pod Lin,

chyba chodzi tu o te 64 bity a nie o linux/win
ja zauważyłem że na linux x86 próbki liczą się szybciej niż na win x64
na tym samym sprzęcie

host (win x64)
Cytat
58873873    59018698     24 Dec 2008 21:55:18 UTC     24 Dec 2008 22:16:01 UTC     Over  Success     Done    727.17     4.72     21.82
58872769    59017613    24 Dec 2008 21:40:56 UTC    24 Dec 2008 22:01:03 UTC    Over    Success    Done    733.25    4.76    22.00
58872768    59017612    24 Dec 2008 21:40:56 UTC    24 Dec 2008 22:11:00 UTC    Over    Success    Done    730.02    4.74    21.90
58871859    59016730    24 Dec 2008 21:27:38 UTC    24 Dec 2008 22:01:03 UTC    Over    Success    Done    759.61    4.93    22.79

guest (linux x86)
Cytat
58849167    58994504     24 Dec 2008 18:06:45 UTC     24 Dec 2008 18:25:15 UTC     Over  Success     Done    686.27     2.21     20.59
58849091    58994428    24 Dec 2008 18:06:29 UTC    24 Dec 2008 18:25:15 UTC    Over    Success    Done    686.06    2.21    20.58
58846420    58991769    24 Dec 2008 17:55:29 UTC    24 Dec 2008 18:15:15 UTC    Over    Success    Done    686.98    2.21    20.61
58846336    58991685    24 Dec 2008 17:55:15 UTC    24 Dec 2008 18:15:15 UTC    Over    Success    Done    687.35    2.21    20.62

ciekawe co by się stało, gdyby optymalki skompilować natywnie dla x64 (popracuję nad tym)



sesef

Cytat: AiDec w 25 Grudzień 2008, 07:56jest w cholere wolniejszy od Win32, to Linuch w Milky idzie w odstawke

Pewnie zapinasz optymalki na 32 bitowe systemy przez co tak na prawdę muszą iść przez maszynę wirtualna która "tworzy" środowisko 32 bitowe w 64 bitowym

AiDec

#152
Cytat: sesef w 25 Grudzień 2008, 14:12
Cytat: AiDec w 25 Grudzień 2008, 07:56jest w cholere wolniejszy od Win32, to Linuch w Milky idzie w odstawke

Pewnie zapinasz optymalki na 32 bitowe systemy przez co tak na prawdę muszą iść przez maszynę wirtualna która "tworzy" środowisko 32 bitowe w 64 bitowym

To bylo bez optymalek - czysta app. Nic nie zapinalem.


Swoja droga mindc, jak masz jeszcze jakies optymalki, to moglbys zapodac cos do testow ;).




UWAGA: Te trzy optymalki ktore otrzymalem od sesefa dzialaja tylko dla AMD. Sprawdzalem na Intelach i niestety wysypuja probki. A szkoda, bo u mnie kroluja wlasnie Intele.



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

mindc

Cytat: AiDec w 25 Grudzień 2008, 14:18
Swoja droga mindc, jak masz jeszcze jakies optymalki, to moglbys zapodac cos do testow ;).

cały czas walczę ze statycznie zlinkowanymi binarkami pod win, aby działało na wszystkich kompach a nie tylko na moim  ;D
a teraz doszły walki z x64 więc jeszcze trochę to potrwa...
no i z sezefem nie mamy tych samych źródeł, każdy kompilował i optymalizował po swojemu  ;D

BTW
po tych zabawach stwierdziłem że skompilowanie czegokolwiek pod lin jest 100 razy prostsze niż pod win  XD

Cytat: AiDec w 25 Grudzień 2008, 14:18
UWAGA: Te trzy optymalki ktore otrzymalem od sesefa dzialaja tylko dla AMD. Sprawdzalem na Intelach i niestety wysypuja probki. A szkoda, bo u mnie kroluja wlasnie Intele.

ja, jak na razie, pod win siedzę na optymalkach skompilowanych przez sezefa, bo ja mam ciągle problemy ze swoją kompilacją pod win (kompilatorem intela)
i nie zauważyłem aby na intelach się wywalało (acha, siedzę na trochę starszej wersji sezefa, nowych nie ruszałem nawet bo pisał że ma znowu problemy z SSE2)



AiDec

No niestety. Sprawdzilem na jeszcze jednym kompie. Pod Intela sie nie nadaja.



Bo jest paru kumpli :),
Bo jest parę w życiu dobrych chwil...


Moja wizytowka i sygnaturka

emik

u mnie na C2D też walą błędami


sesef

Intel jakiś lewy jest, aplikacja nie działa, z MKL same problemy, z kompilatorem Intela również same problemy czemu ludzie te procesory kupują :/

mindc

Cytat: sesef w 26 Grudzień 2008, 01:05
Intel jakiś lewy jest, aplikacja nie działa, z MKL same problemy, z kompilatorem Intela również same problemy czemu ludzie te procesory kupują :/

na pewno wersja 11 jest zwalona, ja właśnie kombinuje z x64 i co...
i po włączeniu jakiejkowiek najprostszej optymalizacji typu /O1 wyniki mam różne od wzorcowych, i to zarówno dla wersji x86 i x64 |-?

pod linuxem, po skompilowaniu wersją 11 aplikacji z SSE2, ba, nawet z MMX, od razu ją wywala  |-?

wersją 10 można robić co się chce i widać że optymalizacje mają wpływ na szybkość działania programu
zaraz zmieniam pod win wersje 11 na 10 i kombinuje dalej




no i MKL nie jest do niczego potrzebny, tam są tylko biblioteki z zaawansowanymi/specyficznymi funkcjami, można olać totalnie



mindc

#158
sprawozdania ciąg dalszy...

odpalenie dodatkowych maszyn wirtualnych, spowodowało wygenerowanie ok. 13k pkt na Q6600 w ciągu 24h
ale wynik ten jest tylko orientacyjny, bo "stanowisko badawcze" w międzyczasie wykorzystywane było do innych celów  ;D




skompilowanie natywnej wersji pod x64 nie powoduje kompletnie nic dla tego kodu




po walkach z VS+Intel, odnotowałem pełny sukces
czyli poprawną obsługę SSE2/SSE3 i poprawnie działające aplikacje na gołym systemie windows XP 32bit  ;D

EDIT:
wersje SSE2 i SSE3 działają zarówno na Intelach jak i AMD (sprawdzone praktycznie)
wersja SSE3 powstała również, ponieważ działa trochę szybciej od wersji SSE2 :)




jeśli ktoś jest zainteresowany aplikacjami pod windows/linux -> PM



Troll81

mindc może wyślesz to developerom milky?? I niech w końcu zniosą durne ograniczenie punktowe  >:(