StarCluster - Mailing List Archive

Re: [Starcluster] [newb] support c modules?

From: Dan Yamins <no email>
Date: Fri, 28 May 2010 11:01:50 -0400

On Fri, May 28, 2010 at 9:21 AM, Neal Becker <> wrote:
Total newb here. I don't support I can add my own custom C modules?


If you mean, compile your own packages on the machine(s) that in a cluster,
you definitely can. Here are some options you have:

1) make a new amazon Machine Instance. Amazon machine instances (AMIs) are
one of the main features of the underlying technology. The basic process
for making an AMI with your custom software is this:
  -- boot up an instance of the existing machine instance that comes with
starcluster -- but NOT as part of a cluster using the starcluster start
command -- just as a standalone instance, say, by using Elasticfox.
  -- install the packages you want.
  -- create an AMI from the running instance by using the starcluster
createimage command with appropriate arguments (run from your local

The process is very easy, but the last step takes a long time to complete
--- so it's not something one does all the time. One does this, say at the
beginning of a projec twhen one has a number of modules to add that iwll be
useful for an extended period of time.

2) Just compile on the running cluster. You can of course just install C
packages (or any other binaries) on a running cluster and they will work --
but just for that instance, and you'll have to repeat the process when you
start a new cluster.

3) Compile binaries on an EBS volume and link to those. Depending on your
modules' configuration needs, you might be able to compile it in a directory
on an attached EBS volume and link to those binaries from whatever
application is using your C module. Of course, this might not work if you
need to have compile things in particular locations (/usr/local or
whatever), and depends on the specific EBS volume being attached whenever
the package is needed ... but it might be easier.

4) Use a plugin. Starcluster comes with the idea of a "plugin" --- a piece
of python code that is run after each cluster starts up. This code can
written to do anything -- for instance, download and install your C
module. If the compilation process isn't that long, this might be a good
option too. See

I think this covers most options.


Received on Fri May 28 2010 - 11:01:51 EDT
This archive was generated by hypermail 2.3.0.


Sort all by: