CPU Compute

One side I like to exploit on CPUs is the ability to compute and whether a variety of mathematical loads can stress the system in a way that real-world usage might not.  For these benchmarks we are ones developed for testing MP servers and workstation systems back in early 2013, such as grid solvers and Brownian motion code.  Please head over to the first of such reviews where the mathematics and small snippets of code are available.

3D Movement Algorithm Test

The algorithms in 3DPM employ uniform random number generation or normal distribution random number generation, and vary in various amounts of trigonometric operations, conditional statements, generation and rejection, fused operations, etc.  The benchmark runs through six algorithms for a specified number of particles and steps, and calculates the speed of each algorithm, then sums them all for a final score.  This is an example of a real world situation that a computational scientist may find themselves in, rather than a pure synthetic benchmark.  The benchmark is also parallel between particles simulated, and we test the single thread performance as well as the multi-threaded performance.  Results are expressed in millions of particles moved per second, and a higher number is better.

3D Particle Movement: Single Threaded

3D Particle Movement: Multi-Threaded

N-Body Simulation

When a series of heavy mass elements are in space, they interact with each other through the force of gravity.  Thus when a star cluster forms, the interaction of every large mass with every other large mass defines the speed at which these elements approach each other.  When dealing with millions and billions of stars on such a large scale, the movement of each of these stars can be simulated through the physical theorems that describe the interactions.  The benchmark detects whether the processor is SSE2 or SSE4 capable, and implements the relative code.  We run a simulation of 10240 particles of equal mass - the output for this code is in terms of GFLOPs, and the result recorded was the peak GFLOPs value.

N-Body Simulation

Grid Solvers - Explicit Finite Difference

For any grid of regular nodes, the simplest way to calculate the next time step is to use the values of those around it.  This makes for easy mathematics and parallel simulation, as each node calculated is only dependent on the previous time step, not the nodes around it on the current calculated time step.  By choosing a regular grid, we reduce the levels of memory access required for irregular grids.  We test both 2D and 3D explicit finite difference simulations with 2n nodes in each dimension, using OpenMP as the threading operator in single precision.  The grid is isotropic and the boundary conditions are sinks.  We iterate through a series of grid sizes, and results are shown in terms of ‘million nodes per second’ where the peak value is given in the results – higher is better.

Explicit Finite Difference Solver (2D)Explicit Finite Difference Solver (3D)

Grid Solvers - Implicit Finite Difference + Alternating Direction Implicit Method

The implicit method takes a different approach to the explicit method – instead of considering one unknown in the new time step to be calculated from known elements in the previous time step, we consider that an old point can influence several new points by way of simultaneous equations.  This adds to the complexity of the simulation – the grid of nodes is solved as a series of rows and columns rather than points, reducing the parallel nature of the simulation by a dimension and drastically increasing the memory requirements of each thread.  The upside, as noted above, is the less stringent stability rules related to time steps and grid spacing.  For this we simulate a 2D grid of 2n nodes in each dimension, using OpenMP in single precision.  Again our grid is isotropic with the boundaries acting as sinks.  We iterate through a series of grid sizes, and results are shown in terms of ‘million nodes per second’ where the peak value is given in the results – higher is better.

Implicit Finite Difference Solver (2D)

CPU Real World IGP Compute
Comments Locked

48 Comments

View All Comments

  • Impulses - Monday, November 18, 2013 - link

    Ian has a pretty in depth article on this subject, look back thru the archives.

    Memory prices haven't increased as much as I thought, if at all... I bought a 1600 4x4GB Patriot kit last year, precisely around this time, it was like $55 or something with a discount (I remember not seeing any better deals around Black Friday). My first exposure to Patriot too but it's worked out well.
  • hp9000 - Friday, November 22, 2013 - link

    I'm not so sure about that, I bought a 32gb 1866 G.Skill Ares kit in December of last year for $109.99 (I'm looking at the invoice) and now the same kit is $283.49 (newegg). That's a huge price increase in my book.
  • IanCutress - Monday, November 18, 2013 - link

    You want my memory scaling article on Haswell:
    http://www.anandtech.com/show/7364/memory-scaling-...
    There are 26 different combinations of MHz / CAS there, from 1333 C9 to 3000 C12, representative of many 2x4 GB Hynix MFR kits available to purchase today.
  • Franzen4Real - Monday, November 18, 2013 - link

    Oh great!! Thank You!! Not sure how I missed that in the first place.... Bigtime thanks for all of your time and effort on these tests!!
  • djscrew - Tuesday, November 19, 2013 - link

    A (very) basic rule of thumb: 1 Cas Latency = 1 Command Rate = 1 Bump in MHz (1333/1600/1866). With the bump in MHz considered more valuable.
  • dingetje - Monday, November 18, 2013 - link

    1.65 volt and higher ?
    so the haswell memory controller doesnt have a problem with voltage higher than 1.5 or will it get fried eventually ?
  • IanCutress - Monday, November 18, 2013 - link

    Did you used to have Hyper memory on Nehalem by any chance? That combination had issues above 1.75 volts. I have not encountered any issues running memory up to 1.75v on Sandy Bridge, Ivy Bridge or Haswell. All my chips just work. Otherwise 1.65 volt kits wouldn't be selling as well as they do, and overclockers wouldn't be pushing 1.8v on air / 2.0+ volts on liquid nitrogen.
  • dingetje - Tuesday, November 19, 2013 - link

    that it runs great i dont doubt....was just wondering wether on the long term the hawell memory controller will have issues (seeing the spec is 1.5)
  • dingetje - Tuesday, November 19, 2013 - link

    ^haswell (typo)

    im running a 1.35v (@1.5v) crucial kit myself on haswell by the way
  • mfenn - Tuesday, November 19, 2013 - link

    Yes, because extreme overclockers care so much about longevity. Ian, you should make an effort to get out of the extreme OC and corporate PR echo chambers once and a while. It is really having an effect on the quality of your articles.

Log in

Don't have an account? Sign up now