[StarCluster] newbie problems

Justin Riley jtriley at MIT.EDU
Thu May 17 17:23:01 EDT 2012


Hi Manal,

On Thu, May 17, 2012 at 02:02:04AM +1000, Manal Helal wrote:
>    I am trying to run a graphics processing packages on the GPU cluster
>    instance, and will need to download VisualSFM, meshlab, ffmpeg before I
>    start. I will start only one instance in the region us-east-1 from the
>    instance type "cg1.4xlarge" using the image id "ami-999d49f0" which
>    is starcluster-base-ubuntu-11.10-x86_64 (EBS). I am not sure if this image
>    already has EBS volume mounted in it

None of the StarCluster AMIs mount EBS volumes by default. In general
attaching and mounting EBS volumes must be done *after* launching an AMI
and *not* before creating an AMI. StarCluster does, however, support
attaching, mounting, and NFS-sharing a given EBS volume when creating a
new cluster:

http://web.mit.edu/star/cluster/docs/latest/manual/volumes.html

>    I am planning that once I start the cluster, I download what I need using
>    wget, and apt-get to install and configure all dependencies to the GPU
>    cluster hardware. I am afraid I have a long list of dependencies, but with
>    lapack and CUDA already installed in the image, I hope I won't suffer the
>    way I suffered to get these packages on my local machine.

Yes BLAS/ATLAS/LAPACK and CUDA are all installed on the StarCluster HVM
AMIs. If you need additional software on the AMI I would recommend
rebundling the StarCluster HVM AMI using the *ebsimage* command:

http://web.mit.edu/star/cluster/docs/latest/manual/create_new_ami.html

Follow the instructions in the above doc to launch an 'image host'
instance from the StarCluster GPU AMI "ami-999d49f0", then login to the
instance, install your dependencies, and then use the "ebsimage" command
to bundle the running 'image host' instance as a new AMI.

>    My questions are:
>    1. Is EBS already attached to this image, or do I need to attach it using
>    the config file? I tried to uncomment the sections in the config file, and
>    I ended up with this error:
>    !!! ERROR - volume 'sfmdata
>    [volume sfmdata]
>    VOLUME_ID = vol-c999999
>    MOUNT_PATH = /home' not defined in config
>    So having an ebs already in the ubunto image I am using doesn't require
>    further editing in the config file, nor using the command:
>    starcluster ebsimage i-9999999 my-new-image
>    if so, where is the already exising ebs mounted?

You need to define your external EBS volume in the config file and then
update your cluster config to attach, mount, and NFS-share the EBS
volume when creating a new cluster. Read this doc for full details:

http://web.mit.edu/star/cluster/docs/latest/manual/volumes.html

If you don't have any external EBS volumes you can create one using:

http://web.mit.edu/star/cluster/docs/latest/manual/volumes.html#create-and-format-a-new-ebs-volume

>    2. Is having the base AMI defined in the config file, instance type and
>    number of instances (cluster size), and region, …. etc in the config
>    file, and the previous point become clear as EBS is already included in
>    this image or need to be defined in the config file, do I start the
>    cluster by this command:
>    starcluster start imagehost
>    or as a full command as defined in this page:
>    [1]http://web.mit.edu/star/cluster/docs/latest/manual/create_new_ami.html
>    such as:
>    starcluster start -o -s 1 -i <INSTANCE-TYPE> -n <BASE-AMI-ID> imagehost
>    then create a new EBS using:
>    starcluster ebsimage i-9999999 my-new-image

That doc outlines how to start a 1-node cluster for the purposes of
creating a new AMI. In general if you just want to use your settings in
the config to launch a cluster you should instead use:

$ starcluster start mycluster

This will start the 'default' cluster template defined in the
'default_template' setting in the [global] section of the config.
Assuming you used the generated example config from StarCluster this
should already be set to 'smallcluster'. If you wish to use a cluster
template *other* than the default you will need to explicitly specify
the template at the command line:

$ starcluster start -c mediumcluster mycluster

Make sense? I would highly recommend running through the quick-start
guide in detail if you haven't already:

http://web.mit.edu/star/cluster/docs/latest/quickstart.html

>    3. After I do further installs in the image, I need to download the image
>    before I terminate to be able to use it again, without paying for the ebs
>    storage by stopping the cluster (not terminating). I need to download the
>    image, and terminate the cluster, so that I don't pay for anything
>    (cluster or ebs storage) until I am ready to run again. I see the
>    downloadimage  command and not sure how to use it, I couldn't find help
>    about it, except the command line help:
>    starcluster downloadimage [options] <image_id> <destination_directory>
>     is the image_id here is the same one I started from, which
>    is "ami-999d49f0" in my case, or is it the one I customised and is
>    currently running? Does the image take a new image_id once it is running
>    for a specific user? if so, do I get this from my console manager on the
>    AWS website?

The 'downloadimage' command is only for downloading S3-backed AMIs - this
command does not work with EBS-backed AMIs.

With that said I'm confused on *what* exactly you're wanting to download
and why? If you're wanting to download the AMI so that you can create
clusters using it later on then downloading the AMI is totally
unnecessary. The "ebsimage" command will create a new AMI from your
"image host" instance and output the new AMI id that you can use in your
StarCluster config to use everytime you start a new cluster.

If you're trying to find a way to store data without having to keep the
cluster around there are much better approaches:

1. Use an external EBS volume with StarCluster and store your data
there. This will allow you to terminate the cluster and still preserve
your important data on the EBS volume. See:

http://web.mit.edu/star/cluster/docs/latest/manual/volumes.html

2. If you don't wish to use external EBS volumes at all you can always
use starcluster's "get" command to manually download files from the
cluster before terminating, e.g.:

$ starcluster get mycluster /path/to/results.tar.gz

Similarly you can upload files using the "put" command:

$ starcluster put mycluster /path/to/local/file /remote/path/

See the following doc for more details:

http://web.mit.edu/star/cluster/docs/latest/manual/putget.html

>    4. After knowing how to download the image, I will need the command to
>    start a new cluster using the image I have stored on my local disk. I
>    think I have seen something to install from an image to the cluster

Launching a cluster using a locally stored disk image is not supported.
The latency in doing this would be *insane*. Having to upload multiple
GBs and register an AMI everytime would make starting a cluster
*extremely* time-consuming and error-prone.

As mentioned above you're better off creating a new AMI for your needs
and keeping the new AMI on Amazon. Then simply update your StarCluster
config to use your new AMI. If you need to save data before terminating
the cluster then either save your data to an external EBS volume or copy
the data using the 'get' command as mentined above.

Hope that helps,

~Justin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
Url : http://mailman.mit.edu/pipermail/starcluster/attachments/20120517/64125256/attachment.bin


More information about the StarCluster mailing list