Supercomputers were introduced in the 1960s, and for several decades the fastest were made by "Seymour Cray at "Control Data Corporation (CDC), "Cray Research and subsequent companies bearing his name or monogram. The first such machines were highly tuned conventional designs that ran faster than their more general-purpose contemporaries. Through the 1960s, they began to add increasing amounts of "parallelism with one to four "processors being typical. From the 1970s, the "vector computing concept with specialized math units operating on large arrays of data came to dominate. A notable example is the highly successful "Cray-1 of 1976. Vector computers remained the dominant design into the 1990s. From then until today, "massively parallel supercomputers with tens of thousands of off-the-shelf processors became the norm.[5][6]

The US has long been a leader in the supercomputer field, first through Cray's almost uninterrupted dominance of the field, and later through a variety of technology companies. Japan made major strides in the field in the 1980s and 90s, but since then China has become increasingly important. As of June 2016, the fastest supercomputer on the "TOP500 supercomputer list is the "Sunway TaihuLight, in China, with a "LINPACK benchmark score of 93 PFLOPS, exceeding the previous record holder, "Tianhe-2, by around 59 PFLOPS. Sunway TaihuLight's emergence is also notable for its use of indigenous chips, and is the first Chinese computer to enter the TOP500 list without using hardware from the "United States. As of June 2016, China, for the first time, had more computers (167) on the TOP500 list than the United States (165). However, US built computers held ten of the top 20 positions;[7][8] in November 2016 the U.S. has five of the top 10 and China two, in fact the top two.

The "Atlas was a joint venture between "Ferranti and the Manchester University and was designed to operate at processing speeds approaching one microsecond per instruction, about one million instructions per second.[10] The first Atlas was officially commissioned on 7 December 1962 as one of the world's first supercomputers – considered to be the most powerful computer in the world at that time by a considerable margin, and equivalent to four "IBM 7094s.[11]

For the "CDC 6600 (which Cray designed) released in 1964, a switch from using germanium to silicon transistors was implemented, as they could run very fast, solving the overheating problem by introducing refrigeration,[12] and helped to make it the fastest in the world. Given that the 6600 outperformed all the other contemporary computers by about 10 times, it was dubbed a supercomputer and defined the supercomputing market, when one hundred computers were sold at $8 million each.[13][14][15][16]

Cray left CDC in 1972 to form his own company, "Cray Research.[14] Four years after leaving CDC, Cray delivered the 80 MHz "Cray 1 in 1976, and it became one of the most successful supercomputers in history.[17][18] The "Cray-2 released in 1985 was an 8 processor "liquid cooled computer and "Fluorinert was pumped through it as it operated. It performed at 1.9 "gigaFLOPS and was the world's second fastest after M-13 supercomputer in Moscow .[19]

While the supercomputers of the 1980s used only a few processors, in the 1990s, machines with thousands of processors began to "appear in Japan and the United States, setting new computational performance records. "Fujitsu's "Numerical Wind Tunnel supercomputer used 166 vector processors to gain the top spot in 1994 with a peak speed of 1.7 "gigaFLOPS (GFLOPS) per processor.[21][22] The "Hitachi SR2201 obtained a peak performance of 600 GFLOPS in 1996 by using 2048 processors connected via a fast three-dimensional "crossbar network.[23][24][25] The "Intel Paragon could have 1000 to 4000 "Intel i860 processors in various configurations, and was ranked the fastest in the world in 1993. The Paragon was a "MIMD machine which connected processors via a high speed two "dimensional mesh, allowing processes to execute on separate nodes, communicating via the "Message Passing Interface.[26]

Early supercomputer architectures pioneered by "Seymour Cray relied on compact designs and local "parallelism to achieve superior computational performance.[9] Cray had noted that increasing processor speeds did little if the rest of the system did not also improve; the CPU would end up waiting longer for data to arrive from the offboard storage units. The "CDC 6600, the first mass-produced supercomputer, solved this problem by providing ten simple computers whose only purpose was to read and write data to and from "main memory, allowing the CPU to concentrate solely on processing the data. This made both the main CPU and the ten "PPU" units much simpler. As such, they were physically smaller and reduced the amount of wiring between the various parts. This reduced the electrical signaling delays and allowed the system to run at a higher clock speed. The 6600 outperformed all other machines by an average of 10 times when it was introduced.

The CDC 6600's spot as the fastest computer was eventually replaced by its successor, the "CDC 7600. This design was very similar to the 6600 in general organization but added "instruction pipelining to further improve performance. Generally speaking, every computer instruction required several steps to process; first, the instruction is read from memory, then any required data it refers to is read, the instruction is processed, and the results are written back out to memory. Each of these steps is normally accomplished by separate circuitry. In most early computers, including the 6600, each of these steps runs in turn, and while any one unit is currently active, the hardware handling the other parts of the process is idle. In the 7600, as soon as one instruction cleared a particular unit, that unit began processing the next instruction. Although each instruction takes the same time to complete, there are parts of several instructions being processed at the same time, offering much-improved overall performance. This, combined with further packaging improvements and improvements in the electronics, made the 7600 about four to ten times as fast as the 6600.

The 7600 was intended to be replaced by the "CDC 8600, which was essentially four 7600's in a small box. However, this design ran into intractable problems and was eventually canceled in 1974 in favor of another CDC design, the "CDC STAR-100. The STAR was essentially a simplified and slower version of the 7600, but it was combined with new circuits that could rapidly process sequences of math instructions. The basic idea was similar to the pipeline in the 7600 but geared entirely toward math, and in theory, much faster. In practice, the STAR proved to have poor real-world performance, and ultimately only two or three were built.

Cray, meanwhile, had left CDC and formed his own company. Considering the problems with the STAR, he designed an improved version of the same basic concept but replaced the STAR's memory-based vectors with ones that ran in large registers. Combining this with his famous packaging improvements produced the "Cray-1. This completely outperformed every computer in the world, save one, and would ultimately sell about 80 units, making it one of the most successful supercomputer systems in history. Through the 1970s, 80s and 90s a series of machines from Cray further improved on these basic concepts.

The basic concept of using a pipeline dedicated to processing large data units became known as "vector processing, and came to dominate the supercomputer field. A number of Japanese firms also entered the field, producing similar concepts in much smaller machines. Three main lines were produced by these companies, the "Fujitsu VP, "Hitachi HITAC and "NEC SX series, all announced in the early 1980s and updated continually into the 1990s. CDC attempted to re-enter this market with the "ETA10 but this was not very successful. "Convex Computer took another route, introducing a series of much smaller vector machines aimed at smaller businesses.

The only computer to seriously challenge the Cray-1's performance in the 1970s the single example of the "ILLIAC IV. This machine was the first realized example of a true "massively parallel computer, in which many processors worked together to solve different parts of a single larger problem. In contrast with the vector systems, which were designed to run a single stream of data as quickly as possible, in this concept, the computer instead feeds separate parts of the data to entirely different processors and then recombines the results. The ILLIAC's design was finalized in 1966 with 256 processors and offer speed up to 1 GFLOPS, compared to the 1970s Cray-1's peak of 250 MFLOPS. However, development problems led to only 64 processors being built, and the system could never operate faster than about 200 MFLOPS, while being much larger and more complex than the Cray. Another problem was that writing software for the system was difficult, and getting peak performance from it was a matter of serious effort.

But the partial success of the ILLIAC IV was widely seen as pointing the way to the future of supercomputing. Cray argued against this, famously quipping that "If you were plowing a field, which would you rather use? Two strong oxen or 1024 chickens?"[27] But by the early 1980s, several teams were working on parallel designs with thousands of processors, notably the "Connection Machine (CM) that developed from research at "MIT. The CM-1 used as many as 65,536 simplified custom "microprocessors connected together in a "network to share data. Several updated versions followed; the CM-5 supercomputer is a massively parallel processing computer capable of many billions of arithmetic operations per second.[28]

Software development remained a problem, but the CM series sparked off considerable research into this issue. Similar designs using custom hardware were made by many companies, including the "Evans & Sutherland ES-1, "MasPar, "nCUBE, "Intel iPSC and the "Goodyear MPP. But by the mid-1990s, general-purpose CPU performance had improved so much in that a supercomputer could be built using them as the individual processing units, instead of using custom chips. By the turn of the "21st century, designs featuring tens of thousands of commodity CPUs were the norm, with later machines adding "graphic units) to the mix.[5][6]

Throughout the decades, the management of "heat density has remained a key issue for most centralized supercomputers.[29][30][31] The large amount of heat generated by a system may also have other effects, e.g. reducing the lifetime of other system components.[32] There have been diverse approaches to heat management, from pumping "Fluorinert through the system, to a hybrid liquid-air cooling system or air cooling with normal "air conditioning temperatures.[33][34]

Systems with a massive number of processors generally take one of two paths. In the "grid computing approach, the processing power of many computers, organised as distributed, diverse administrative domains, is opportunistically used whenever a computer is available.[35] In another approach, a large number of processors are used in proximity to each other, e.g. in a "computer cluster. In such a centralized "massively parallel system the speed and flexibility of the interconnect becomes very important and modern supercomputers have used various approaches ranging from enhanced "Infiniband systems to three-dimensional "torus interconnects.[36][37] The use of "multi-core processors combined with centralization is an emerging direction, e.g. as in the "Cyclops64 system.[38][39]

As the price, performance and energy efficiency of "general purpose graphic processors (GPGPUs) have improved,[40] a number of "petaFLOPS supercomputers such as "Tianhe-I and "Nebulae have started to rely on them.[41] However, other systems such as the "K computer continue to use conventional processors such as "SPARC-based designs and the overall applicability of "GPGPUs in general-purpose high-performance computing applications has been the subject of debate, in that while a GPGPU may be tuned to score well on specific benchmarks, its overall applicability to everyday algorithms may be limited unless significant effort is spent to tune the application towards it.[42][43] However, GPUs are gaining ground and in 2012 the "Jaguar supercomputer was transformed into "Titan by retrofitting CPUs with GPUs.[44][45][46]

High performance computers have an expected life cycle of about three years before requiring an upgrade.[47]

A number of "special-purpose" systems have been designed, dedicated to a single problem. This allows the use of specially programmed "FPGA chips or even custom "VLSI chips, allowing better price/performance ratios by sacrificing generality. Examples of special-purpose supercomputers include "Belle,[48] "Deep Blue,[49] and "Hydra,[50] for playing "chess, "Gravity Pipe for astrophysics,[51] "MDGRAPE-3 for protein structure computation molecular dynamics[52] and "Deep Crack,[53] for breaking the "DES "cipher.

A typical supercomputer consumes large amounts of electrical power, almost all of which is converted into heat, requiring cooling. For example, "Tianhe-1A consumes 4.04 "megawatts (MW) of electricity.[54] The cost to power and cool the system can be significant, e.g. 4 MW at $0.10/kWh is $400 an hour or about $3.5 million per year.

The packing of thousands of processors together inevitably generates significant amounts of "heat density that need to be dealt with. The "Cray 2 was "liquid cooled, and used a "Fluorinert "cooling waterfall" which was forced through the modules under pressure.[33] However, the submerged liquid cooling approach was not practical for the multi-cabinet systems based on off-the-shelf processors, and in "System X a special cooling system that combined air conditioning with liquid cooling was developed in conjunction with the "Liebert company.[34]

In the "Blue Gene system, IBM deliberately used low power processors to deal with heat density.[59] The IBM "Power 775, released in 2011, has closely packed elements that require water cooling.[60] The IBM "Aquasar system uses hot water cooling to achieve energy efficiency, the water being used to heat buildings as well.[61][62]

Because copper wires can transfer energy into a supercomputer with much higher power densities than forced air or circulating refrigerants can remove waste heat,[68] the ability of the cooling systems to remove waste heat is a limiting factor.[69][70] As of 2015[update], many existing supercomputers have more infrastructure capacity than the actual peak demand of the machine – designers generally conservatively design the power and cooling infrastructure to handle more than the theoretical peak electrical power consumed by the supercomputer. Designs for future supercomputers are power-limited – the "thermal design power of the supercomputer as a whole, the amount that the power and cooling infrastructure can handle, is somewhat more than the expected normal power consumption, but less than the theoretical peak power consumption of the electronic hardware.[71]

Since the end of the 20th century, "supercomputer operating systems have undergone major transformations, based on the changes in "supercomputer architecture.[72] While early operating systems were custom tailored to each supercomputer to gain speed, the trend has been to move away from in-house operating systems to the adaptation of generic software such as "Linux.[73]

Since modern "massively parallel supercomputers typically separate computations from other services by using multiple types of "nodes, they usually run different operating systems on different nodes, e.g. using a small and efficient "lightweight kernel such as "CNK or "CNL on compute nodes, but a larger system such as a "Linux-derivative on server and "I/O nodes.[74][75][76]

While in a traditional multi-user computer system "job scheduling is, in effect, a "tasking problem for processing and peripheral resources, in a massively parallel system, the job management system needs to manage the allocation of both computational and communication resources, as well as gracefully deal with inevitable hardware failures when tens of thousands of processors are present.[77]

Although most modern supercomputers use the "Linux operating system, each manufacturer has its own specific Linux-derivative, and no industry standard exists, partly due to the fact that the differences in hardware architectures require changes to optimize the operating system to each hardware design.[72][78]

The parallel architectures of supercomputers often dictate the use of special programming techniques to exploit their speed. Software tools for distributed processing include standard "APIs such as "MPI and "PVM, "VTL, and "open source-based software solutions such as "Beowulf.

In the most common scenario, environments such as "PVM and "MPI for loosely connected clusters and "OpenMP for tightly coordinated shared memory machines are used. Significant effort is required to optimize an algorithm for the interconnect characteristics of the machine it will be run on; the aim is to prevent any of the CPUs from wasting time waiting on data from other nodes. "GPGPUs have hundreds of processor cores and are programmed using programming models such as "CUDA or "OpenCL.

Moreover, it is quite difficult to debug and test parallel programs. "Special techniques need to be used for testing and debugging such applications.

Example architecture of a "grid computing system connecting many personal computers over the internet

Opportunistic Supercomputing is a form of networked "grid computing whereby a "super virtual computer" of many "loosely coupled volunteer computing machines performs very large computing tasks. Grid computing has been applied to a number of large-scale "embarrassingly parallel problems that require supercomputing performance scales. However, basic grid and "cloud computing approaches that rely on "volunteer computing can not handle traditional supercomputing tasks such as fluid dynamic simulations.

The fastest grid computing system is the "distributed computing project "Folding@home. F@h reported 101 PFLOPS of "x86 processing power As of October 2016[update]. Of this, over 100 PFLOPS are contributed by clients running on various GPUs, and the rest from various CPU systems.[80]

The "BOINC platform hosts a number of distributed computing projects. As of February 2017[update], BOINC recorded a processing power of over 166 PetaFLOPS through over 762 thousand active Computers (Hosts) on the network.[81]

Quasi-opportunistic supercomputing is a form of "distributed computing whereby the “super virtual computer” of many networked geographically disperse computers performs computing tasks that demand huge processing power.[83] Quasi-opportunistic supercomputing aims to provide a higher quality of service than "opportunistic grid computing by achieving more control over the assignment of tasks to distributed resources and the use of intelligence about the availability and reliability of individual systems within the supercomputing network. However, quasi-opportunistic distributed execution of demanding parallel computing software in grids should be achieved through implementation of grid-wise allocation agreements, co-allocation subsystems, communication topology-aware allocation mechanisms, fault tolerant message passing libraries and data pre-conditioning.[83]

"Cloud Computing with its recent and rapid expansions and development have grabbed the attention of HPC users and developers in recent years. Cloud Computing attempts to provide HPC-as-a-Service exactly like other forms of services currently available in the Cloud such as "Software-as-a-Service, "Platform-as-a-Service, and "Infrastructure-as-a-Service. HPC users may benefit from the Cloud in different angles such as scalability, resources being on-demand, fast, and inexpensive. On the other hand, moving HPC applications have a set of challenges too. Good examples of such challenges are "virtualization overhead in the Cloud, multi-tenancy of resources, and network latency issues. Much research[84][85][86][87] is currently being done to overcome these challenges and make HPC in the cloud a more realistic possibility.

Supercomputers generally aim for the maximum in capability computing rather than capacity computing. Capability computing is typically thought of as using the maximum computing power to solve a single large problem in the shortest amount of time. Often a capability system is able to solve a problem of a size or complexity that no other computer can, e.g., a very complex "weather simulation application.[88]

Capacity computing, in contrast, is typically thought of as using efficient cost-effective computing power to solve a few somewhat large problems or many small problems.[88] Architectures that lend themselves to supporting many users for routine everyday tasks may have a lot of capacity, but are not typically considered supercomputers, given that they do not solve a single very complex problem.[88]

In general, the speed of supercomputers is measured and "benchmarked in ""FLOPS" (FLoating point Operations Per Second), and not in terms of ""MIPS" (Million Instructions Per Second), as is the case with general-purpose computers.[89] These measurements are commonly used with an "SI prefix such as "tera-, combined into the shorthand "TFLOPS" (1012 FLOPS, pronounced teraflops), or "peta-, combined into the shorthand "PFLOPS" (1015 FLOPS, pronounced petaflops.) ""Petascale" supercomputers can process one quadrillion (1015) (1000 trillion) FLOPS. "Exascale is computing performance in the exaFLOPS (EFLOPS) range. An EFLOPS is one quintillion (1018) FLOPS (one million TFLOPS).

No single number can reflect the overall performance of a computer system, yet the goal of the Linpack benchmark is to approximate how fast the computer solves numerical problems and it is widely used in the industry.[90] The FLOPS measurement is either quoted based on the theoretical floating point performance of a processor (derived from manufacturer's processor specifications and shown as "Rpeak" in the TOP500 lists) which is generally unachievable when running real workloads, or the achievable throughput, derived from the "LINPACK benchmarks and shown as "Rmax" in the TOP500 list. The LINPACK benchmark typically performs "LU decomposition of a large matrix. The LINPACK performance gives some indication of performance for some real-world problems, but does not necessarily match the processing requirements of many other supercomputer workloads, which for example may require more memory bandwidth, or may require better integer computing performance, or may need a high performance I/O system to achieve high levels of performance.[90]

Distribution of TOP500 supercomputers among different countries, as of November 2015

Since 1993, the fastest supercomputers have been ranked on the TOP500 list according to their "LINPACK benchmark results. The list does not claim to be unbiased or definitive, but it is a widely cited current definition of the "fastest" supercomputer available at any given time.

This is a recent list of the computers which appeared at the top of the TOP500 list,[91] and the "Peak speed" is given as the "Rmax" rating.

The IBM "Blue Gene/P computer has been used to simulate a number of artificial neurons equivalent to approximately one percent of a human cerebral cortex, containing 1.6 billion neurons with approximately 9 trillion connections. The same research group also succeeded in using a supercomputer to simulate a number of artificial neurons equivalent to the entirety of a rat's brain.[98]

Diagram of a three-dimensional "torus interconnect used by systems such as Blue Gene, Cray XT3, etc.

Given the current speed of progress, industry experts estimate that supercomputers will reach 1 "EFLOPS (1018, 1,000 PFLOPS or one quintillion FLOPS) by 2018. The Chinese government in particular is pushing to achieve this goal after they achieved the most powerful supercomputer in the world with "Tianhe-2 since 2013. Using the "Intel MIC multi-core processor architecture, which is Intel's response to GPU systems, SGI also plans to achieve a 500-fold increase in performance by 2018 in order to achieve one EFLOPS. Samples of MIC chips with 32 cores, which combine vector processing units with standard CPU, have become available.[102] The Indian government has also stated ambitions for an EFLOPS-range supercomputer, which they hope to complete by 2017.[103] In November 2014, it was reported that India is working on the fastest supercomputer ever, which is set to work at 132 EFLOPS.[104]

High performance supercomputers usually require high energy, as well. However, Iceland may be a benchmark for the future with the world's first zero-emission supercomputer. Located at the Thor Data Center in "Reykjavik, Iceland, this supercomputer relies on completely renewable sources for its power rather than fossil fuels. The colder climate also reduces the need for active cooling, making it one of the greenest facilities in the world.[108]

Many "science-fiction writers have depicted supercomputers in their works, both before and after the historical construction of such computers. Much of such fiction deals with the relations of humans with the computers they build and with the possibility of conflict eventually developing between them. Some scenarios of this nature appear on the "AI-takeover page.

^ abcThe Potential Impact of High-End Capability Computing on Four Illustrative Fields of Science and Engineering by Committee on the Potential Impact of High-End Computing on Illustrative Fields of Science and Engineering and National Research Council (28 October 2008) "ISBN "0-309-12485-9 page 9