CPU per data science: "n. threads vs clock speed" trade off is the new "bias-variance trade off"

Asuan

Nuovo Utente
50
3
CPU
Intel Schif 2000mila
GPU
GTX 1050Ti
Salve,
vorrei chiedere un consiglio a riguardo di un futuro acquisto.

In breve, ho svolto un lavoro di tesi all'estero che dovrei continuare nei prossimi mesi.
Date le policy di sicurezza per la gestione dei dati, non ho avuto la possibilità di avere accesso al cluster da remoto.
Perciò, avrei la necessità di creare una workstation in grado di svolgere la stessa tipologia di analisi che stavo conducendo, nonché essere fruibile per il futuro.

In breve, la task più "impegnativa" consiste nell'applicare un metodo di detezione di comunità basato su modelli generativi Baesyani usando un pacchetto di python chiamato graph-tool.
Abbiamo testato questo pacchetto eseguendo l'analisi variando il numero di threads e RAM a disposizione su un cluster con CPU Intel Xeon Gold 6138 (max f. turbo boost 3.7 GHz), notando che sostanzialmente bastavano 3 threads e 3GB di RAM per singola analisi. Questo non per dire che fosse il requisito minimo ma che tendienzialmente il tempo di analisi rimaneva invariato all'aumentare delle risorse. Idealmente svolgerei sulle 5/7 analisi al massimo contemproaneamente (ma spesso ne svolgevo solo 3/4). Il problema è che, su grossi network, potrebbe volerci qualche giorno per ottenere i risultati dell'analisi. Quello di cui sono sicuro è che beneficerei di un alta velocità in single core, dal momento che la maggior parte degli strumenti che utilizzo in R studio non beneficiano della parallelizzazione. Sono quasi sicuro che anche l'incremento della performance in single core possa avere una influenza nel tempo di analisi che richiede il metodo di detezione di comunità che sto usando. Tuttavia non ho avuto modo di poterlo testare. In conclusione, l'orientarmi verso la scelta tra numero di threads disponibili / velocità di clock mi rimane un po' difficile.

Posto che vorrei investire sui 1000 euro (+/- 250 euro) , mi stavo orientando per capire quale potesse essere la migliore configurazione per la mia necessità:
- Optare per una build usata con un i9 7980 XE, dato il numero elevato di cores e threads (18C/36T) rinunciando a efficienza energetica e a una ridotta velocità di clock a fronte di un maggior numero di threads (e quindi avere la possibilità di svolgere molte più analisi insieme).
- Optare per un nuovo i7 12700K (o F non K), orientandomi a una maggiore velocità di clock e maggiore efficienza energetica sacrificando 16T. Non so, inoltre, se un processore più moderno porti più vantaggi a livello di efficienza computazionale per motivi di maggiore efficenza di gestione delle task (che sto ipotizzando, in quanto a me oscuri) e/o librerie aggiornate per calcoli relativi ad algebra lineare e similari.

Spero di non essere stato eccessivamente prolisso.
Vi ringrazio in anticipo per il vostro aiuto.

P.S.
Ho già a disposizione SSD, Hard disk e alimentatore.
Il budget è da intendersi su mobo+CPU+ dissipatore +32/16Gb ram [a espandere in un secondo momento ci vuol poco]
 
Ultima modifica:

Ottoore

Utente Èlite
26,345
13,250
CPU
I7 2700K @4.7
Dissipatore
Noctua NH-D14
Scheda Madre
GA-Z77X-UD5H
HDD
Samsung 840 Pro 256 Gb+ Raid 0 WD RE4 500gb
RAM
Crucial Ballistix Tactical 2133 @9-9-9-27
GPU
Gtx 1060
Audio
Asus Essence ST+ Beyerdynamic 990pro
PSU
Evga g2 750w
Case
Cooler Master Haf XM
Periferiche
Varmilo Va87m + Razer DA
Net
Vdsl 200 Mbps
OS
Windows 7 64 bit
QUello che non hai considerato è il requisito di banda con 4-7 calcoli contemporanei.
Dovendo far di necessità virtù, con un budget differente potremmo pensare ad un'altra soluzione, puoi prendere il 12700 accoppiato a 2 moduli DDR5 ad alta velocità in modo da avvicinarti alla configurazione quad channel che ti garantirebbe un 10980xe o l'attuale esachannel 2666MT/s dello Xeon 6138.
 
  • Mi piace
Reazioni: Asuan

Er Barabba

Utente Èlite
4,550
1,590
CPU
i7 12700K @ Stock
Dissipatore
EK Velocity
Scheda Madre
Asus Z690 TUF Plus D4
HDD
Samsung 980pro
RAM
TridentZ 3600MHz CL15 4x8GB
GPU
RTX 3080 TUF OC
Monitor
Dell S3220DGF
PSU
RM850i
Case
FD Focus G custom
OS
Windows 11
Non credo che una CPU del 2017 sia una scelta sensata nonostante l'apparente dimostrazione di muscoli...
Se non hai fretta stanno uscendo propio in questo periodo le ultime generazione Intel e AMD, se invece hai fretta fra le due opzioni riportate è da prediligere senza dubbio il 12700k. La versione non K ha frequenze leggermente piu basse.
 
  • Mi piace
Reazioni: Asuan

Asuan

Nuovo Utente
50
3
CPU
Intel Schif 2000mila
GPU
GTX 1050Ti
Vi ringrazio per la celere risposta.
Ho visto che i nuovi Ryzen dovrebbero avere delle prestazioni esplosive, ma sono un po' perplesso per quanto riguarda la fattibilità in termini economici, visto che il prezzo delle mobo dovrebbe essere la nota dolente.

Per il 12700k+ mobo+ddr5 cosa suggerireste? (giusto per capire quanto andare oltre in termini di spesa)
E, per ultima cosa, avreste idea di un possibile piano C?
 

Ottoore

Utente Èlite
26,345
13,250
CPU
I7 2700K @4.7
Dissipatore
Noctua NH-D14
Scheda Madre
GA-Z77X-UD5H
HDD
Samsung 840 Pro 256 Gb+ Raid 0 WD RE4 500gb
RAM
Crucial Ballistix Tactical 2133 @9-9-9-27
GPU
Gtx 1060
Audio
Asus Essence ST+ Beyerdynamic 990pro
PSU
Evga g2 750w
Case
Cooler Master Haf XM
Periferiche
Varmilo Va87m + Razer DA
Net
Vdsl 200 Mbps
OS
Windows 7 64 bit
Ecco, quello che il 7980xe potrebbe aggiungere ad un 12700 sono le istruzioni avx-512. Non so se il tuo software ne faccia uso, è qualcosa che già hai sullo xeon.

Rimanendo sull'idea iniziale:
12700+Msi z690-a pro D5+ Patriot viper venom 6200MT/s 32gb.
Sono 930€.

Alternative nell'usato, piattaforme HEDT (come il 10980xe) o server sacrificando le prestazioni ST rispetto ad una piattaforma più recente.
Facendo invece una stima su AMD AM5: 600€ per un 7900x, 300 scheda madre, 300 ram.

edit: dimenticavo il dissi, siamo sui 100-120€.
 
  • Mi piace
Reazioni: Asuan

Asuan

Nuovo Utente
50
3
CPU
Intel Schif 2000mila
GPU
GTX 1050Ti
numpy dovrebbe utilizzarle
Ecco, quello che il 7980xe potrebbe aggiungere ad un 12700 sono le istruzioni avx-512. Non so se il tuo software ne faccia uso, è qualcosa che già hai sullo xeon.

Rimanendo sull'idea iniziale:
12700+Msi z690-a pro D5+ Patriot viper venom 6200MT/s 32gb.
Sono 930€.

Alternative nell'usato, piattaforme HEDT (come il 10980xe) o server sacrificando le prestazioni ST rispetto ad una piattaforma più recente.
Facendo invece una stima su AMD AM5: 600€ per un 7900x, 300 scheda madre, 300 ram.

edit: dimenticavo il dissi, siamo sui 100-120€.
Grazie per avermi fatto notare la questione delle istruzioni. È davvero un punto importante, che ho visto anche essere stato sfruttato per velocizzare pacchetti rilavanti come NumPy.

L'unica cosa che mi lascia un po' perplesso è il come mai una CPU progettata per avere 36T dovrebbe avere ingenti problemi con il requisito di banda. O meglio, se effettivamente quello sia un problema concreto con il volume di dati che usualmente analizzo o semplicemente più "potenziale".
Non vorrei assolutamente mettere in discussione quello che mi avete consigliato, poiché sono totalmente inesperto e qui per imparare. Tuttavia se riusciste a spiegarmi meglio la vostra perplessità in merito ve ne sarei grato.

Grazie ancora per le risposte, mi stanno aiutando a capire aspetti che non avevo considerato per mia ignoranza.
 

Ottoore

Utente Èlite
26,345
13,250
CPU
I7 2700K @4.7
Dissipatore
Noctua NH-D14
Scheda Madre
GA-Z77X-UD5H
HDD
Samsung 840 Pro 256 Gb+ Raid 0 WD RE4 500gb
RAM
Crucial Ballistix Tactical 2133 @9-9-9-27
GPU
Gtx 1060
Audio
Asus Essence ST+ Beyerdynamic 990pro
PSU
Evga g2 750w
Case
Cooler Master Haf XM
Periferiche
Varmilo Va87m + Razer DA
Net
Vdsl 200 Mbps
OS
Windows 7 64 bit
numpy dovrebbe utilizzarle

Grazie per avermi fatto notare la questione delle istruzioni. È davvero un punto importante, che ho visto anche essere stato sfruttato per velocizzare pacchetti rilavanti come NumPy.

L'unica cosa che mi lascia un po' perplesso è il come mai una CPU progettata per avere 36T dovrebbe avere ingenti problemi con il requisito di banda. O meglio, se effettivamente quello sia un problema concreto con il volume di dati che usualmente analizzo o semplicemente più "potenziale".
Non vorrei assolutamente mettere in discussione quello che mi avete consigliato, poiché sono totalmente inesperto e qui per imparare. Tuttavia se riusciste a spiegarmi meglio la vostra perplessità in merito ve ne sarei grato.

Grazie ancora per le risposte, mi stanno aiutando a capire aspetti che non avevo considerato per mia ignoranza.

Tutto dipende dal workload. Il 12700 è una cpu consumer, non nasce per quel tipo di utilizzo, i software che usiamo tutti i giorni non hanno una grande parallelizzazione e spesso la cache ricopre un ruolo più importante della ram. Basti pensare al salto quantico che abbiamo visto passando da Zen2 con 16MB di L3 cache per CCD ai 32MB di Zen3.
Dovendo fare calcoli in contemporanea, quindi dovendo continuamente fornire dati, penso che la banda abbia un ruolo importante. Tra l'altro, come dimostra Y-cruncher, l'utilizzo di istruzioni AVX-512 rende il tutto ancora più "bandwidth bound" a tal punto da divenire il vero collo di bottiglia con tutta la potenza di calcolo che ormai abbiamo.

Però questa è una considerazione generica: non so davvero come questo si ripercuota nel tuo specifico utilizzo.
 
Ultima modifica:
  • Mi piace
Reazioni: Asuan

Max(IT)

Moderatore
Staff Forum
Utente Èlite
26,765
14,513
CPU
Intel i7 13900K
Dissipatore
Arctic Freezer II 360
Scheda Madre
Asus ROG Strix Z690-E Gaming WiFi
HDD
Samsung 970EVO + 970 EVO Plus + 870 SSD
RAM
Kingston Fury Renegade 6400 CL32 32 GB
GPU
PNY RTX 4080 XLR8 OC
Monitor
Asus TUF VG27AQ1A + Samsung 24RG50
PSU
EVGA G6 850W
Case
Corsair 5000D Airflow
OS
WIndows 11
il numero di thread massimi di cui hai parlato non arriva neppure a saturare i 16 su P Core di un 12700, quindi non avrei dubbi sul puntare sulla soluzione più moderna piuttosto che su un vecchio HEDT.

Se AVX-512 è davvero un fattore, allora effettivamente un Ryzen 7000 potrebbe fare la differenza (anche se dobbiamo ancora valutarne l'efficacia).
 
  • Mi piace
Reazioni: Asuan

Asuan

Nuovo Utente
50
3
CPU
Intel Schif 2000mila
GPU
GTX 1050Ti
Vi ringrazio per le risposte.
Ho optato per un Ryzen 7900x e una msi pro x670P.
 
Ultima modifica:

Ottoore

Utente Èlite
26,345
13,250
CPU
I7 2700K @4.7
Dissipatore
Noctua NH-D14
Scheda Madre
GA-Z77X-UD5H
HDD
Samsung 840 Pro 256 Gb+ Raid 0 WD RE4 500gb
RAM
Crucial Ballistix Tactical 2133 @9-9-9-27
GPU
Gtx 1060
Audio
Asus Essence ST+ Beyerdynamic 990pro
PSU
Evga g2 750w
Case
Cooler Master Haf XM
Periferiche
Varmilo Va87m + Razer DA
Net
Vdsl 200 Mbps
OS
Windows 7 64 bit
Scelta interessante, mi raccomando facci sapere come va. Ciao.
 
  • Mi piace
Reazioni: Asuan

Max(IT)

Moderatore
Staff Forum
Utente Èlite
26,765
14,513
CPU
Intel i7 13900K
Dissipatore
Arctic Freezer II 360
Scheda Madre
Asus ROG Strix Z690-E Gaming WiFi
HDD
Samsung 970EVO + 970 EVO Plus + 870 SSD
RAM
Kingston Fury Renegade 6400 CL32 32 GB
GPU
PNY RTX 4080 XLR8 OC
Monitor
Asus TUF VG27AQ1A + Samsung 24RG50
PSU
EVGA G6 850W
Case
Corsair 5000D Airflow
OS
WIndows 11
Vi ringrazio per le risposte.
Ho optato per un Ryzen 7900x e una msi pro x670P.
Per il tuo tipo di workload, non puoi lasciare la CPU nel settaggio stock di AMD, perché possono raccontare quello che vogliono ma quelle temperature per tempo sostenuto non fanno bene al silicio.
Dovrai giocare con il PPT della CPU, abbassandolo magari intorno ai 110W, e dovresti ottenere una situazione accettabile.
 
  • Mi piace
Reazioni: Asuan

Asuan

Nuovo Utente
50
3
CPU
Intel Schif 2000mila
GPU
GTX 1050Ti
Per il tuo tipo di workload, non puoi lasciare la CPU nel settaggio stock di AMD, perché possono raccontare quello che vogliono ma quelle temperature per tempo sostenuto non fanno bene al silicio.
Dovrai giocare con il PPT della CPU, abbassandolo magari intorno ai 110W, e dovresti ottenere una situazione accettabile.
Grazie per esserti premurato di raccomandarmi attenzione su questo punto, suggerendomi una soluzione al problema.
Avevo letto qualcosa in merito e sicuramente testerò le temperature e le performance della CPU. Nella build, per quanto riguarda la soluzione di raffreddamento, ho ordinato un AIO 360 mm (deep cool castle) e un case Fractal Meshify M2.

Per quanto riguarda le RAM, ho cercato la soluzione suggerita da Ottoore nel contesto 12700k. Volevo chiedervi: può aver senso considerare ram con AMD EXPO? (anche se, non sono sicuro che al momento mi addentrerò nell'OC di qualsiasi componente... ma chi sa mai in futuro, visto che sto spendendo 300 euro in RAM). E, in generale, consigli per due banchi da 16GB? (voledo ho aperto una discussione della sezione appropriata, ma qui sicuramente c'è il contesto della build). Per il momento pensavo a delle Kingston fury renegade (KF560C32RSAK2-32)

Vi ringrazio
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!