Prevent Mac from Falling Asleep While Running MATLAB Code

18 visualizaciones (últimos 30 días)
Miles
Miles el 12 de Oct. de 2015
Comentada: Walter Roberson el 11 de Feb. de 2017
I'm looking to run a MATLAB script overnight that takes hours to run, but the problem is that my laptop falls asleep during that timeframe. I would like to add a line to the top of my script to tell my computer to disable sleep mode and then a line at the bottom of my script to enable sleep mode so that my computer isn't awake all night. I thought it might work to add system('caffeinate') at the top and system('killall caffeinate') at the bottom, but it gets hung up on the first command and doesn't run my code. Does anybody have a solution for this? I'm currently running MATLAB R2015a on OS X 10.10.5. Thanks for the help!

Respuestas (2)

ptorab
ptorab el 11 de Feb. de 2017
This is really a MATLAB OS X bug; MATLAB needs to send frequent PM assertions to OS X while it is running to prevent it from going sleep. Apple seems to have changed the logic of going to sleep to something that no longer depends on CPU or disk activity, but explicit power assertions from applications.
  1 comentario
Walter Roberson
Walter Roberson el 11 de Feb. de 2017
Hmmmm. There is not much hope that it would send power assertions while it is calling into MKL or LINPACK or BLAS to do extensive computations.

Iniciar sesión para comentar.


Kelly Kearney
Kelly Kearney el 12 de Oct. de 2015
I've never used caffeinate, so I'm not entirely sure how the command works (though it looks like a good one to know, so thanks for the reference!). However, it looks like calling it without any inputs causes it to wait for a response, which is why Matlab never moves on to the next command. Perhaps try running it in the background?
system('caffeinate &');
  1 comentario
Miles
Miles el 12 de Oct. de 2015
Thanks for the quick response, that appears to make caffeinate work. Based on the documentation of caffeinate here, which arguments should I pass through to make sure my code doesn't stop? Would
system('caffeinate -dims &');
be the best implementation of this code?

Iniciar sesión para comentar.

Categorías

Más información sobre App Building en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by