[Bioclusters] Details On A Local Blast Cluster
Steve Pittard
bioclusters@bioinformatics.org
Sat, 5 Oct 2002 17:08:40 -0400 (EDT)
Hello/Bonjour,
I wanted to provide a bit of information about our local
blast server for the benefit of those looking to do the
same. A mere 6 months ago when I first went about this I
didn't have a solid grasp of all the issues (not that I do
now) but I've certainly learned a great deal and don't
mind passing that on with the sincere hope that I can help
others engaged in similar pursuits.
We had two aims:
1) Be able to use Blast (NCBI & WU-BLAST) with millions
of sequence reads against a given genome
2) Offer a local ,web-based implementation of NCBI Blast
for those tired of long queue waits at NCBI
We have been able to achieve both goals using the same
cluster setup although we are finding that we need to expand
to accommodate researchers who have since discovered
the existence of the cluster and wanted to jump on board.
Our setup is very modest. We have 14 CPUS - 6 Appro
1100 (www.appro.com) with Dual AMD Athlons 1600+ with
2 GB RAM each. We have 2 40 GB ATA drives per node running
RedHat 7.3. Our decision to go with Appro was based purely
on cost since one of our sources of funding backed out at
the last minute. We were looking at an RLX solution (see
discussion down low) but the money wasn't there so Appros
were selected. We went with fast ethernet, a cheap switch,
and a $400 rack to house it all. We did have to install a
dedicated circuit to accommodate electrical load but we
house the setup in a standard office. It's a bit noisy and
warm but fine.
We wanted to be able to house database splits locally on
each node since I did not want to rely on NFS to supply
the databases. This has worked well despite the
hassle ( a minimal one) of pushing out data to each node
after a new version of a database comes out. That's
soon to be automated - for example download the latest
version of nr, split it , formatdb each split, and push out
the splits to each cluster node. The script is easily written.
We purchased Platform LSF 5.0 licenses to manage the
cluster and as a side benefit they had example Perl scripts
that provided working examples on how to split up target
databases and associated queries to take advantage of the
cluster thus economizing search time. There is nothing
particularly magic about these programs though they do work
well. You could certainly write your own or easily modify
theirs to suit your specific needs. Its also possible to
adapt the scripts for use with GridEngine or PBS.
I do like LSF a great deal and the support I have received
from Platform has been very good. Despite the appeal of LSF
I think its becoming clear that Grid Engine
could be used to accomplish many of the same things. I
like LSF and if our budget holds out then I will retain
those licenses but SGE is free and works pretty well also.
Perhaps some SGE zealot could write a LSF to
SGE conversion document ?
With regard to our first aim it turned out that BLAST was
not really a bottleneck but rather the vector screening and
repeatmasking . We did employ the option of repeatmasker which
selects WU_BLAST as a masking tool instead of the default
cross_match. This speeded things up quite a bit. In any
case ,using the cluster, we were able to knock out
screening and masking in about 1/30 of the time it used to
take before we had the cluster. A huge win for not a lot of money,
Granted some of the performance improvment was due to learning
how better to employ various programs in the pipline
but the cluster was undenibaly the key factor in performance
enhancement.
With regard to our second aim we have been able to offer
Web-based NCBI-like services to a select group of people on
an intranet. They load a web page, login, get a BLAST page,
paste in a sequence, select a target databases and program
and submit the BLAST which gets distributed to the cluster
for processing. We have the databases split 6 ways
which means the databases can fit into the memory on a
given node. With only 14 CPUs we certainly aren't setting
any speed records but by limiting the availability of the
service combined with the load balancing we can return results
back to people within a minute or two even for translated Blasts
against larger databases.
Obviously this scenario is a queuing problem since we
never know how many simultaneous users are
going to be kicking off a job. Even so we have developed
different queues for different users and the various types of
BLASTs in an effort to provide a fair use policy. The result they
get back is a single report merged from other reports. They
get active links back to NCBI.
We are lacking the alignment graphic which appears with
standard NCBI issued reports though I would like to be able to
provide that. Thus far I haven't found a quick way
to take my Blast report and run it through a program to
produce that graphic. The NCBI helpdesk referred me to their
toolbox and said I could dig out the code and write my own
version but I was hoping someone had done this already. We
might write our own but its not a major issue. The users are
reasonably content with the reports and active links.
Of course as we all know there are a number of companies
offering ready made cluster solutions:
RLX, MicroWay, RackWay, Penguin, HP ProLiant, and Sun
is getting in on the action. So you might benefit from
a discussion with one or more of these vendors should
you be in the cluster market. I've been talking with
RLX recently and I really like their control tower concept
which has some very nice software tools to let you
manage and provision their blades. They've done a good
job in that area.
Plus they have small footprint and low power consumption that
is ideal for non data center clusters. So if you wanted to
setup a cluster in then corner of your laboratory then you could.
They resell LSF so you get that under the hood. I am not
thrilled with their use of laptop quality drives on the blade
but depending on your application this might not be such a
big deal. Also I think they have some new stuff coming out so
check with them to get the latest. One thing is clear - a
lot of vendors are out there ready to sell you a cluster.
Take your time.
Relative to software I also have tested out TurboGenomic's
TurboBlast and have recently been evaluating Paracel's
Blast product. Both of these have their strengths and
understand they are packages designed to do high throughput
blasting so there isn't really load management built in
to them. They are meant to benefit from a cluster environment
so you can quite easily use either with , for more about my
experiences with either of these products then drop me a line.
Regards,
Steve Pittard | http://catalina.bimcore.emory.edu (HOME PAGE)
Emory University | wsp@emory.edu, wsp@bimcore.emory.edu (INTERNET)
BIMCORE Support | 404 727 0038