Might Mavericks interfere with long computations?
I sometimes need to run very long computations on my computer (usually using code I wrote myself, sometimes compiled, sometimes interpreted), which can take minutes, hours, or even days to complete. OS X Mavericks incorporates several features that are designed to minimize energy usage, such as App Nap and timer coalescing. If I were designing such a feature, I would be skeptical of a process that was still requesting maximum CPU usage after running for days; even if this process was started by a user action, that action was days ago. But as a user, I actually do want such computations to run to completion with high priority, even though they are usually running in the background.
Is there any possibility that my extended computations would be slowed down by the power-saving features of Mavericks?
Solution 1:
According to the Apple Developer documentation (and Core Technologies Overview for Mavericks), App Nap can be opted out by either an Application developer or a user, but by default are active.
For a GUI application, the user can opt an application out of App Nap manually with a checkbox in the Finder “Get Info...” pane.
Timer Coalescing only becomes active when on battery power, so it should not affect your long running background processes.
Finally, you can check on the status of App Nap in the Activity Monitor. On the Energy Tab, there is a column describing App Nap status for each application, so if policies change, you can check actual status here.
Solution 2:
Mavericks (10.9.2) interfers heavily with the on-going processes. Because it is designed for the average user, and not for the engineer running days long analyses.
I am a Matlab user, and using a MBP beast to analyze data on a daily basis. Sometimes these may take as long as few days. My experiences are as follows:
1/ App Nap doesn't interfere with my running analyses.
2/ Switching user accounts and then coming back to the account where the analyses are running heavily interferes with the processes. For example, when I have 5 Matlabs open and running analyses, switching to another user account leaving these analyses on the background has an impact on the performance. More interestingly, when I come back to the account where these analyses are running, the processes lose their priority. And using the "renice -20 PID" command cannot bring these processes to a higher priority level.
3/ I also observed that the lock screen also interferes with the running analyses. In such a way that after unlocking the screen I realized tgat the process priorities were different.
Best Practice so far:
When starting an analysis, never ever interrupt it until it finishes.
Proposed Solution:
Maverick Server, which is designed to run simultaneous processes in parallel, might be much better suited for such computational heavy user profiles. It is unfortunately not free...