Forum pubblico/privato: Pubblico
Permessi di scrittura: Utenti registrati
Giorno: 04/01/2012, 11:24:03
Influenza del so su chess engine
Come da titolo volevo aprire una discussione di tipo didattico sulla influenza del so (32 o 64 bit) sulla capacità di calcolo di un chess engine. In più si potrebbe discutere della correlazione ed utilizzabilità del numero dei core in relazione al tipo di so (posto che esista una correlazione). Il mio timore è che usando Fritz 9 e windows 7 32 bit non vengano sfruttare correttamente le massime capacità della cpu dualcore. Uso anche spesso ubuntu 10.10 64 bit ma con scid non riesco a capire se vengano sfruttati i due core.
Giorno: 26/10/2020, 11:42:16
Link sponsorizzati
Giorno: 04/01/2012, 11:58:15
Il mio sospetto è che prima di fare elucubrazioni su SO, core eccetera dovresti pensare di buttare il motore-catorcio che ti ritrovi e prendere qualcosa di più aggiornato (anche gratuito, da Houdini 1,5 a Stockfish 2.2 nuovo nuovo - oppure andare sul carotinico deepsaros). Fritz 9 è obsoleto, ormai siamo alla versione 13 se non erro, e non è neppure tra i migliori motori!

dho.gif
Kings will be kings Pawns will be pawns
Giorno: 04/01/2012, 12:24:23
Fritz 9 è da considerare una interfaccia grafica è abbastanza evidente che lo uso con stockfish 2.2 e altri motori attuali . anni or sono l'ho acquistato e mi chiedevo appunto la sua attualità nell'utilizzo con processori 2 core e più. comunque avevo sollecitato una discussione di tipo didattico
Giorno: 04/01/2012, 13:33:31
Allora devi essere più preciso. Se mi parli di iterfaccia grafica Fritz, ok. Ma "fritz 9" è principalmente un motore, obsoleto.
Kings will be kings Pawns will be pawns
Giorno: 04/01/2012, 13:55:03
Dico la mia almeno ci provo

32 o 64bit
Credo che sia per i moderni motori la differenza che genera più differenze di prestazioni. I motori moderni che dici di usare adottano tutti bitboard a 64bit per rappresentare la scacchiera e quindi con O.S. nativi a 64bit riescono a fare anche con 1 solo ciclo di cpu operazioni che a parità di processore ma con O.S. a 32bit lo impegnano anche per 4 cicli !!!
Ad esempio un test come questo
if (bb_white_pawn & black_queen_attack)......
dove nelle variabili a 64bit ho la bitboard dei pedoni bianchi e delle case attaccate dalla regine nera viene risolto con una sola istruzioni (pochissime in realta).
L'equivalente codice compilato a 32bit genera molte più istruzioni che impiegano quindi molto più tempo ad essere eseguito.

tipo di cpu
Questo credo sia semplice....più va veloce meglio è ma anche più cache L2 ha meglio è.

tipo OS
Qui il discorso si fa lungo e vale molto molto molto di più per engine multi-thread come quelli che citi.
L'enorme differenza la fa lo "scheduler" ovvero quella parte del sistema operativo che assegna al singolo core il thread da gestire; tieni presente che la macchina per sopravvivere ha da fare girare molti altri processi insieme alla GUI ed il motore scacchistico. Tanto meno consumano questi processi di sistema operativo e tanto più è efficace lo scheduler, tanti più cicli di cpu avranno a disposizione gli "user process" come sono la GUI e il motore scacchistico.
La mia personalissima opinione che gli scheduler Linux/Unix siano migliori di quelli windows, ma non vorrei accendere una lotta di quartiere biggrin.gif

Ciao
/Matteo
https://sites.google.com/site/mdannib/home
Giorno: 04/01/2012, 16:41:23
Bene finalmente la discussione prende piede nel modo corretto. anche io uso linux e mi farebbe piacere sotto scid come si può constatare se il chess engine utilizza tutti i core o solo uno
Giorno: 04/01/2012, 16:52:59
Dovrebbero esserci parecchie utility grafiche che ti possono permettere di vedere se il processo dell'engine (ad es. stockfish-22-64) ha tutti i thread attivi e consuma una percentuale di cpu adeguata (se hai 2 core e configuri sf22 per usarli tutti la % di cpu dovrebbe essere sempre nell'intorno del 100%).
Tieni presente che le utility hanno una frequenza di campionamento lasca (3 o 5 secondi) e quindi se la partita che hai impostato è con tempi troppo rapidi non la vedrai mai arrivare a quei valori.

Oppure apri una bella finestra del terminale (sotto linux) e lancia il classico e buon tempone del
top -s 3 -o cpu
Vedrai i processi ordinati per consumo cpu (-o cpu) aggiornati ogni 3 secondi (-s 3)....sperando che il comando funzioni anche sulle nuove distro di linux zizi.gif

Ciao
/Matteo
https://sites.google.com/site/mdannib/home
Giorno: 05/01/2012, 09:05:38
se la domanda secca e' come verificare quanti core usi
la risposta esatta l'ha data mdanni

da terminale il comando top

perche'?
perche' la tua e' una domanda sul consumo di risorse hardware
e quindi la prima risposta che viene in mente e' di utilizzare uno (il + vecchio diffuso e semplice) dei mille tool di analisi (volgermente parlando) del computer
ovvero programmi apposta per verificare lo stato di salute del computer

non so e non credo che un programma come una gui o un db sia progettato per fare il lavoro di cui sopra...
se ha un comando del genere e' una parte molto marginale della creazione del software, i programmatori si saranno concentrati sulla gestione degli scacchi immagino :-/
dubito ma non lo so con sicurezza, chi conosce meglio le interfacce potrebbe anche tirar fuori il coniglio dal cappello biggrin.gif

cmq lancia una bella analisi (o una partita con tempo di riflessione lungo)
poi a lato, top

se hai una cpu a 2 core e il motore usa 2 core, vedrai in cima a top 2 righe col nome del motore a 100%
ovvero 2 esecuzioni (o istanze) del programma motore
ognuna usa un core a 100%
se ne vedi una sola non stai usando 2 core ma uno solo
(e la misura globale del tuo consumo di processore scende a 50%, questo viene da se'...)

altro esempio
quando facevo la partite motore motore con xboard su top vedevo nelle prime 2 righe i 2 motori
uno solo per ogni riga
un core ciascuno =)

mentre nella finestra di top vedi il numero di programmi in esecuzione, nella finestra dell'analisi probabilmente questo non interessa e infatti vedi le linee i nodi e tutte le varie informazioni ma di tipo scacchistico

infine come ha accennato ben accennato mdanni il punto oltre a verificare se e quanti core usi devi anche cercare nei documenti come tale funzione si attiva nel motore preso in esame
(alcuni per es vanno compilati apposta) altri magari bisogna eseguirli con un preciso parametro...

bye
ciao.gif
- Comandante Logar? C'è un oggetto in avvicinamento. - Quello è il nostro pianeta! Deficiente! Ma dove vivi?
Giorno: 05/01/2012, 16:25:17
dando il comando top mi da ad es critter 1.4 cpuusage 197%
Giorno: 05/01/2012, 16:25:54
volevo dire %cpu