Quanti cores?

megashark

Nuovo Utente
104
4
:ciaociao:Ciao,
Apple non ha risultati enormi sul multi-core, ha invece risultati eccellenti nel single core...
E viene la domanda quale dei due è meglio? Single-core? Credo di sì... Ma cercando non sono riuscito a trovare una lista delle app (tra le più famose, anche giochi) che usano single o multi core... :retard:
Sapete dirmi dove trovare qualcosa del genere? Grazie:sisi:
 

megashark

Nuovo Utente
104
4
ti consiglio di cercare l'articolo "The Mobile CPU Core-Count Debate", su un sito estero.... @Francomoh mi dai il permesso di linkarlo direttamente? non so se si può fare, per questo chiedo...

cmq dall'esame svolto in quell'articolo appaiono chiari alcuni fatti:
1) lo scheduler di android è molto bravo a gestire il parallelismo
2) applicazioni che fanno maggior uso del parallelismo sono il browser e gli update del playstore
3) i big cores vengono attivati principlamente in situazioni pesanti come il lancio di app e per gestire i calcoli complessi di alcune applicazioni (i giochi mantengono sempre un core "big" attivo quasi al massimo della frequenza, coadiuvato da una manciata di core "LITTLE").

personalmente, al di là delle conclusioni dell'autore, mi sarebbe piaciuto vedere prima uno stesso test eseguito su un modello dotato ad esempio di SoC MT6795 (8 cores tutti A53) e Snapdragon 801/805 (4 cores krait). Mi sarei risparmiato un giudizio solo dopo una diretta comparazione... questo perchè il test in questione non tiene conto di 2 fattori importantissimi: la capacità di elaborazione di ciascun core ed il consumo relativo.
OK, vedo che sei esperto, io non sono comunque così puntiglioso, mi interessava sapere in quali app è meglio S6 e in quali l' iPhone 6:birra:
 

Francomoh

UTENTE LEGGENDARIO
Utente Èlite
13,441
4,560
CPU
Intel I7 2600K @ 4.4 Ghz
Dissipatore
Cooler Master 612s Rev.2
Scheda Madre
Gigabyte Z68XP UD5
HDD
Crucial MX300 525gb + Western Digital Caviar Blue 1Tb + 2 Western Digital Caviar Green 500Gb
RAM
G Skill Ripjaws X 8 GB
GPU
Asus Strix GTX 970
Audio
Asus Xonar DG + Denon RCD-M40 + Q Acoustics 2020i + Jamo Sub 210
Monitor
Asus VS228HR
PSU
FSP AURUM S 500
Case
CoolerMaster HAF 912 Plus
Periferiche
Mionix Naos QG
OS
Windows 7 Pro 64 bit
ti consiglio di cercare l'articolo "The Mobile CPU Core-Count Debate", su un sito estero.... @Francomoh mi dai il permesso di linkarlo direttamente? non so se si può fare, per questo chiedo...

Concesso :sisi:
 

Motoretta

Utente Attivo
337
29
Chiedo, attualmente per android e ios non esistono giochi che offrono una grafica avanzata tale da richiedere una potenza di calcolo elevata.

generalmente sono app che girano su più dispositivi, fatti da diversi processori, dal single core al deca core, diversi quantitativi di ram, tipologie di ram, risoluzioni diverse e quindi non sfruttano appieno il potenziale di un dispositivo di alta fascia che magari ha un hardware potente.

a tale proposito mi chiedo che senso abbia avere tanti core se le app non nascono per sfruttarne i vantaggi.

tu cosa concepiresti per ottenere la massima prestazione, pochi core ma potenti o molti core ciascuno poco potente?
 

Motoretta

Utente Attivo
337
29
forse questo concetto non è stato chiarito bene...

In via teorica puoi raggiungere lo stesso livello di performance sia con pochi core che con molti.
In pratica è più semplice farlo con meno core.
Se la tua domanda riguarda la supremazia Apple vs Android sappi che il chip A9 di Apple è progettato specificatamente per IOS (e viceversa), ipotizzando di poter usare Android su un Iphone 6S questo andrebbe molto peggio di un Nexus 5 (vecchio modello) ad esempio. Proprio perchè verrebbe meno quella "catena di montaggio dei processi", frutto della sinergia tra l'architettura twister dell'APPLE A9 e del kernel di IOS.
Quindi, mi fermo solo alla considerazione sulle performance, non faccio considerazioni economiche o di complessità, l'apple A9 non è in assoluto superiore agli snapdragon o ai mediatek, ecc... lo è in quanto utilizzato in abbinamento ad IOS.

No, il mio discorso non è su chi va meglio, il mio discorso è:"le app di android e ios nascono, si dice, per sfruttare un single core, ha senso avere tanti core se una app non ne prevede l'utilizzo?".
 

Motoretta

Utente Attivo
337
29
dove sta scritto che non viene previsto l'utilizzo? Hai letto attentamente i miei post oppure hai provato a cercare su google articoli a riguardo (come quello che ho riportato di anandtech, e ce ne sono anche molti altri...)?

Anche se tali APP non sono scritte in modo specifico per essere multi threaded è lo stesso scheduler di Android che riesce a spezzare alcuni calcoli su più processi, allocandoli a diversi core.
Su IOS questo non esiste proprio, perchè utilizza una strategia diversa.

Ovviamente cerco di raccogliere maggiori informazioni da chi ne sa più di me.

se una app non è fatta per girare su più core tu puoi anche spezzarne alcuni calcoli ma non sfrutterai mai il potenziale dei multi core.

bisognerebbe sviluppare una app fatta per il multi core in modo da sfruttarne appieno il potenziale.

se lo sai mi puoi indicare alcune app appositamente sviluppate per il multi core?
 

Motoretta

Utente Attivo
337
29
mi sembra di averlo detto che l'efficienza non sarà mai la stessa...

se vuoi un esempio iniziamo con il dire che tutti i browser sfruttano appieno le potenzialità di un SoC multicore (utilizzano tutti i core disponibili),,,

Mi puoi fare alcuni esempi di app che non siano browser?

intendo proprio il nome delle app così provo a fare una comparazione.
 

Motoretta

Utente Attivo
337
29
nessuna altra tipologia di APP (eccetto i bench oppure il sistema stesso in particolari situazioni, come l'update di sistema o delle APP) riesce ad utilizzare appieno TUTTI i core di sistema.

tuttavia questo non vuol dire che i core extra rimarranno sempre in idle, siccome vi sono sempre diversi processi in background i core inutilizzati si occuperanno di questi, oppure sostituiranno priodicamente i core in LOAD per contenere le temperature sotto certi limiti.
anche in questo si vede la differenza tra l'approccio di apple e google.... in android viene utilizzato un sistema "industriale" con turnazioni 8-8-8... nel momento in cui il sistema ha necessità di una maggiore forza lavoro chiede ai propri core di fare "gli straordinari" oppure assume personale con contratto a scadenza (i core normalmente in idle).
IOS invece utilizza un sistema "schiavista" i core lavorano sempre a ritmo serratissimo, devono gestire non solo il processo principale, ma anche quelli in BG (infatti appple cerca sempre di alleviare il lavoro dei due core, ad esempio curando particolarmente i coprocessori)... per far questo la "fabbrica" impone ai propri operai dei turni sfrenanti 24/7, senza pause nè per andare in bagno, nè per pranzare.

Quel che conta è arrivare allo stesso risultato...

Quindi se ho capito bene non esistono app native multi core a parte i browsero o i benchmark?

Peró anche gli 8 core o i 10 core alla fine sono 4+4 e 4+4+2.

che senso ha avere 8 core o 10 core se non li sfrutti tutti.

da quel che ho capito tutti non funzionano insieme.
 

Cicileo

Utente Èlite
4,956
955
CPU
Intel i5 2300 + CM Hyper 212+
Scheda Madre
Asrock Z77 Pro4-M
HDD
Bassacuda 1Tb + (2x500Gb Raid1)
RAM
Corsair Vengeance 2x4GB 1600Mhz LP
GPU
Integrata Intel (._.)
Monitor
Dell U2312HM
PSU
XFX 550W Core edition
Case
Aplus Seenium
OS
Windows 7 (64bit)
Quindi se ho capito bene non esistono app native multi core a parte i browsero o i benchmark?

Peró anche gli 8 core o i 10 core alla fine sono 4+4 e 4+4+2.

che senso ha avere 8 core o 10 core se non li sfrutti tutti.

da quel che ho capito tutti non funzionano insieme.


Tutto corretto quanto dice il buon @Kenny90

A cellulare acceso hai una serie di processi in background che "girano". Per esempio il servizio che tiene il cellulare connesso alla rete WiFi, quello che commuta la rete mobile da 2G a 3G a LTE... Il garbage collector che sta li a controllare e a pulire la ram... insomma ci sono dei servizi che girano sotto... questi ovviamente nascono per essere leggeri e snelli per non appesantire il sistema...

Nel momento in cui sblocchi il cellulare e tocchi lo schermo automaticamente dai "sfrucugliando" qualche core che dovrà gestire i tuoi tocchi e eseguire ciò che fai... anche solo far girare il launcher...

Le singole app non sfruttano i multi core... per il semplice fatto che programmare in multithreads è un bagno di sangue sui PC... figurati suoi cellulari... forse gli unici parallelismi gestiti sono la connessione dati in parallelo al gioco per esempio... o magari FB che fa prefech dei dati mentre leggi un post per portarsi avanti... ma nulla di complesso. Il multi core ideale consiste nel riuscire ad applicare il concetto di "divide ed impera" al software. Quindi dividere il programma in sotto programmi e riuscire a mandarli in esecuzione in parallelo (non dividerli in pezzi da mandare su più core e poi aspettare comunque che vengano processati in serie) e quando tutti i pezzi sono pronti ed elaborati metterli insieme per ottenere il risultato. In un mondo ideale vorrebbe dire che un programma che impiega 4 minuti... con 4 cores basterebbero poco più di un minuto... a ciò non avviene... perchè questo tipo di programmazione molto efficiente è anche molto complessa e "costosa"... meglio mettere i comandi in fila e via... invece che in parallelo...

Quando possono servire avere tanti cores? Quando si hanno tante app che girano in background con tanti servizi attivi e se ne avviano altre e altre ancora... e si vuole avere un cellulare sempre reattivo... con tanti cores dovresti avere la garanzia di trovare sempre qualcuno "libero per servirti".

Il problema è che avere tanti cores vuol dire avere un chip affamato di risorse (corrente) e generatore di calore... e allora come si fa? Prima di tutto abbassiamo i clock (se noti i 8 cores non raggiungono i clock dei 4 cores) e depotenziamo un po' l'architettura in modo che scaldino meno... e se possibile cerchiamo di far andare sempre i piccoli e raramente i grandi. Inoltre c'è il problema della complessità del governor che deve essere ottimizzato come si deve per sfruttare bene il tutto...
Sono davvero tanti compromessi da accettare... per avere 8 cores... a questo punto... servono davvero 8 cores se i 4 grossi sono spesso parcheggiati e castrati e si fanno lavorare sempre i 4 piccoli? Secondo me NO! Ma è un parere personale... Se bastanno davvero 4 piccoli a fare tutto e ogni tanto uno o due grossi... mettiamone 4 e basta... no?

Per me bastano 4 cores soli con un buon IPS e si sta tranquilli...
 
Ultima modifica:
  • Mi piace
Reazioni: Kenny90

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili