While testing out some home automation code on my Raspberry Pi I noticed it was pretty CPU intensive. Time to bump up the overclock to squeeze more performance out of the Broadcom Arm7 processor. I wanted to keep an eye on temps as well as stability under full load so I needed to simulate CPU usage.
This small Python script will do the job. It uses the multiprocessing library which you can read more about here.
#!/usr/bin/env python """ Produces load on all available CPU cores Updated with suggestion to prevent Zombie processes Linted for Python 3 Source: insaner @ https://danielflannery.ie/simulate-cpu-load-with-python/#comment-34130 """ from multiprocessing import Pool from multiprocessing import cpu_count import signal stop_loop = 0 def exit_chld(x, y): global stop_loop stop_loop = 1 def f(x): global stop_loop while not stop_loop: x*x signal.signal(signal.SIGINT, exit_chld) if __name__ == '__main__': processes = cpu_count() print('-' * 20) print('Running load on CPU(s)') print('Utilizing %d cores' % processes) print('-' * 20) pool = Pool(processes) pool.map(f, range(processes))
This will utilize each CPU core and produce ~100% load with the while loops calculation.
-------------------- Running load on CPU(s) Utilizing 8 cores --------------------