Newsgroup: it.hobby.scacchi
Titolo: hyperthreading

e' possibile che questa nuova tecnologia, detta hyperthreading, che fa si
che windows "creda" vi sia un doppio processore installato, serva su
programmi come deep fritz, crafty etc, che prevedono
anche macchine multiprocessore?
Sarebbe interessante, anche xche' dovrebbe essere estesa anche a cpu meno
potenti e + economiche....
grazie
f

 ha scritto nel messaggio
news:EbfC9.26351$744.9...@news1.tin.it...

Qui siamo ai limiti dell'OT, comunque:
a) se non erro le tecnologie multithreading, hyperthreading e superthreading
sono basate su specifiche API del sistema operativo che consentono a
programmi di funzionare come se ci fosse più di un processore attraverso
ottimizzazioni dei tempi di processo e simulazioni in RAM (XP versione Home
è già compatibile con queste tecnologie)
b)ad oggi mi sembra che alcuni giochi 3D abbiano avuto performance superiori
del 25% rispetto l'assenza di queste tecnologie
c)programmi come quelli degli scacchi che usano prepotentemente il sistema
di processo potranno sicuramente utilizzare queste tecnologie ma secondo me
con pochissimi risultati perchè quando si parla di algoritmi di scacchi ci
troviamo di fronte ad un problema di facile risoluzione ma non risolvibile.
Le basi algoritmiche di software di scacchi si possono basare su uno dei 2
seguenti principi:
1) Complete Search in cui vengono considerate tutte le mosse possibili
rispetto una data mossa
2) Incremental Search in cui vengono escluse a priori alcune mosse "deboli"
per cui si ha una minore precisione ma una maggiore profondità di ricerca
.
Dopo aver trovato le mosse il programma passa ad una fase ancora più
complessa che è quella della "valutazione" e del conseguente sort
(ordinamento) di efficacia. Se si è seguita la strada 1 il risultato di
questo ordinamento è perfetto ub quanto sono state individuate tutte le
mosse, se si è seguita la strada 2 allora dovranno intervenire degli schemi
valutativi (normalmente di tipo inferenziale cioè che si modificano con un
processo di apprendimento per esperienza) che danno una valutazione ad ogni
mossa individuata.
Ora si comprende bene come un aumento di velocità che anche raddoppiasse la
stessa risulti insignificante se si usa il metodo 1 in quanto supponendo che
la durata media possa essere di 50 mosse (100 semimosse) e tenendosi basso
di una media di 25 possibilità di scelta per semimossa si otterrebbe un
totale di 100 elevato alla 25 =
100.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000.000
 e con anche 1000 miliardi di mosse elaborate al secondo (già siamo
centinaia di volte più veloci della realtà) ci vorrebbero
27.777.777.777.777.800.000.000.000.000.000.000
 ore di elaborazione per ottenere un risultato.
Se si usa il metodo 2 (quello che mi sembra chessbase abbia utilizzato con
kramnik) si intuisce che la velocità non è significante quanto invece il
metodo di valutazione .
Ciao

metodo di valutazione .
eh si, e proprio questo il bello.
fagot

 programmi. significa qualcosa come 5 punti elo.
Quindi tu dici che lo stesso programma su un Pentium 1000 č solo 5 punti piů
debole dello stesso su un 1250?
Alex

 Alex
mmmmmm credo che le cose non stiano cosi'....gli scacchi sono illogici
nella loro ferrea logicita'.....(cacchio che frase da filosofo!!! mho me
la
rivendo....:-))
Max
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG


Non c'è il 25% di velocità in più tra un 1000 ed un 1250 perchè la velocità
non dipende in misura direttamente proporzionale dal clock, quanto invece
dalla combinazione di velocità del bus, delle RAM e ovviamente del clock. Ci
sono computer con clock più lenti che elaborano più velocemente di quelli
con clock più veloci.
Ciao

 con clock più veloci.
Dipende da che tipo di applicazione vuoi considerare. Un motore scacchisto,
generalemente, è piccolo, risiede in RAM, consiste in pratica esclusivamente
di elaborazione pura sui registri e su array di memoria che, in un Pentium,
vengono posti nella cache di secondo livello. Pertanto, in due calcolatori
scelti a caso con quelle velocità di clock, sono convinto che la velocità di
elaborazione sia pressoché differente del 25%.
Inoltre, è chiaro che se porti un esempio pessimistico remi contro la mia
domada :) Non è forse più realistico, invece, che un computer un po' più
veloce di un altro sia probabilmente leggeremente più recente del
precedente, e quindi siano lievemente migliori le prestazioni e le velocità
di tutti i suoi componenti? O è un fatto comune che se prendo due
calcolatori con CPU a clock diverso, quello più lento abbia un bus più
veloce? :)
Alex

 ha scritto nel messaggio
news:EbfC9.26351$744.9...@news1.tin.it...

Sicuramente l'hyperthreading non porterà nessun vantaggio, dato che i motori
scacchistici sfruttano algoritmi prettamente sequenziali. Si è fatta molta
strada nella parallelizzazione degli algoritmi, ma comunque "dividere" un
processore di velocita X in 2 da velocità X/2 porta comunque sempre ad una
diminuzione di prestazioni.
Per avere un ordine di idee, Robert Hyatt (Crafty), dice che sul suo
quadriprocessore Crafty si comporta come se avesse una sola CPU con velocità
pari a 3 volte quella dei singoli processori.
ciao,
Claudio

 debole dello stesso su un 1250?
Un po' di più. Si è stimato che un raddoppio di velocità porta a guadagnare
30/50 punti elo, quindi dato che 2 è all'incirca il cubo di 1,25 (+25%), si
ottiene un incremento di prestazioni pari a 10/17 elo.
ciao,
Claudio


Si questo è ovvio, il mio esempio era solo estremizzato tendente a
dimostrare  che a volte non è solo il clock che fa la differenza tra due
computer:)
Ciao

 risposta....:)
Se si limita a fare elaborazioni di questo tipo, senza alcun dubbio.
Nota: scrivilo in assembler il programma.
Alex

debole dello stesso su un 1250?
Come giustamente ti ha detto NS2 non e' detto che un 125 performi 25%
in piu'. Cmq amesso e non concesso che lo faccia tieni presente che 
piu' o meno RADDOPPIANDO le prestazioni si ottiene 40 / 50 punti elo
quindi con il 25% in piu non si puo ottenere piu' di 5 o 10 punti.
ovviamente tutta questa roba va presa cum grano salis.
Non e' detto che tutti i programmi guadagnino gli stessi punti
(dipende da come sono fatti, se il prog. e' ottimizzato per il PC a
1000, potrebbe addirittura peggiorare).
La statistica poi fa il resto.
Ad esempio supponi di prendere i 2 PC in questione e  fargli fare 
10 partite. Supponi che uno dei 2 (ad esempio il 1250) vinca 9-1
Secondo te si puo' essere sicuri al 99% che sia piu' forte?
No non si puo' , infatti la probabilita' che sia piu' forte e' minore
di 99 (di poco ma minore). E' incredibile ma e' cosi'.
per chi e' interessato a controllare puo' scaricare l'apposito 
programmino a
www.stevemaughan.com/whoisbetter.htm
 
fagot

ottiene un incremento di prestazioni pari a 10/17 elo.
hai ragione, avevo fatto i calcoli un po a occhio.
comunque la sostanza non cambia e bisogna anche dire che una cosa
e' passare da un 100 a 125 Mhz e un'altra e' passare ada 2000 a 2500.
nel primo caso si guadagnano piu' punti nel secondo forse si ritorna a
i 5 / 10 punti che proponevo io ad occhio.
fagot

 ha scritto nel messaggio
news:arfnh1$m0j$2...@newsreader.mailgate.org...

No, no, non cambia quasi nulla anche aumentando di un ordine di grandezza la
velocità dei processori, e questo perché siamo ancora a profondità di
ricerca basse.
E' stato dimostrato empiricamente in un articolo (mi pare "existence of
diminishing returns in chess" o qualcosa di simile, non ricordo neanche
l'autore) che la differenza tra un programma che pensa a profondità fissa X
e lo stesso che pensa a profondità fissa X+1 è pressoché costante
all'aumentare di X fino a valori "attuali" (mi pare si fosse arrivati con i
test a profondità 11-12 in mediogioco). Un domani, quando i computer
analizzeranno a profondità 40, una ply farà probablimente poca differenza,
ma per ora non è così.
Questo comporta che raddoppiare (o moltiplicare per 1,25, è la stessa cosa)
la velocità da 100 a 200 o da 1000 a 2000 non cambia nulla in termini di
forza... sempre 30-50 elo.
Nota che la velocità reale dovrebbe essere la velocità sperimentalmente
verificata in termini di nodi/secondo, non quella di CPU. Ma considerando
che gli aspetti che influenzano la velocità di un motore sono praticamente
soltanto velocità di CPU (direi per un 90%) e velocità di accesso alla RAM
(l'altro 10%), direi che grossolanamente si può dire che passare da un
100MHz a un 125MHz comporta gli stessi vantaggi relativi di passare da un
2000MHz a un 2500MHz.
ciao,
Claudio

 pari a 3 volte quella dei singoli processori.
Dipende molto dall'architettura della macchina ad esempio i PIV Xeon hanno
una architettura molto rudimentale il bus AGTL+ non e` adatto al
multiprocessore visto che il front side bus viene diviso per le CPU (es in
un quadriprocessore PIV Xeon con FSB a 100Mhz, l'accesso alle memorie
avviene a 25Mhz per processore). Il bus EV6 dei Digital Alpha adottato in
seguito da AMD e` molto piu` performante, ma esistono processori nati per
essere usati in parallelo che il decremento di prestazioni, che ovviamente
c'e` sempre, e` molto ridotto.
Giovanni

 con clock più veloci.
Ovviamente i Mhz non sono tutto.
Giovanni

2000MHz a un 2500MHz.
beh credo che bisognerebbe provare per esserne sicuri.
per adesso rimango della mia opinione ;-)
fagot

 ha scritto nel messaggio
news:z9wC9.29239$744.1...@news1.tin.it...


Dal punto di vista esclusivamente hardware non posso darti torto ma il fatto
è che quando tu usi un computer usi del software, del firmware e quindi il
risultato delle prestazioni non è direttamente proporzionale alla velocità
del computer anche se il software gira in cache. Vedi risultati nella
risposta a Brunetti.
Ciao
"Giovanni" <gio2...@yahoo.it.invalid> ha scritto nel messaggio
news:K3_C9.3175$t_1....@tornado.fastwebnet.it...


 tutto avviene in cache.
Non hai scritto i programmi in assembler, vero? Perché per ottenere un tempo
quasi triplo cambiando solo s.o. significa che il sistema operativo stesso
viene coinvolto pesantemente dal tuo programma (tanto da pensare che hai
usato adirittura un interprete), caso che per un normale programma in
assembler non avviene.
Alex

 ha scritto nel messaggio
news:JG4D9.35930$744.1...@news1.tin.it...


 per adesso rimango della mia opinione ;-)
Per carità, posizione più che legittima. :)
Da parte mia ne sono sicuro, dato che nello sviluppo del mio programma ho
fatto più volte questi conti passando da un computer all'altro... a dirla
tutta bisogna dire che gli per AMD athlon di nuova generazione occorre
considerare la velocità equivalente e non quella fisica perché la relazione
costante regga. Quindi un Athlon 1700xp da 1466MHz dovrà essere considerato
a tutti gli effetti come un 1700MHz.
ciao,
Claudio

 c'e` sempre, e` molto ridotto.
No, ok... questo è chiaro. Io non intendo un decremento di prestazioni per
collegare gli N processori... io intendo che con un programma di scacchi
lasci per strada molta potenza di calcolo per la bassa parallelizzazione che
puoi ottenere. Se lanci su 4 processori 4 pezzi di codice, verosimilmente ne
avrai 2 che girano alla grande, e altri due che magari aspettano dati dai
primi e si mettono a dormire. In definitiva non avrai mai una CPU
equivalente pari alla somma di tutte quelle in gioco, proprio per la natura
degli algoritmi. Quindi se io avessi un 2000MHz, non lo dividerei mai in
4x500MHz, perché non saprei gestire i 4 processorini bene come uno solo.
ciao,
Claudio

 risposta a Brunetti
Se cambi il bus di sistema cambi tutto, ovviamente un programma grafica i
benefici non saranno proporzionali, ma se usi un programma in cui il 99% del
lavoro lo fa la CPU come per esempio un programma che gioca a scacchi allora
si, se non mi credi fai la prova metti il bus di sistema a 100 nella tua
scheda madre, carica la tua "engine" preferita dagli una posizione (io per i
test di velocita` utilizzo la posizione di Spielmann-Wahle, Vienna 1926
prima di Txe7 presa da
www.stevemaughan.com/downloads/big_book_of_combinations_pgn.zip
 ma solo per
abitudine e perche` mi piace vedere i motori soffrire in una posizione che
gli umani possono risolvere senza troppe difficolta`)  vedi quanti Knodi al
secondo analizza, poi metti il bus di sistema a 133Mhz e vedi la differenza
circa il 33% te lo assicuro, l'unico problema che potresti avere e che il
tuo sistema non funzioni a 133Mhz di front side bus (se usi RAM e CPU
certificate a 133Mhz o superiori questo problema non si pone) oppure stai
usando un P4 e si attiva la funzione che diminuisce automaticamente la
frequenza della CPU per un eccessivo surriscaldamento.
Ovviamente se hai una un Thunderbird  900 a 9 x100(mi spiace ma solo gli
engineering sample della Intel hanno il bus sbloccato), smatiti (se non sai
cosa vuol dire c'e` sempre news:it.comp.hardware.overclock o google) metti
il moltiplicatore a 12 sempre con il front side bus a 100Mhz non avrai un
incremento del 33% di prestazioni ma molto meno.
Giovanni