eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming › Hyper Threading
Ilość wypowiedzi w tym wątku: 21

  • 11. Data: 2009-09-20 18:17:49
    Temat: Re: Hyper Threading
    Od: mgk <m...@w...pl>

    Ktos pytal co to za algorytm.

    Alpha-beta. Szachy.

    W algorytmie tym analizujemy drzewko gry. Ciecia galezi zaleza od
    wartosci zwroconej przez poprzednia galaz. Jesli liczymy na wielu
    watkach czesc galezi musi byc liczona przy braku danych z poprzednich,
    co powoduje duzo wiekszym drzewkiem do policzenia. Stad az tak duza
    nie liniowosc w skalowaniu algorytmu.


  • 12. Data: 2009-09-21 06:17:02
    Temat: Re: Hyper Threading
    Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>

    mgk <m...@w...pl> napisał(a):

    > Ktos pytal co to za algorytm.
    >
    > Alpha-beta. Szachy.

    Więc mamy do rozwiązania ten sam problem :) Osobiście zrównoleglenie odkładam
    na sam koniec, więc może za jakiś rok albo dwa zrobię, gdy już standardowo w
    każdym komputerze będzie kilkanaście jednostek.

    Zapraszam na forum programowania szachów:
    http://tech.groups.yahoo.com/group/progszach/message
    s

    Pozdrawiam



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 13. Data: 2009-09-23 11:30:33
    Temat: Re: Hyper Threading
    Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>

    mgk <m...@w...pl> napisał(a):

    > Poprostu algorytm ten z natury jest szeregowy. Podzial zadan na kilka
    > watkow wymusza liczenie wiecej z tego powodu ze rdzen 2, 3, 4 musza
    > zaczynac juz liczyc gdy nie ma jeszcze wynikow z rdzen 1, a te wyniki
    > przyspieszyly by dalsze obliczenia. Spadek predkosci wynika z samego
    > rozciecia szeregowych zaleznych od siebie obliczen na kilka grup nie
    > zaleznych.

    Mam jeszcze jedno pytanie, bo pewnie za kilka miesięcy będę musiał też
    zrównoleglić alpha-betę: jakiego używasz algorytmu do zrównoleglenia?
    Możesz podać pseudokod, albo link? Słyszałem że 4 wątki (oczywiście na
    czterech procesorach) pozwalają przeszukać w drzewo gry w szachach o jeden
    ruch głębiej. Czy używasz tablicy transpozycji w swoim programie? Tablica
    transpozycji musi być globalna (tzn wspólna dla wszystkich wątków). W "jednej
    chwili" do jednego elementu tablicy może pisać tylko jeden wątek, więc chyba
    tutaj też jest wąskie gardło, gdyż raz na 1-2tys taktów procesora trzeba
    obsłużyć sekcję krytyczną.

    Ciekawi mnie jeszcze jakby wypadł eksperyment z "gołym" algorytmem mini-max
    wyposażonym tylko w tablicę transpozycji. W algorytmie mini-max (w
    przeciwienstwie do alpha-beta) wynik poprzednich obliczeń, nie ma wpływu na
    następne obliczenia, więc zrównoleglenie powinno być liniowe. Ciekawy jestem
    o ile pogorszy się ta liniowość z powodu zastosowania tablicy transpozycji.

    Algorytm mini-max jest o wiele prostszy w implementacji od alpha-beta, sądzę
    że taki eksperyment byłby bardzo pouczający.

    Pozdrawiam serdecznie



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 14. Data: 2009-09-24 07:40:59
    Temat: Re: Hyper Threading
    Od: mgk <m...@w...pl>

    Dziele zadania jedynie w korzeniu. Myslalem o dzieleniu w dowolnym
    wezle ale masakrycznie duzo problemow by bylo.
    Przy zalozeniu ze rdzeni i tak nie jest duzo (nie wiecej niz 32) to
    taki podzial jest ok.

    Tablice transpozycyjne, ruchy mordercow, history table testowalem i ze
    wspoldzieleniem i osobno. Ze wspoldzieleniem wyszlo troche szybciej.
    Potestuj. Moze u Ciebie np wyjsc inaczej. Nie jest to duzo roboty by
    sprawdzic oba scenariusze.

    Mini-max bylby porazka. Nawet z brakiem czesci informacji alpha-beta
    wygeneruje mniej galezi niz mini-max. Alpha beta nigdy nie wygeneruje
    wiecej galezi niz mini-max. Jasne ze mozesz sprobowac zrobic
    eksperyment dla porownania. Szczegolny przypadek w moim algorytmie to
    jakbys mial tyle rdzeni ile jest ruchow w korzeniu. Nawet wtedy bylo
    by to szybsze od mini-max, poniewaz o ile te najwieksze galezie nie
    komunikuja sie z soba (zaczynajace sie od korzenia), to juz pod
    galezie w danej grupie tak i ciecia sa.


  • 15. Data: 2009-09-24 08:53:44
    Temat: Re: Hyper Threading
    Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>

    mgk <m...@w...pl> napisał(a):

    > Dziele zadania jedynie w korzeniu. Myslalem o dzieleniu w dowolnym
    > wezle ale masakrycznie duzo problemow by bylo.
    > Przy zalozeniu ze rdzeni i tak nie jest duzo (nie wiecej niz 32) to
    > taki podzial jest ok.

    Czytałeś o gotowych rozwiązaniach równoległych do alpha-beta? Dużo dobrych
    rozwiązań już jest opracowana. Koniecznie zapoznaj się z tym dokumentem:

    http://www.cis.uab.edu/hyatt/search.html

    Wynika z niego, że do 4 procesorów skaluje się niemal liniowo.

    Po tym linkiem jest więcej opracowań nt szachów tego samego autora:
    http://www.cis.uab.edu/hyatt/pubs.html

    > Tablice transpozycyjne, ruchy mordercow, history table testowalem i ze
    > wspoldzieleniem i osobno. Ze wspoldzieleniem wyszlo troche szybciej.
    > Potestuj. Moze u Ciebie np wyjsc inaczej. Nie jest to duzo roboty by
    > sprawdzic oba scenariusze.

    No tak, w każdym programie szachowym te same techniki sprawują się
    inaczej. Ja zrównoleglanie zostawiam na sam koniec. Teraz od dwóch miesięcy
    badam wpływ null-move na mój program :)

    > Mini-max bylby porazka.
    Do realnej gry oczywiście że byłaby porażka. Chodziło mi o to, że na
    min-max łatwiej jest zaimplementować różne sposoby zrównoleglenia, można
    nabyć doświadczenia podczas takich eksperymentów. A po tym podjąć się
    trudniejszego wyzwania, czyli implementacji na alpha-beta ze spamiętywaniem.

    Pytanie: będziesz na mistrzostwach polski programów szachowych? Ja niestety
    nie mogę w tym roku :/

    Pytanie: czy wysłałeś już swój program do człowieka od tego serwisu?
    http://wbec-ridderkerk.nl/

    Prowadzony jest tam ranking programów szachowych:
    http://wbec-ridderkerk.nl/html/BayesianElo_ed16.htm

    Mój program wywalili bo przez dwa lata nie zrobiłem nowej
    ulepszonej wersji :)

    Pozdrawiam


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 16. Data: 2009-09-25 07:49:51
    Temat: Re: Hyper Threading
    Od: mgk <m...@w...pl>

    Nie wiem czy bede. A kiedy sa?

    Zreszta moj program i tak by nie zajol wysokiego miejsca.

    Ja zrownoleglenie tez zostawilem na koniec. Wszystko inne juz
    zakodzilem. Ale na serwerach z silnikami szachowymi i tak wypada
    ponizej polowy stawki..


  • 17. Data: 2009-09-25 10:14:01
    Temat: Re: Hyper Threading
    Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>

    mgk <m...@w...pl> napisał(a):

    > Nie wiem czy bede. A kiedy sa?

    Z poniższego linka wynika że jutro i pojutrze w Łodzi.
    http://mpps.maciej.szmit.info/current.htm

    > Zreszta moj program i tak by nie zajol wysokiego miejsca.

    Na zawodach jest mało czasu i mało rozgrywek, więc wygrywa
    ten który ma więcej szczęścia. Zawody mają inną zaletę: można
    porozmawiać z innym ludźmi którzy robią to samo, można dużo
    się dowiedzieć.

    Pozdrawiam


    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 18. Data: 2009-09-26 08:17:40
    Temat: Re: Hyper Threading
    Od: mgk <m...@w...pl>

    Niestety mam dzis egzamin takze odpada. Moze za rok.

    Juz bede miec wtedy prace magisterska napisana o silnilach szachowych
    i dokoncze moj program. Co prawda tylko kilka rzeczy w GUI mi zostalo.
    ALgorytm chyba juz nie ulepsze. Wszystko co mozna juz chyba
    zaimplementowane/przetestowane mam.

    Za to moj program walczy tutaj:
    http://lpps.maciej.szmit.info/

    Arabian Knight.


  • 19. Data: 2009-09-26 11:53:03
    Temat: Re: Hyper Threading
    Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>

    mgk <m...@w...pl> napisał(a):

    > Niestety mam dzis egzamin takze odpada. Moze za rok.
    >
    > Juz bede miec wtedy prace magisterska napisana o silnilach szachowych
    > i dokoncze moj program.
    To mam nadzieję że za rok się spotkamy w Łodzi na zawodach i pogadamy
    przy desce o programowaniu szachów :)

    > Co prawda tylko kilka rzeczy w GUI mi zostalo.
    Ja GUI nie robię, całkowicie korzystam z protokołu XBoard.

    > ALgorytm chyba juz nie ulepsze.
    Ulepszanie algorytmu szachowego to jedno z trudniejszych wyzwań
    programistycznych. Niby jest znana lista technik i każda technika
    nie wydaje się zbyt trudna w implementacji. Jednak w jednych programach
    te techniki z sobą współpracują a w innych gryzą się ze sobą.

    Np testowałem dwa sposoby na heurystykę historii. Sposób pierwszy był
    dużo lepszy od sposobu drugiego, ale za to drugi współpracował z
    heurystyka ruchów morderców, a pierwszy nie.

    > Wszystko co mozna juz chyba zaimplementowane/przetestowane mam.
    Ciekawe co jest zaimplementowane w programie szachowym o nazwie 'Rybka'.
    Program ten bardzo rzadko przegrywa nawet z najlepszymi programami na
    świecie, co najwyżej remisuje. Od początku jak powstał miał ogromną
    przewagę nad całą światową czołówką. Ma taki dobry algorytm przeszukiwania,
    czy taką dobrą funkcję oceniającą? Może jedno i drugie? Nie daje mi to
    spać po nocach :)

    > Za to moj program walczy tutaj:
    > http://lpps.maciej.szmit.info/
    >
    > Arabian Knight.
    Mój też tam jest, zwie się: Bearded :)

    Pozdrawiam



    --
    Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/


  • 20. Data: 2009-09-27 19:13:16
    Temat: Re: Hyper Threading
    Od: mgk <m...@w...pl>

    Czyli masz silniejszy progs od mojego.

    A co do null move bo mowisz ze testowales. Testowalem to w moim
    poprzednim silniku i aktualnym. Niby troche przyspiesza. Czasem prawie
    2 razy, czasem nic (zalezy od sytuacji), ale predkosc to nie wszystko.
    Pytanie czy ciecia ktore powoduje null move nie pogarszaja na tyle
    jakosci gry by to przyspieszenie bylo warte. Zrobilem chyba ze 20
    walk. I nie uzyskalem jakiejs przewagi wersji algorytmu z null move
    nad wersja bez niego... Wiec zrezygnowalem z tej techniki.

strony : 1 . [ 2 ] . 3


Szukaj w grupach

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: