Building a PC for first time: Minimizing Bottlenecks
When I first decided to build my own PC here were my initial requirements:
- Must have good concurrent big data processing capability - as such it must have decent # of physical cores, especially important for processors like logstash which utilize physical cores. example: analyzing data from different sources per callbacks fired from various sockets based on time of the day resulting in non linear data dump.
- Must have good machine learning capability - as such it must have decent GPU horsepower.
- Must have good response times - Parts must have less bottlenecks, processor should be at least latest gen either from Intel or Ryzen
- Must be long lasting, something I can build and run for a while without having to maintain and upgrade parts - as such it must have good cooling/airflow with decent part specs
- Don't care about games - as such I had option to better invest the money potentially spent for a 144hz monitor towards better processor or RAM with better clock speed.
- Must provide reasonable value per $ spent
- Something I realized I wanted after I started to build: System must be overclockable
The parts I decided to go with:
Justification for choosing these parts & other possible build paths:
- Case - As the thing that will hold all of the CPU parts, this was the first thing I researched and ordered when I started building. I initially wanted to get Full Tower Case but after comparing the size with Mid Tower Case- for a personal home build Mid Tower has more than enough space for all the components and Mid Tower gives you a more granular airflow control with your fans compared to full tower.
I chose Fractal's Meshify C mainly because:
- Front has mesh panel, important for systems built with intention of overclocking which requires good airflow. - Well reviewed, Easy to build as a first time builder (Scandinavian design) - Has tempered glass which I valued as I was already getting a RGB supported motherboard & GPU.
Other cases I strongly considered:
- Phanteks Enthoo Pro M: Good airflow. Very similar to mesify C, contains 1x ssd bracket on back while meshify has 2x - Phantek P400s: Similar features as above minus good airflow part but with the option of beautiful snow white color which would go beautifully with rgb led schemes. - Corsair 540 Case: Unique case (might not be suitable for first time builders) with awesome airflow. My choice if I ever build again.
- CPU - I went with Ryzen 1700 and it's fair to say that I am the most happy with this choice on the build besides my 1TB SSD purchase.
- My 1700 is overclocked to 3.7Ghz from default 3.0Ghz by providing mere 0.2v more power from 1.18V to 1.2V. This is 0.1ghz more than what default 1800x provides. - While the CPU binning process might mean you might somewhat be reliant on sillicon lottery, you still get best CPU value & future proof your machine with an 8 core processor. (For gaming, look into how directx API will now slowly start utilizing multi cores instead being reliant on per-core performance) As far as longevity of an overclocked processor goes, my 1700 CPU temps are always ~35c because of my Noctua NH-D15 cooler. - Easily goes head to head with Ryzen 1700x, 1800x & Intel's 7700, 8700 processors.
Other processors I strongly considered:
- Intel 8700k/Intel 7700k: Only putting these in as since they are Ryzen's strong Intel counterpart. Never really under my consideration after realizing I would get 2 extra cores & wayy more out of 1700 especially for my use case of big data processing. Important to note: Coffee Lake easily has far superior per core performance compared to stock 1700 besides the 8700k also being overclockable. - Ryzen 1800x: These were just higher binned 1700s in my mind. It's worth looking into how CPU binning works if you are building a pc. This provides more insights into how sometimes non premiums can actually end up providing more value if you are willing to take the risk.
- Cooler - The NH-D15 was reviewed to be the best air cooler in the market. Looking back, I should have chosen the NH-D15s instead of NH-D15 because my CPU's temperatures are so low that I didn't end up needing the extra fan provided by regular NH-D15. Main reason for choosing NH-D15:
- One of the best air cooler on market, provides on par cooling performance with liquid cooling. - Goes head to head with it's competitors in terms of Db noise produced vs cooling performance. - Easy installation compared to coolers like Be Quiet & comes with AM4 compatible goodies needed on a X370 motherboard.
Thermalright True Spirit 140: Don't want to spend as much as NH-D15 while getting almost the same performance? Get this. be quiet! DARK ROCK 3 SilentWings: If you value silence from air cooler while still overclocking your processor. Liquid cooling: Lots of cool options I would like to look into if i ever build again. Didn't look into too much as a first time builder.
Comprehensive comparison of air coolers: Google Doc by FrostyTech
- Motherboard - AsRock's X370 Killer SLI/ac, primarily because in addition to having good reviews I liked that it had integrated wifi & audio card, letting me spend the savings towards better clocked RAM. Some other reasons:
- Tested to run 3k+ Mhz RAM which is important for Ryzen processor. - Overclock friendly BIOS. Minor inconvenience: Load line calibration settings was missing with default BIOS. So I had to spend ~30min flashing the latest BIOS image. Well worth considering the improvement in overclocking that provided. - Great value per $ spent. - 2 M.2 slots, 6 sata ports, 5 fan input pins, and as a bonus contains RGB LEDs on the board!
- Asus Prime X370 Pro: Similar to X370, minus the wifi card plus better audio card, 8 sata ports. Also comes with various interesting ASUS-only features worth looking into. - GIGABYTE GA-AX370-Gaming: Similar to Asus Prime X370 plus even better audio card. - ASUS ROG STRIX X370-F: Premium X370 mobo if you are going all out with the spending, comes with stuff like Aura Sync, lots of output ports, compatiblity with 3d accessories etc.
- RAM - I went with G.Skill - Trident Z DDR4-3200 (2 x 8GB), primarily because it was tested to be a Samsung B-Die RAM. After finding RAM had major chance of bottlenecking in Ryzen systems I had to switch my original RAM choice. To check if the RAM is B-Die refer to this reddit thread - general rule of thumb 32k+ Mhz RAMs will perform well on Ryzen systems. My reason for choosing this were pretty straightforward:
- Higher clock speed, lower CAS latency. - Is a B Die RAM. - Name branch, good value- can be supplemented with 2x8gb more if needed in the future.
RAM has multitude of options but I only considered RAMs with at least 3k Mhz clock speed. It's worth referencing the reddit thread shared above when looking for RAM options while building a Ryzen system.
- GPU - Settling down on this part needed comparison with the then newly released GPU from AMD - Vega 64. I decided to go with ASUS ROG GeForce GTX 1080 STRIX. Definitely doesn't conform with the spirit of getting best value (but does provide almost cutting edge performance). Some reasons for choosing this GPU over Vega 64:
- The 1080 had aftermarket cooler versions available while vega was plagued with heat & sound problems as only reference versions are available. - Specifically ASUS strix version because, it has three fans (I intend on using my GPU a lot for processing) so I didn't want any heating issues. - Strix actually fit my case unlike MSI GeForce GTX 1080 DirectX 12 GTX 1080 DUKE which seemed really heavy & wide. Since I already had an ugly Noctua NHD15 on my motherboard I wanted to avoid any possible sagging issues with heavy GPU.
- Vega 64: A strong contender. With appropriate drivers release it very might well go head to head with 1080ti eventually. It definitely has beef in the hardware even though it might be lacking in real world benchmarks currently. Vega 64 actually has more TFLOPS making it even more appropriate for machine learning, with its only issue being heat & sound until aftermarket cooler versions are available. - GTX 1080 ti: Better GTX 1080 if you would like even more horse power on your GPU.
- Storage - SSD are such an improvement on day to day performance over HDDs! As a first time SSD user I would definitely not switch back to traditional HDDs (in fact, I was motivated to supplement the HDD on my acer 33BM laptop with a M.2 NVME SSD as boot device with noticable difference- boot times slashed by ~80%!, after building my pc). While most favor 128/256GB SDD + 1TB HDD combo, I decided to go with Crucial's 1TB SSD + 8TB External HD. Reasonings for storage choices:
- Having 1TB SSD would mean I wouldn't have to worry about managing/switching files between HDD & SSD. - I decided to go with 8TB external HD instead because, I want to have a good chunk of storage readily available to me for archiving big data. It's highly likely ill be building a NAS after couple of years so having a 8tb storage handy would be a good start. - The external 8TB HDD would serve as a good offsite backup for my SSD contents. - Once I invest on good SSD I can possibly reuse it on future upgrades if I want to. I can always slap on an additional internal HDD for extra storage in the future without much hassle since my boot system is already set up on SSD.
Looking back I would probably spend a little more on even premium SSD like Samsungs 256GB EVO M.2 as my booting device hooked directly to my motherboard and 1TB SSD connected to SATA as regular storage. This might not see too much of a performance boost but would be in the spirit of minimizing bottlenecks. Similar Options:
- M.2 SSDs w/o NVMe - These can be hooked directly to motherboard, pretty similar in performance with regular SSD. - M.2 SSDs w NVMe - Definitely an improvement over SATA based SSDs especially for data transfer. Using this as boot device would mean your boot times would now rely on how fast your motherboard boots into this device slot, which is pretty cool. - 7200 RPM HDDs - Traditional HDDs worth using to supplement your build if you decide to go with small capacity SSD.
- Others - Some other parts I bought during this build were, 2x 140mm intake fans(more effecient vs 3x 120mm), a 24" 60Mhz monitor(which will be my secondary monitor if I ever decide to upgrade to a 144hz monitor), an executive chair and LED "mem-chanical" keyboard/mouse to stick with RGB theme.
As it stands, currently this build's bottleneck is the monitor i.e my PC boots faster into login screen than my monitor can turn on which is quite nice! ~1 week into it no complaints so far: awesome speed, minimal noise from CPU, low temps and nice to look at.
It is running a whole ethereum node, Ubuntu Base, couple of other linux VM's, various programming background services like MySQL server, Elasticsearch, Nginx etc without any hiccups!
Looking back, here are some lessons learned for any possible readers intending to start building soon:
- Flesh out the things you would like from your build before you start. There are some cases where Intel build is suitable.
- PCPartPicker.com is handy for keeping track of your build progress, you can use one of the build from /r/pcmasterrace wiki as your baseline and modify the parts according to your needs as you go.
- Pay close attention to parts compatibility on your build. Research every parts before you purchase. Your build doesn't necessarily have to be tied to specific SKU/items but items in that category from name brands.
- /r/buildapc is a great resource for build questions & reviews.
- By timing the build around Cyber Monday/Black friday/Any holiday deals, after mail in rebates it's possible to build a pc around 60-70% (or even less) of regular price which gives the builder choice of using better parts & time to research as the build progresses.