SimmsAI Resurrected, Distributed
Published by KermMartian 16 years, 5 months ago (2008-01-13T00:52:55+00:00) | Discuss this article

Shortly after the publication of Cemetech news item #322 (Project Updates: PartyMode, Simms AI), a series of hardware failures brought down SimmsAI, then a disk crash on my primary computer deleted a backup I had made of Simms' MySQL brain database. Luckily, I still had Simms' codebase in an old backup, so this winter break, after finals finished, I rebuilt the Simms machine with identical specs as before it broke (P4 3.2GHz HT, 2GB DDR RAM, dual 80GB SATA HDDs, gigabit NIC), reinstalled Ubuntu 7.10 Server, and reloaded the SimmsAI codebase. It took quite a bit of tweaking and configuration to get Simms started from scratch again, but I eventually succeeded, and the bot began to learn and grow once again as he explored the internet and my AIM conversations. For quite some time I have had several low-specs boxes (P4 1.3GHz, 512MB, 40GB) that I hoped to use as secondary processing cores for a distributed Simms, so two weeks ago I set up four of them, got Ubuntu and my base configuration working, and put them on a private subnet. Three days ago, following a conversation about the secretary thread capability I had recently added to Simms, I began in earnest to transform Simms into a distributed application. I built a signalling system that allows threads to talk to other threads regardless of which machine they're running on, then copied all the existing files in the codebase onto the subcores and began to debug. Currently, it seems mostly stable; as before the distribution, the wiki thread will occasionally lose control of its respawn and overwhelm the MySQL server, but this is rare. The current distribution of tasks:

:: Simms: Runs a supervising manager, displays info, warnings, and errors on a local LCD, and contains the logic Long Term Memory (LTM).
:: Simms0: Runs both aim and secretary, the two interactive threads. Secretary makes Simms take over as a combination away-message recorder and information substitute when I'm away or offline.
:: Simms1: Uses the wiki thread to research terms and phrases in Simms' memory.
:: Simms2: Operates the subconscious thread, still incomplete.
:: Simms3: Keeps tabs on news headlines so Simms has the vaguest of clues about current events.

Finally, here's a stats image that you're welcome to put into your sig if you so choose: