Three mini-utilities to manage computing resources

Julia is quite greedy for computing resources: processor cores, physical memory and time. When using all three intensively, for example in Machine Learning, it is useful to be able to implement fine control. Watch core temperatures, memory availability and task completion as heavy computation proceeds calling on Linux utilities: free, watch, sensors and flite. Please see https://github.com/colbec/juliacon2021poster for working detail.


Machine learning can be quite demanding on computing resources. If users worry about processor core temperatures getting too high or not being aware when a long process finishes so that others may be started with new information, we can get the computer to take action. In particular while a computer may be able to use a swap drive when physical memory is fully utilized if this event happens it can take a long time to regain control of the machine. Better to run checks at appropriate moments to avoid problems rather than have them happen.

Linux (and other OS as well I am sure) offer utilities that can help. In Flux we can bury a check for core temperatures and memory availability in the callback to the train!() function. And then at appropriate moments we can have the computer announce that a task has finished or that the exception side of a try block has been entered.

Use Julia run() function to call on bash utilities free, watch sensors and use the sound system through flite to alert users to events. Talk to be backed up with github repository of examples.

Please see https://github.com/colbec/juliacon2021poster for working detail