So my boss mentioned that he wants to set up a new media server and needs me to recommend the best CPU and GPU chips/cards to buy. So what do I do? I look at the data.

The data provides ‘some’ information on CPU and GPU chipsets as follow:

There are some notable omissions such as core count, so later I’ll implement some ‘creative’ calculations to derive some values.

My plan is to provide my boss an interface that lets him select some options and be presented with a candidate list of CPU + GPU combinations to buy.

And because I said combinations, the first thing I did was to self-join the data in Alteryx so that every CPU row is joined with every GPU row.

Now the data is ready for Tableau.

Step 1 – Additional Measures

Now, this isn’t just any old media server – it’s a Plex server. And plex server hardware requirements depend on what your clients are doing and what they want. So, I asked the following questions:

  • Are they transcoding in HD or 4k?
  • How many simultaneous transcoding tasks will the server be running?
  • Do you need the latest (Av1) media encoding support with your GPU?
  • How much heat are you willing to put up with in your media room?

To answer these, I created the following calculated measures for each record (remember each record now has a CPU + GPU combination):

  • A CPU (processing) score based off the transistor count and frequency
  • A GPU (processing) score based on the 16/32/64 GFLOPS figures
  • How many simultaneous HD (1080p) transcoding tasks a GPU can perform
  • How many simultaneous 4k transcoding tasks a GPU can perform
  • How many simultaneous HD (1080p) transcoding tasks a CPU can perform
  • How many simultaneous 4k transcoding tasks a CPU can perform
  • The total heat output (based off the combined Tdps of the CPU and GPU


Now, because the scores I’ve calculated are a bit of guesswork due to the incomplete data set, I retrieved a whole lot of passmark data for CPUs and GPUs, determined the range of passmark scores, then normalized my own scores to match that range. My scores are still very crude calculations, but at least now they’re mapped to a realistic passmark range.

Finally, I create two last measures:

  • Total Score for each row (CPU + GPU combo) by adding my normalised scores
  • Price for each row – completely fabricated and slightly randomised based off the total score, but it servers as an extra reference point that my boss can use in a real world case to make his decision on what to buy.

Step 2 –Charts

In terms of UI, I want to show all options in a simple visual for my boss, so I crated a scatter plot.

The plot shows all option available – above it shows almost the entire data set, but when narrowed down, my boss can easily see which options have high scores and reasonable prices.

As an added bit of information, the shape sizes indicate the power difference between the CPU and GPU, in case my boss is concerned about processing bottlenecks should his requirements change (even though the recommendation will more than satisfy whatever criteria he inputs into the filters).

Because the scatter might return a whole lot of results, I added a couple of bar charts to provide an easy-to-read list of the top 5 CPUs and GPUs provided in the scatter plot. This helps my boss quickly identify his top options.

And put all together we have the final dashboard:

An easy-to-use, simple interface to decide which CPU and GPU to put into a media server. Nothing to overwhelming or complicated – something easy to read and digest.

The Data School
Author: The Data School