Sources I've found include:
• an extensive set of tutorials by Charles Parnot at Macresearch
• a earlier tutorial by Drew McCormack
• Apple docs (guide and update)
• an article at Mac OS X hints (link)
From what I can tell, all the technology to do this is available with a standard OS X installation, it just doesn't have a pretty, time-saving GUI. First, some terminology. We have a:
• Client---originates the request for a job
• Controller---maintains a queue of jobs and distrbutes them to
• Agents---receive individual jobs and return results
In a high-class setup the Controller would run Server, in this exploration, my MacBook will play all three roles.
I would have liked to follow the Parnot tutorial exactly, but he provides software to set up the controller that isn't explained. Since they are not scripts, there wasn't a way for me to take them apart and see what they do. (And since they're Tiger, who knows if they'll still work?)
Let's try to do it ourselves. The first issue to deal with is the firewall. As described (here and here), Xgrid uses certain ports for communication (
Next, set up Xgrid Sharing in System Prefs: under Configure... use localhost as the controller, and set always accept tasks. In the main window, I set Computer Name: localhost. Set a password.
It's not really clear to me what we are setting here. In the small, inner window, it feels like we're doing Client settings, while in the big window, we're doing Agent settings. The password is what the Controller will use to authenticate with us when it sends us a job.
In the second comment to this installment of the tutorial, there is a suggestion to copy the stored hashes of passwords around. I did this on my first attempts, and have not yet tested whether it's necessary.
As you can see from the structure and filenames below, agent has a controller-password, which contains the password that we set in System Prefs. We're copying that file (even though it is not text but a hash) to the controller for use as both the client-password and the agent-password.
The commenter recommends that we do this in Terminal:
We'll use the same password to authenticate (as Client) to the Controller.
Now, it's just a few more commands in Terminal. Start up the daemon:
This gives me an output of 6 warnings and failures including
Hmm... Well, let's try anyway. Start the controller:
You can check its status:
And now we can either "submit" (asynchronous) or "run" a job (substitute the password you used in System Prefs).
With "run" you get back results (almost) immediately, and with "submit" you should get back something like this:
And finally:
My most pressing need is the firewall, I want to open only those ports that are necessary, and preferably only to Xgrid.
According to the macosxhints article, you can turn off authentication by modifying
/Library/Preferences/com.apple.xgrid.controller.plist
AgentAuthentication = None
ClientAuthentication = None
Now it's time to work through the tutorials step by step.
I also downloaded the server admin tools as described but I haven't used them yet. And there is a "goodies" page on Parnot's site at Stanford, which looks promising. And finally, there is the Apple x-grid users Mailing List. For example, this advice might fix some of the warnings I got when starting up the daemon.
Baby steps.