# Regarding to the speed of supercomputer

There seems to be a sense of competition in creating the fastest computer in the world, and I feel like technically you just have to continue increasing the core number to gain more flops, which is exactly what some countries are doing, so how would you really bench mark the technological level of a supercomputer

for example

United States currently have two supercomputer on the top list with similar performance, however one has significantly less core than the other

Titan has 560000 cores 17590 Rmax Tflops with 8000 kW of power

Sequoia has 1570000 cores 17173 Rmax Tflops with 7800 kW of power

Does this mean that Titan is a much superior supercomputer than Sequoia as it only uses 1/3 of cores to reach a similar performance, and if it does, this will also imply that judging supercomputer by flops is completely meaningless?

Is there something I am missing here? Such as the increasing complexity of software as the amount of core gets larger and the synchronization of overhead to assign task to each core gets more sophisticated?

Any info would be much appreciated

The only thing you are missing is the importance of the interconnect between cores/processors/racks and the design of the memory system for each processor.

I assume you are referring to the most recent top-500 supercomputer list. That list is sorted by Rmax, not Rpeak.

Rpeak is a measure of the theoretical maximum number of floating point operations that the system can perform. For Rpeak you are correct: just add more cores (or more vector units per core) and the Rpeak number will go up.

Rmax is (arguably) a little bit more meaningful. It is the maximal rate at which the system can run the Linpack benchmark. The Linpack benchmark requires the system to solve a huge, dense, system of linear equations using LU factorization with partial pivoting in double precision.

For solving a dense system of linear equations you need to carefully partition the problem among the cores, and there needs to be an efficient way for the cores to communicate results back and forth. So a big part of designing a computer that will get onto the Top500 list is careful design of the interconnect and the software used to send messages between processors.

On the top500 list they tell you what interconnect each system is using. Note that you don't find a system with Ethernet until you get to number 49. The first 48 all have infiniband, cray gemini or custom interconnects.

There is also a green500 list that measures the MFLOPS/Watt of systems while solving the Linpack benchmark. The difference between the top system and the 500th system on that list (from last November) is a factor of 75x.

Most people agree that there is a lot more that you want from a supercomputer in addition to being able to efficiently solve massive dense systems of linear equations. Jack Dongara (who originated the Linpack benchmark) has recently released a paper proposing a new benchmark that measures the speed at which a system can solve a sparse linear system. http://www.netlib.org/utk/people/JackDongarra/PAPERS/HPCG-Benchmark-utk.pdf.

• I understand now that more cores require more complex software for task managing, but surely if you use less core to achieve the same performance it should be a more superior design? – user1433153 Jun 19 '13 at 1:23
• Not if the "more powerful" cores require many more transistors (thus more expensive) or consume more energy per useful operation. The AMD Opterons used in Titan have 16 cores, each with 4-wide vectors, get 282 GFLOPS (peak), consume 115W and cost \$1278 originally (you can get them for \$650 now). So .22 GFLOPS/\$and 2.45 GFLOPS/W. The NVIDIA Tesla K20X on each Titan node has 2688 "cores" (really 2688 vector lanes), get 1170 GFLOPS (peak) at 225W and currently costs \$3800. So .31 GFLOPS/\\$ and 5.2 GFLOPS/W. So lots of tiny cores costs less and burns less power per FLOPS. – Wandering Logic Jun 19 '13 at 2:44

not necessarily. since SC are built not for records, but for real work, it's important how they execute real programs. some cpus has more raw power, but harder to program (read: they can be used only for subset of useful programs), other are opposite

the great example is your won computer - it has 2-8 cores in the cpu, and up to 2000 cores in the video card. but video card can't efficiently run the code that runs in the cpu. it only does very limited tasks but does it extremely well