Which Hardware Platform Should I Use?
Research Computing offers several different hardware platforms. To choose between these resources, you need to consider two issues: the available software on a given system, and the granularity of your problem. Since the granularity may affect where you want to run a given bit of software, we will discuss this topic first.
Granularity refers to the ratio of the amount of communication to the amount of computation inherent in a computation. If this ratio is low then the problem is considered coarse grained. This means that there is a small amount of communication when compared to the amount of computation. These problems are also referred to as embarrassingly parallel. If the ratio is high then the amount of communication dominates, and the task is considered fine grained. A large number of tasks fall somewhere between and are considered medium grained.
If your problem is coarse grained to the point that the various processes do not need to communicate, you will want to use the Condor installation . For example, suppose that you have a relatively small program that you need to run with 1000 different starting parameters. The different instances of the program will not need to communicate, therefore a computing grid will give you the best throughput. This is often referred to as High Throughput Computing. Several of the standard research packages are available in this environment.
The other end of the spectrum is a program in which every iteration of a computation loop requires communications with one or more external processes ( or processors). This problem would be considered fine grained. You would then want to consider a large scale SMP machine to run this program. This type of resources are available in the Research Computing SMP Cluster. The standard programming model for the SMP machines is thread programming. Message passing libraries MPI are available as well.
If you have a program that falls in between these two extremes, then Research Computing’s Beowulf Clusters are more suitable for your needs. The clusters have a slower interconnect than the SMP machines, but they offer larger scale parallelism (up to 48 processors). The standard parallel programming model on clusters is message passing. This is implemented on Research Computing’s clusters using the MPI Libraries.
Most of the standard mathematical and statistical software packages do not run on parallel environments. If you are trying to run one of the standard research code (Matlab, Maple, Mathematica, etc) and your program is too large or it runs too slow on your current computing resource, you will want to use the Research Computing SMP Cluster. While you will not be able to take advantage of the parallelism of these machines you will be able to use the large memory to facilitate your computations.