La CPU ad alta intensità di CPU con thread multipli gestisce la CPU prima dei limiti di temperatura

22

Ho scritto un'attività con thread molto intensivo della CPU che funziona come previsto sul mio quad core MacBook Pro 2012. Lo spengo con 20 fili e le temperature salgono a circa 100 ° C come misurato con Intel Power Gadget con una regolazione minima.

Portare lo stesso programma e i file di dati sul mio MacBook Pro 2016 13 "con una macchina dual core e avviarlo, mi aspetto che continui anche sui 3.3-3.4 GHz finché la temperatura non si avvicina ai 100 ° Segno C. Il comando in alto mostra il compito al 350% (2 core ogni doppio thread), ma la frequenza della CPU viene tagliata a 1,6-1-8 GHz con la temperatura solo a 60 ° C o giù di lì con i ventilatori morti. avvia 4 task CPU separati a thread singolo, la macchina si comporta come previsto mantenendo il 3.3-3.4 GHz fino a quando non raggiunge i 100 ° C e le ventole si avviano. La domanda è: perché la mia CPU viene rallentata?

Entrambe le macchine sono aggiornate e utilizzano le stesse versioni di gcc. Se prendo il binario dalla macchina funzionante e lo metto nel Mac 2016, ha lo stesso problema.

Se eseguo 3 o 4 thread singoli della CPU in modo che la macchina funzioni a piena velocità, quindi avvia il programma filettato, rallenta anche la frequenza.

Entrambe le macchine hanno 16 GB di RAM.

Modifica

Dopo aver giocato con il codice, ho il sospetto che si stia riducendo quando un'attività crea troppi thread. In questo programma, prendo ogni record che leggo e creo un thread per questo. Ho lasciato passare solo 20 thread alla volta, quindi in nessun momento ci sono più di 21 thread, ma ci sono 14.400.000 record da elaborare, quindi nei 30 minuti circa ognuno di questi record verrà elaborato da un thread separato. / p>

Ho creato un banale programma pthread che ha risucchiato il tempo della CPU e ne ha impostati 10 in esecuzione. Il problema con il laptop è stato eseguito e riscaldato fino a 95C senza problemi.

Credo che riscriverò il mio codice per riutilizzare lo stesso thread invece di distruggerli e avviarli di nuovo.

Aggiornamento 5/13/17

Dopo diverse ore di lavoro, ora crea solo n thread e li riutilizza solo, che non ha aiutato. A parte la temperatura della CPU, cosa causerà il rallentamento della macchina?

    
posta markatlnk 04.05.2017 - 03:09
fonte

4 risposte

1

Potrebbe essere una longshot, ma forse la differenza tra prestazioni single-core e / o prestazioni della cache tra i pacchetti cpu del 2012 e del 2016 sono abbastanza grandi da far sì che i core siano affamati di dati e rallentino fino a quando non riescono a funzionare di nuovo ?

Sto facendo questa ipotesi perché tu indichi che un numero sufficiente di processi a thread singolo può funzionare a piena velocità su tutti i core, e un semplice programma multi-thread può funzionare a piena velocità su tutti i core.

Questo mi fa pensare che ci sia qualcosa nella progettazione del tuo vero carico di lavoro rispetto al carico di lavoro multi-thread di prova che non consente alle CPU di funzionare sempre

    
risposta data 12.06.2018 - 16:35
fonte
0

L'estensione del kernel /System/Library/Extensions/AppleACPIPlatform.kext controlla un sacco di temperature e protezioni della CPU. È già compilato, ovviamente, sul tuo sistema, ma potrebbe essere disponibile su link (non riesco a trovarlo, ma l'ho dato solo un rapido sguardo). Non mi sorprenderebbe se Apple avesse impostazioni molto conservative sulla capacità della CPU.

    
risposta data 22.12.2017 - 04:23
fonte
0

Ogni volta che il sistema operativo riconosce che i thread sono imprevedibili e fuori controllo, si ridurrà al minimo per rimanere stabile nell'hardware e nel sistema, il modello 2012 si comporta in modo diverso e potrebbe bloccarsi nel peggiore dei casi. Mi è capitato di avere un controllo del thread mal implementato, colpa mia. Non eseguire più thread su un dual core.

    
risposta data 08.03.2018 - 17:13
fonte
-3

Mi è capitato di avere un controllo del thread mal implementato, colpa mia. Non eseguire troppi thread su una CPU dual core.

    
risposta data 20.05.2018 - 18:29
fonte

Leggi altre domande sui tag