As a general rule of thumb, a cluster will have its primary feature set pulled from a single type of clustering. HA clusters are most uniquely defined by the use of redundancy throughout the system. Generally, HA clusters rely on software to achieve the goal of uninterrupted services. A portion of this software work is done in the kernel itself as well as a larger portion being done in userland libraries. Other places where this level of availability is done is through the filesystem layers.
Fault tolerance works to achieve a similar goal of continuous availability.
However, fault tolerance is usually applied to having the redundancy built into the system's hardware rather than the software. When combined with an operating system that has clustering extensions, this environment can prove to be virtually continuously available. MPP is a class of computing that links many individual computing nodes together into a singular computing machine. These clusters are designed to provide a highly scalable environment to solve computational problems whose components can be worked on in parallel. In order to be effective, the software that is run on these clusters requires very careful work to ensure the highest levels of parallelism while still remaining coherent as a single problem.