Table 1.
Large-scale computing platform |
computing architectures | Advantages | Disadvantages | example applications |
---|---|---|---|---|
Cluster computing | Multiple computers linked together, typically through a fast local area network, that effectively function as a single computer | Cost-effective way to realize supercomputer performance | Requires a dedicated, specialized facility, hardware, system administrators and IT support |
|
Cloud computing | Computing capability that abstracts the underlying hardware architectures (for example, servers, storage and networking), enabling convenient, on-demand network access to a shared pool of computing resources that can be readily provisioned and released (NIST Technical Report) | The virtualization technology used results in extreme flexibility; good for one-off HPC tasks, for which persistent resources are not necessary | Privacy concerns; less control over processes; bandwidth is limited as large data sets need to be moved to the cloud before processing |
|
Grid computing | A combination of loosely coupled networked computers from different administrative centres that work together on common computational tasks. Typified by volunteer computing efforts (such as Folding@Home), which ‘scavenge’ spare computational cycles from volunteers’ computers | Ability to enlist large-scale computational resources at low or no cost (large-scale volunteer-based efforts) | Big data transfers are difficult or impossible; minimal control over underlying hardware, including availability |
|
Heterogeneous computing | Computers that integrate specialized accelerators — for example, GPUs or reconfigurable logic (FPGAs) — alongside GPPs | Cluster-scale computing for a fraction of the cost of a cluster; optimized for computationally intensive fine-grained parallelism; local control of data and processes | Significant expertise and programmer time required to implement applications; not generally available in cluster- and cloud-based services |
|
The above categories are not exclusive. For example, heterogeneous computers are often used as the building blocks of cluster, grid or cloud computing systems; the shared computational clusters available in many organizations could be described as private Platform as a Service (PaaS) clouds. The main differences between the platforms are degree of coupling and tenancy — grid and cloud computers are designed for loosely coupled parallel workloads, with the grid resources allocated exclusively for a single user, whereas the underlying hardware resources in the cloud are typically shared among many users (multi-tenancy). Cluster computers are typically used for tightly coupled workloads and are often allocated to a single user. FPGA, field-programmable gate array; GPP, general purpose processor; GPU, graphics processing unit; GWA, genome-wide association; HPC, high-performance computing; NIST, National Institute of Standards and Technology.