Figure 1: Architecture for SCATTER
SCATTER consists of three main files:
ScatterServer.pl : This is the main server program. Its function is to open a
TCP/IP port and then spawn clients. It is a multi-threaded version which
implies that each client is serviced by a separate thread. It also allocates
jobs to the different clients based on a First Come First Served policy. There
are plans to do some more effective load balancing in future.
ScatterClient.pl: This is the client file. Its only function is to wait on the
server and process the jobs as and when it gets them.
clientfile: This file contains information on the client nodes in the cluster
that are to be used for the BLAST run. The formatting is quite simple and
consists of a list of node names, one on each line.
SCATTER is based on a client-server architecture (see Figure 1). The server
program ScatterServer.pl resides on the server. It opens a TCP/IP port, spawns
the ScatterClient.pl programs on the clients (listed in clientfile) and waits
for connections from the client machines. Once the connections are established,
the server starts distributing queries to the clients from a central query queue
that is maintained on the server side. Since the main server directory is NFS
mounted on all the client machines, the communication consists essentially in
passing the names of the queries to be sequenced, to the client machines. Hence,
the communication overheads are minimized to a large extent.
|