I find myself with a rather peculiar problem, and I'd love anyone else's input on it.
I'm writing a piece of software for our core facility. Among the things it does is wrap up a bunch of unix commands into one atomic unit, handle their inputs and outputs, and keep track of all the files and commands involved in an SQLite database. The thing about bioinformatics is that a few of the operations (okay, one: sequence alignment) are computationally hard. It's the only reason anyone thinks the field isn't trivial. So we have a big Linux cluster next door running a batch submission system called LSF. You basically give it arguments the way you would an exec call, but instead of running it locally, it queues it on the cluster, runs it, does some tracking of it, and sends you an email when it's done. I want to take the local executions I'm doing and be able to submit them as batch jobs to the cluster instead. My initial idea was along these lines: 1. Create a temporary directory (the execution will have one anyway, just use that). The scratch space where I would do this is shared across the cluster. 3. Executions are wrapped in little language in my system, so have the macro instead create a uniquely named function to postpone the execution. 2. Dump an image of the current session into the temporary directory. 3. Submit a batch job to start Racket, load the dumped image, and run the postponed function. This is wasteful, but the waste is negligible compared to the size of the computing task that would usually be submitted this way. Unfortunately, I can't figure out how to dump images from Racket. Is it possible? Or am I having brain creep from Common Lisp? Or if anyone can think of a cleaner way to do this, I would really love to hear it. -- Frederick Ross Bioinformatics and Biostatistics Core Facility Life Sciences, EPFL http://bbcf.epfl.ch/ +41 21 693 14 39 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users