Cytat: Troll81 w 01 Czerwiec 2012, 19:37Pomału bo dostałem zadyszki :)
Jeszcze Goldbach się gdzies zapodział w twej liście :D
Co to jest ten Goldbach? :)
Pozdrawiam
Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.
Pokaż wiadomości MenuCytat: Troll81 w 01 Czerwiec 2012, 19:37Pomału bo dostałem zadyszki :)
Jeszcze Goldbach się gdzies zapodział w twej liście :D
Cytat: Troll81 w 01 Czerwiec 2012, 18:33Przeglądam poniższe instrukcje:
Z tego co pamiętam to program uppercase (czyli przykładowa apka) zamienia małe litery na duże. Jest prosty jak konstrukcja cepa bo ma tylko testować czy projekt wysyła aplikacje czy jest ona prawidłowo uruchamiana i zakańczana na komputerach i czy wyniki sa odsyłane i prawidłowo przyjmowane przez serwer....
Cytat: krzyszp w 01 Czerwiec 2012, 17:10Dobre kontakty to moja słaba strona ;-) W pracy muszę mieć osobistego menadżera :)
W kwestii popularności, to chyba najlepiej systematycznie publikować wyniki, a pomysł z programem i turniejami też przysporzy wiele liczydłowych.
Kilkaset rdzeni do dyspozycji, to otrzymasz spokojnie z naszej drużyny, a w skali świata...
Generalnie dobry kontakt ze społecznością skupioną wokół BOINC jest chyba najlepszą opcją, najbardziej przyciąga chętnych gdyż ludzie zajmujący się tą technologią zwykle są ciekawi świata nauki :)
CytatNo jeśli tak to super fajnie. Taką aplikację rozproszoną bez pośrednictwa BOINC bym zrobił może w tydzień.
Jak coś, to z 10 -15 rdzeni będzie do dyspozycji :)
Myślę, że nie doceniasz popularności BOINC - ciekawy problem (a ten jest ciekawy) może łatwo przyciągnąć dziesiątki tysięcy ludzi (a przynajmniej komputerów) na stałe...
CytatNa punktach na razie kompletnie się nie znam.
wystarczy odpowiednio dobrze ustawic system punktow za przeliczenie zadan. i chetnych bedzie bardzo duzo.
CytatCzy komunikacja jest też za pośrednictwem API BOINC czy piszemy sobie własny serwer?
Kwestia techniczna , miec serwer ktory bedzie w stanie obsluzyc taki ruch.
CytatNiestety pierwszy projekt z AI będzie miał jeden task na około 1-2 minuty. Transfery są małe, ale częste.
I tu kolejna kwestia, raczej lepiej zeby zadania byly odpowiednio dlugie (4-6h) to zminiejszyloby ruch moze
Cytat200h na jednym kompie jest niemożliwe. Uczenie to proces iteracyjny. Chodzi o
albo nawet zadania o czasie 200h :D jak pokazuje przykład primegrid :D da się
CytatNie wiem jaki narzut na obsługę jest ze strony oprogramowania BOINC. W metodzie magnetycznej
Myślę że większym problemem będzie obsłużenie ruchu na serwerze i obróbka wyników/bieżące generowanie próbek niż brak chętnych.
CytatCiekawy jestem co zrobić aby stał się popularny. Popularność dobrze nabijają
jeśli projekt ruszy i będzie popularny to i na odpowiedni sprzęt znajdzie się kasa.
Cytat: goofyx w 01 Czerwiec 2012, 09:05Super fajnie, ale na razie to próbuję policzyć coś w ramach rosetta i... chyba nawet tego nie potrafię :)
na mnie możesz liczyć.
za 2-3 tygodnie skończę zdobywanie odznak w WCG i będę mógł przepiąć swoje hosty (jakoś 20 kompów) na inny projekt :)
Cytat: Troll81 w 01 Czerwiec 2012, 08:19Właśnie znalazłem to:
źródła przykładowej aplikacji uppercase powinny byc dostępne wraz z serwerem. Jest to przy okazji aplikacja testujące czy poszczególne składowe serwera działają prawidłowo.
Cytat: goofyx w 01 Czerwiec 2012, 08:21Zobaczymy. Jeśli podołam z tym API BOINC i jeśli będzie 20 wolontariuszy non-stop to super.
@mariotti (nawiązując do odpowiedzi nr.94)
piszesz różnych możliwościach do wyboru jeśli chodzi o algorytmy, o mocy jaka jest potrzebna i dziesiątkach lat obliczeń...
osobiście uważam, że boinc jest idealną platformą do czegoś takiego.
Cytat: goofyx w 01 Czerwiec 2012, 08:21Myślę i myślę i czaszka mi już dymi... Muszę najpierw zrozumieć API BOINC, bo robię
Jeśli masz "problem" z wyborem konkretnego algorytmu czy sposobu w jaki ma być rozwijana baza wiedzy programu to może utworzysz projekt z kilkoma aplikacjami używającymi każda innego algorytmu <- dzięki czemu sam będziesz wstanie określić po jakimś czasie, który algorytm jest najlepszy do nauki. Wiem, że to trudne <- ale może zamiast zastanawiać się co wybrać, można przetestować więcej niż jeden algorytm.
Cytat: goofyx w 01 Czerwiec 2012, 08:21Komputery grają już za mocno w szachy żeby z nimi grać. Z moim programem nie wygrałem
Po za tym to może być ciekawe doświadczenie także dla ciebie <- pisałeś, że z takimi algorytmami masz kontakt od 10 lat.
Projekt testujący różne rozwiązania + dający później możliwość zagrania z taką coraz "mądrzejszą" SI byłby baardzo atrakcyjny.
No wiesz jednego dnia wygrywasz z SI, a drugiego po aktualizacji wiedzy wtapiasz ;) to zmusza cie do poprawy umiejętności :)
com napisał napisałem, mam nadzieję że na temat ;)
Cytat: Troll81 w 01 Czerwiec 2012, 07:39No mam pytanie. Gdzie jest tutorial i przykład jak zrobić najprostszą aplikację?
no i najwazniejsza decyzja podjeta :D. jak masz pytania to mecz na forum :D
Cytat: Troll81 w 01 Czerwiec 2012, 06:43Jedyna droga która wydaje mi się słuszna to droga kolejnych przybliżeń do celu.
nikt nie mówi że zrobienie takiego projektu to hop siup. Najpierw sam musisz zdecydowac która droga pójdziesz ty i twój pies :D
Cytat: krzyszp w 01 Czerwiec 2012, 01:35Proszę nie, gdy jeden post tnę na kilka cytatów to już się boję że pomieszam wszystko :)
Można zamieszczać kilka cytatów w jednym poście ;)
Cytat: krzyszp w 01 Czerwiec 2012, 01:35To nie jest takie proste że więcej znaczy po prostu lepiej. W pewnej odmianie algorytmów
Ale wracając do tematu...
Myślę, że właśnie droga wykorzystania BOINC jako "trenera" właściwego systemu ma najwięcej zalet:
1. Możesz utworzyć tysiące wątków i jednocześnie testować setki taktyk.
Cytat: krzyszp w 01 Czerwiec 2012, 01:35Temat rzeka :) Zastanawiałem się nad problemami uczenia i programowania
2. Stosunkowo łatwo regulować ramy czasowe, a także testować jednocześnie różne okresy testów (długość trwania poszczególnej rozgrywki) niezależnie od innych (poprzez preferencje).
3. Dowolna kombinacja powyższych.
4. Można także testować algorytmy dla określonych maszyn (w sensie ilości rdzeni, poprzez aplikacje wielowątkowe, uruchamiane tylko na komputerach o określonej ilości wolnych rdzeni).
5. Oddzielenie funkcji testujących strategie pozwala na oddzielne ładowanie i testowanie wyników (a to również można "zrównoleglić" i wysłać jako osobną aplikację bazującą na uzyskanych poprzednio wynikach).
Cytat: krzyszp w 01 Czerwiec 2012, 01:35Ja tym bardziej :) W ogóle można zrobić duuuużo, jednak poprawna implementacja tych
W sumie jestem baaaardzo ciekawy tego projektu. Ciekawe może być sam... turniej pomiędzy komputerami wolontariuszy! :fright:
Cytat: Rysiu w 31 Maj 2012, 21:43To się zrobi bałagan, nie będzie wiadomo która wypowiedź tyczy się którego problemu. Już trudnoCytat: mariotti w 31 Maj 2012, 21:08Tak. W jednym poście można zmieścić wszystkie odpowiedzi. Nikt na forum nie pisze tyle postów jeden pod drugim.Cytat: Rysiu w 31 Maj 2012, 20:25A po co łączyć posty? Jest pytanie i odpowiedź, czy może być bardziej czytelnie?
Proszę nie pisać miliarda postów, a starać się wszystko mieścić w jednym (nie chce mi się teraz tego łączyć).
Pozdrawiam
Cytat: Tomasz R. Gwiazda w 31 Maj 2012, 20:25Chyba założę że będzie maksymalnie 100 komputerów i napiszę taki algorytm uczenia
mysle ze sie wiele wyjasni jak bedzie testowa aplikacja
i jak troche pomozemy podpinajac sie do projektu :)
wtedy wyjdzie jaka moc obliczeniowa (ile hostow) przez jaki czas pomoze osiagnac cel.
Cytat: Rysiu w 31 Maj 2012, 20:25A po co łączyć posty? Jest pytanie i odpowiedź, czy może być bardziej czytelnie?
Proszę nie pisać miliarda postów, a starać się wszystko mieścić w jednym (nie chce mi się teraz tego łączyć).
Cytat: goofyx w 31 Maj 2012, 15:59Nie pisałem że chcę dużą moc na jednym komputerze, ale że z upływem czasu
4. ale co da ci duuża moc na jednym komputerze skoro chcesz zrobić aplikację boinc i pozyskać jak najwięcej userów <- tego nie rozumiem. no chyba że robisz aplikację dla siebie i wiesz że będzie ona chodzić na i7 z 8 wątkami
Cytat: krzyszp w 31 Maj 2012, 15:36Dobrze zrozumiałeś, ale jest jedno ale. Otóż napisanie systemu który będzie uczył grać w szachy coś od zera jest
Ja to rozumiem inaczej.
Sensem aplikacji ma być nauka systemu prawidłowego planowania gry a nie napisanie programu szachowego. Przy takim założeniu ma powstać aplikacja BOINC i wtedy najlepiej napisać aplikację trenującą system - dobrze rozumiem?
Cytat: krzyszp w 31 Maj 2012, 15:36Hmmm
Jeśli tak, mamy dwa założenia wzajemnie się wykluczające:
1. Aplikacja jednowątkowa - dostaje określone parametry, wykonuje funkcje trenujące, zwraca wyniki - program na serwerze dokonuje oceny wyników działania.
2. Aplikacja wielowątkowa - służy głównie do np. testowania algorytmów gry (z wyszczególnieniem wielowątkowości), może też być użyta do trenowania, ale w tym wypadku w zasadzie jest marnowaniem zasobów (IMHO).
Wszystko zależy od celu tworzenia aplikacji, jeśli ma służyć tylko jako "trener" właściwego systemu, to w zasadzie nie ma znaczenia, której opcji użyjesz, bo wtedy w całym systemie poszczególne taski (wysłane aplikacje) są właśnie takimi "wątkami" większego systemu.
Cytat: krzyszp w 31 Maj 2012, 15:36No nie mam :)
Natomiast faktem jest, że w zasadzie nie masz innej możliwości (tak myślę) uzyskania takiej ilości mocy obliczeniowej do trenowania algorytmów szachowych w inny sposób...
Cytat: lukaszja w 31 Maj 2012, 15:51Zależy o jakiej mocy rozmawiamy. O mocy obliczeniowej? O mocy programu - czyli o
3. Ilość wątków i czasu przeznaczonego na 1 WU dla mnie przekłada się na poziom "mocy" - nie jestem pewien, czy 8 aplikacji na 1 rdzeniu dadzą to samo, to 1 aplikacja wykorzystująca 8 rdzeni - to pytanie do znawców tematu.
Cytat: lukaszja w 31 Maj 2012, 15:51Mnie się marzy taki algorytm który co roku wygeneruje trochę mocniejszy
4. Sama "moc" przekłada się na założenia końcowe - szukamy szachowego Gralla, czy "tylko" podwyższamy poprzeczkę znajomości tej gry.
Cytat: Martin Fox w 31 Maj 2012, 15:30Można, nikt nie pisał że nie można.Cytat: mariotti w 31 Maj 2012, 14:12A nie można napisać programu wykorzystującego jeden rdzeń robiący (przykładowo) 2mld * 30 * 60 instrukcji, i puścić cztery takie na czterech rdzeniach?
Załóżmy że dzisiejszy standard to procesory 4-rdzeniowe i możliwość
przetwarzania 2mld instrukcji na sekundę. Więc dziś się pisze programy
szachowe które dobrze grają w czasie 30 minut na 4 rdzeniach, czyli
takie które wykorzystują 2mld * 30 * 60 * 4 instrukcji. Ok?
Za 10 lat będziemy mieli 40 rdzeni i szybkość 20mld instrukcji. Więc
będzie się pisało programy które zagrają optymalnie pod warunkiem
wykorzystania 20mld * 30 * 60 * 40 instrukcji. Ok?
Cytat: goofyx w 31 Maj 2012, 14:51Jedyne co ja chcę, to być autorem, albo współautorem bardzo mocnego
dzisiaj mam chyba ciężki dzień.
porównanie do kierowcy i samochodu to kapuje, ale jaką ty aplikację chciałbyś zrobić?
tylko taką co działa na procesorach 4 wątkowych przez np.: 10 minut?
dla każdej ilości wątków inną aplikację chcesz zrobić <- naprawdę się pogubiłem.
Jak dla mnie to albo program jest jednowątkowy albo wielowątkowy <- tworzenie iluś tam aplikacji w zależności od ilości wątków jest chyba nie zbyt trafiona.
wytłumacz mi to jak 5-latkowi <- ja naprawdę chcę zrozumieć sens tego co chcesz mi przekazać.
Cytat: Cyfron w 31 Maj 2012, 14:47
a możesz mi wytłumaczyć (bo po prostu nie rozumiem) mariotti - dlaczego czas grania jest taki ważny?
Cytat: Cyfron w 31 Maj 2012, 14:47Co nazywasz 'symulacjami'?
Bo ja tak sobie myślę, że ten algorytm, który ma potem grać, to trzeba nauczyć pewnych postępowań, myślenia o kolejnych ruchach - czy uczenie nie polega na przeprowadzeniu po prostu iluś partii (nie ważne jak szybko, tylko ważne ile)? i na podstawie symulacji on sobie będzie wiedział jaka opcja jest najbardziej korzystna jako kolejny ruch.
Cytat: Cyfron w 31 Maj 2012, 14:47W zupełnie innym kontekście pisałem że prędkość i ilość nie ma znaczenia. Byś musiał
Ja mam wrażenie, że w szachach nie liczy się jak długo się gra (bo jeden ruch można wymyślać przez tydzień) tylko "ogranie" i wiedzenie co należy kiedy zrobić. więc jak dla mnie liczy się jednak prędkość i ilość wątków, a tutaj mówisz, że prędkość i ilość nie ma znaczenia, bo cały czas jest to samo, bo liczy się czas przeliczania - dlaczego?
Cytat: goofyx w 31 Maj 2012, 14:20Nie wiem w jaki sposób to jeszcze wytłumaczyć aby było jasne.
@mariotti: wybacz ale kompletnie cie nie rozumiem :(
chcesz przygotować aplikację z obsługa np.: 4 wątków, zamiast aplikacji na 1 wątku, która mogła by być uruchomiona jako 4 różne procesy?
Cytat: krzyszp w 31 Maj 2012, 12:11Ja to tak właśnie zrozumiałem, ale nie rozumiecie mnie. Chodzi o to że te 50k
PoznanskaPyra miał chyba coś innego na myśli.
Otóż w BOINC, poszczególne projekty zwykle używają jednego rdzenia (wątku), bo tak jest prościej. Dzięki temu możesz jednocześnie uruchomić np. 6 aplikacji uczących się, każda na jednym rdzeniu.
Osobnym podejściem jest właśnie aplikacja wielowątkowa - w tym wypadku występuje zjawisko, o którym piszesz.
Niemniej, przy założeniu jednego wątku na jedną aplikację, możesz mieć "na raz" odpalone np. 20k programów uczących się na 5k maszyn. Za 2 lata może to być 50k programów na 5k maszyn, itd.
Cytat: PoznanskaPyra w 31 Maj 2012, 11:22Chyba coś nie tak z moją umiejętnością tłumaczenia :)
Mi tu chodziło o co innego. Mamy 12 wątków, czyli 12 treningów na raz liczby te się podwajają. Najlepsze do tego celu są opetrony, niskie taktowanie( w tym wypadku nic to nie zmieni) ale za to 16 rdzeni na jednym procesorze.
Cytat: goofyx w 31 Maj 2012, 08:02To jest prawda, ale piszesz o czymś innym.Cytat: mariotti w 30 Maj 2012, 19:25zgadza się.Cytat: PoznanskaPyra w 30 Maj 2012, 18:52No właśnie nie jest tak kolorowo. Jeśli będą komputery z 30ma procesorami to docelowo
Jeżeli teraz i7 robi 12 wątków na raz to za 10 lat, to pewnie ze 30 wątków na raz nie będzie niczym wyjątkowym. Wtedy jeden procesor może robić na raz kilka gier.
program będzie używał właśnie 30 procesorów. Więc idealnie byłoby jakby był uczony też
na takiej maszynie. Jakkolwiek wzrośnie szybkość komputer to tak samo wzrośnie
zapotrzebowanie w trakcie uczenia.
Kiedyś grze wystarczył jeden wątek bo procesory miały 1 rdzeń czyli 1 wątek <- teraz niektóre gry korzystają już z 2-3 wątków, a Wiedźmin 2 chyba nawet z 4. Programy graficzne potrafią obsłużyć tyle wątków na ile pozwoli im sprzęt np.: 3D max.
Dzięki coraz szybszym CPU i GPU gry i programy będą coraz "lepsze" a to oznacza zwiększający się popyt na zasoby. Podobnie było z RAM'em, kiedyś 32 mega ramu to był full wypas, a teraz Windows 7 zżera na dzień dobry chyba do 512MB Ram <- nie wspominając o np.: Modern Warfare 3, który siedzi na 1,5Gb ramu <- co nie jest największą wartością jaką widziałem.
Cytat: PoznanskaPyra w 30 Maj 2012, 18:52No właśnie nie jest tak kolorowo. Jeśli będą komputery z 30ma procesorami to docelowo
Jeżeli teraz i7 robi 12 wątków na raz to za 10 lat, to pewnie ze 30 wątków na raz nie będzie niczym wyjątkowym. Wtedy jeden procesor może robić na raz kilka gier.
Cytat: PoznanskaPyra w 30 Maj 2012, 18:18Niestety w szachach to zbyt dużo nie zmienia, ponieważ rozgrywka
Bierzesz pod uwagę zmienną, czyli prędkość obliczeń komputerów, ciągłe przyrastanie ilości rdzeni w procesorze? Za 10lat, obecne komputery będą przestarzałymi złomami.
Cytat: krzyszp w 29 Maj 2012, 11:19Algorytm 3 jest najbardziej intrygujący, ale nie wiem czy jest choć trochę realny :D
Myślę, że przy odrobinie wysiłku osiągnięcie 10k liczących (a to oznacza użytkowników, a nie ilość komputerów/procesorów/rdzeni - tych może być np 5 x tyle) algorytm 3 wydaje się wręcz oczywisty :)
Cytat: Troll81 w 29 Maj 2012, 13:04To taka odmiana która pozwala na pewną losowość w układzie startowym. O ile
chess960. zajmował sie konkretna odmianą szachów....
Cytat: krzyszp w 29 Maj 2012, 11:19Hmmmm zastanawiające to wszystko :)
Myślę, że przy odrobinie wysiłku osiągnięcie 10k liczących (a to oznacza użytkowników, a nie ilość komputerów/procesorów/rdzeni - tych może być np 5 x tyle) algorytm 3 wydaje się wręcz oczywisty :)
Jest także coś ciekawego do zaimplementowania, co zgromadziło by może nawet dziesiątki tysięcy ludzi...
Istnieje możliwość, że stworzyłbyś stronę internetową do gry w szachy z komputerem (serwerem), gdzie po stronie maszyny grałby program nauczony grać za pomocą BOINC? Coś takiego, nawet przy oczywistych ograniczeniach (np. max. 5 graczy jednocześnie ze względu na potrzebną moc obliczeniową) było by ewenementem na skalę światową...
Cytat: xelexin w 29 Maj 2012, 08:59Dziękuję za ofertę pomocy, skorzystam na pewno. Ale wszystko powoli i
Czytając ogólnie idea ciekawa :)
Jeżeli potrzebujesz pomocy uderzaj do mnie! :)
Cytat: krzyszp w 29 Maj 2012, 08:33
W temacie sztucznej inteligencji?
Możesz IMHO spokojnie myśleć w o liczbach cztero (a może pięcio) cyfrowych... (np. Chess960@Home - 7,501 użytkowników, Mersenne@Home ok 2k) :)
Wszystko zależy od tego, jak ciekawy jest problem oraz czy będziesz publikował wyniki (ludziska lubią otwarte projekty).
Cytat: Troll81 w 29 Maj 2012, 07:08Hmmm w pewnym sensie masz rację.
i tak warto zapisac :D
Cytat: Troll81 w 28 Maj 2012, 10:57To jest oczywiste że swoje prace warto dokumentować. Myślałem
chodzi raczej o kwestie dokumentowania. Możesz to spisywać choćby i w rodzie. Załózmy że spotakasz dwa sposoby roziazania jakiegos problemu. Wykorzystasz jeden z nich i niby problem zniknął. Ale za miesiąc okaże się że rozwiązanie nie do końca działa a ty juz nie pamietasz które wybrałeśi jak sie je robiło. A tak wrócisz do bloga i sobie sprawdzisz. ponadto dokumentacja bywa przestarzała i np cos tam sie zmieniło. Np w nowszej wersji PHP juz czegoś tam nie trzeba robić... tego jest mnóstwo. Zresztą jako programista powinienes wiedziec jak wazne jest dokumentowanie tego co robisz. Nie zakładaj też że zawsze tylko ty będziesz cos robił przy projekcie. Czasem ktos cie będzie musiał zastąpic i dobrze by było by wiedział co i jak albo wiedział gdzie tego szukac.....
Cytat: Troll81 w 28 Maj 2012, 09:44Nie wydaje mi się aby to był dobry pomysł. Jeśli czegoś się nauczę to z
dokładnie jak pisze Cyfron. Rób sobie dokumentację to łatwiej będzie ci po miesiącu np wrócić do tego dlaczego np cos ci nie dizała....
Cytat: Troll81 w 28 Maj 2012, 08:30Jeśli się nie znam na tym to jak mam go utworzyć?
no więc własnie proponuje jego utworzenie :D
Cytat: Troll81 w 28 Maj 2012, 06:16Obecnie sam takiego bloga potrzebuję.
może przy okazii poprowadzisz bloga o tworzeniu projektu? ewentualnie udokumentujesz swe poczynania w formie artykułu?? byłby to świetny materiał dla idacych w twe ślady.....
Cytat: PoznanskaPyra w 26 Maj 2012, 02:28Witam :)
Wg mnie konieczne by było napisanie aplikacji na CUDA NV lub ATI STREAM. Mogę się też postarać wykonać jakieś odznaki :)