Mac OS tips and software

My Mac OS X Software

Other Useful software

Tips

Setting up a Local Xgrid

To set up a local xgrid (and thus let Mac OS handle job management for your large simulations, etc.) , follow the directions described here

In particular, that means (after you have downloaded the Xgrid Admin tools, and also set a local xgrid controller password in System Preferences):
sudo cp /etc/xgrid/agent/controller-password /etc/xgrid/controller/client-password
sudo cp /etc/xgrid/agent/controller-password /etc/xgrid/controller/agent-password
sudo /usr/libexec/xgrid/xgridcontrollerd
or possibly just use 'sudo xgridctl controller start' instead of that last step; I'm not quite sure the difference. Then you can submit jobs using e.g. xgrid -h 127.0.0.1 -p your_password -job submit /usr/bin/cal.

By default, xgrid assumes that all jobs are single-threaded. Thus a multi-core CPU will accept up to as many jobs as it has CPUs. If you are distributing multi-threaded jobs and want each machine to only take one job at a time, then you want to edit /Library/Preferences/com.apple.xgrid.agent.plist and set

MaximumTaskCount=1
So says the xgrid server manual. This is a per-agent setting, and is not something you can specify on a job-by-job basis (too bad). If you want to change it, you have to edit the plist file, then do (as root) xgridctl agent stop; xgridctl agent start.

Next issue: The Sandbox. By default, Leopard runs xgrid tasks in a very restricted sandbox for file permissions. The default settings hide all of /Users from xgrid jobs, which will probably prevent your code from running. To fix this, you will have to edit the sandbox configuration files, as described here and also here. Kerberos is one way to get around this, but otherwise it's probably easiest to just edit the sandbox files for user nobody.

You can download Apple's official Xgrid Server Manual from here (note: large-ish PDF file).