🛠 Surveiller température et fréquence sous charge quad-core

Raspberry Pi 2 Model B (2015) — Fiche carte · avance · Schéma : IMG-model-2b-avance-2-model2b-thermique.svg — les 4 cœurs Cortex-A7 du Pi 2 en charge, sonde de température affichant le seuil de throttling à 85 °C et courbe de fréquence qui plafonne

Objectifs

Le Pi 2 est le premier Raspberry Pi quad-core : ses 4 Cortex-A7 à 900 MHz chauffent plus que le Pi 1 et throttlent au-delà de 85 °C (ou en cas de sous-tension). Ce tuto t'apprend à mesurer température, fréquence et drapeaux de bridage avec vcgencmd, à charger les quatre cœurs avec un test multiprocessing, et à interpréter le bitmap get_throttled.

Matériel

Code complet

# Suivi temps reel : temperature + frequency + état de bridage
watch -n 1 'vcgencmd measure_temp; vcgencmd measure_clock arm; vcgencmd get_throttled'
#!/usr/bin/env python3
"""burn.py — teste les 4 cœurs : serial vs parallel (Pi 2 quad-core)."""
import multiprocessing as mp
import time

def burn(n):
    x = 0
    for i in range(n):
        x += i * i
    return x

if __name__ == "__main__":
    jobs = [20_000_000] * 4
    t0 = time.time
    for _ in map(burn, jobs):                 # reference serielle
        pass
    serial = time.time - t0
    t0 = time.time
    with mp.Pool(4) as pool:                  # 4 cœurs, 1 tâche chacun
        pool.map(burn, jobs)
    parallel = time.time - t0
    print(f"serial {serial:.1f}s vs parallel {parallel:.1f}s "
          f"(speedup {serial/parallel:.1f}x on {mp.cpu_count} cores)")

Vérification attendue

Au repos : ~40-45 °C, clock à 900000000 Hz, get_throttled = 0x0. En plein burn quad-core : la température grimpe ; si elle atteint 85 °C, measure_clock chute sous 900 MHz et get_throttled affiche 0x2 (bridage thermique). Un 0x1 ou 0x5 signale une sous-tension : change d'alimentation avant de incriminer le refroidissement. Le speedup parallèle doit approcher 3-4×.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels