Skip to main content

To Build or Not to Build One’s Own Desktop Computer?

VALENTINA
[UPDATED JUNE 2021] - Whether you're a hobbyist, or someone who just needs a good desktop computer, or an IT professional who wants a wider breath of knowledge, or a gamer who needs a performant machine, you might have contemplated at some point whether to build your own desktop computer.

If you're a hobbyist, I think it's a great project.  If you're an IT professional - especially a "coder" - I urge you to do it: in my opinion, a full-fledged Computer Scientist absolutely needs breath, ranging from the likes of Shannon's Information Theory and the Halting Problem - all the way down to how transistors work.

And what about someone who just needs a good desktop computer?  A big maybe on that - but perhaps this blog entry will either help you, or scare you off for your own good!

To build, or not to build, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of OEM's cutting corners and limiting choices,
Or to take arms against a sea of details...

My Own Story
Here’s an overview of my experience in designing and building my desktop computer in early 2017 (with updates up to June 2021) – named Valentina in part because completed around Valentine’s Day!

You will probably have different needs, and come to different conclusions – not to mention the technological changes in the elapsed time – but I hope that sharing my thought process will be of help!

Why build your own computer from individual parts? In my opinion, besides the reasons I mentioned at the opening:
  • It's one of those things to do, ahem, at least once in one’s life!
  • You’ll learn tons about computers
  • You’ll get to know your system inside out
  • You won’t be at the mercy of OEM’s such as Dell cutting corners by using shoddy components (as I learned the hard way from past store-bought computers!)
  • Ultimate system personalization for your needs, especially if you have specific needs
You will need to ponder on what matters to you, especially in areas of special needs, such as gaming or VR. For example, my priorities included:
  • Room to expand, as the scientific computations I do (primarily in Theoretical Neuroscience and Machine Learning) are expected to expand
  • Capable of running today’s high-end consumer VR, such as Vive
  • Video editing and transcoding
  • High-quality flight simulators
  • A very stable, trustworthy system
  • Fairly future-proof for at least several years
  • No penny-pinching, but no top-of-the-line just for the sake of being at the cutting edge.
This blog entry is NOT about how to build the desktop computer; it's about the decision making that goes into it.

SOME ASSEMBLY REQUIRED!

DECISION #1 – ECC memory
My desire for strong reliability led me early on to settle on error-correcting memory (ECC). Debates about exactly how useful and cost effective ECC is, have raged for years (here are two articles: Advantages of ECC Memory and To ECC or Not To ECC.)

Well, if I were an OEM, I may concur that ECC is not cost-effective for general consumer desktops, but for my own computer (“high reliability” and “no penny pinching”) I decided it was worthwhile. It will increase costs, but nothing outrageous… and it will decrease options, and to a small extent speed, but nothing I couldn’t live with.


DECISION #2 – Motherboard
My decision to use ECC memory severely restricted my choice of consumer motherboards – many of which don’t support ECC – and pushed me in the direction of server motherboards.
At the same time, though some of my intended uses (long-running scientific simulations) are server-like, the fact of the matter is that Valentina was meant to be my primary desktop computer.
In particular, server motherboards tend to offer few USB ports, etc, while a desktop is best suited to have lots!
I also wanted a motherboard with relatively high – for a consumer market – max memory (“room to expand” and “future proof”.)
To my rescue came Gigabyte GA-X170- WS ECC, a relatively high-end desktop motherboard for the “enthusiast market”, with ECC support and a max of 64 GB of memory. I found Gigabyte’s customer support to be slow, but the board turned out to be very satisfactory.

DECISION #3 – CPU
The CPU must be compatible with the motherboard, and in my case it must also support ECC. Among the CPU’s satisfying those requirement, and guided by the priorities I stated earlier, I settled on the Intel Xeon E3-1245 v5 @ 3.50GHz, a quad-core CPU, relatively high-end but not top of the line.

DECISION #4 – Memory
The memory must be compatible with the CPU, and in my case it must also support ECC. My chosen motherboard being fairly new, it supported (only) the relatively new, fast DDR4 memory.
I bought a Kingston ValueRAM 16GB (1 x 16G) DDR4 2133 Server Memory ECC
16 GB is plenty for me now… but I’m able to rev up to 32 or even 64 GB when the time comes.
[Dec. 2018 update: RAM prices have seriously increased, rather than decreased, in the past couple of years!  Waiting for lower prices isn't always good...]

DECISION #5 – SSD for the main OS
My Gigabyte motherboard supports one SSD using the newer – and much faster – interface PCIe 3.0 x4 and protocol NVMe 1.1.
I bought a 250 GB Samsung 960 EVO M.2 NVMe SSD  from NewEgg to take advantage of those newer technologies.
Please note that this is a small-capacity (250 GB) SSD, which I use for the OS and programs, for the main one of the 3 operating systems in my triple-boot configuration.
For the other 2 operating systems, and for the bulk of my storage needs, I use other SSD’s (SATA interface), hard drives (SATA interface) and external drives (USB 3 connections.)
[Dec. 2018 update: that system drive is almost full. I’m glad I didn’t go any lower than 250 GB!]

DECISION #6 – The Case
This being the first computer I ever built, I wanted a case that was easy to use – and in particular, not cramped. Also not too heavy, to be nice to my back!
Since I use lots of external drives that I’m always plugging and unplugging, I also wanted at least two fast USB-3 ports in the front of the case.
And some style and elegance!
After reading a bazillion user reviews as I ventured into this new territory, I settled for a Phanteks Enthoo Pro M PH-ES515PA_BK (Full Acrylic Window version).
Very spacious, good airflow, a clever design and easy to use: the glowing reviews were right!  I bought it from NewEgg.
Manufacturer's page

DECISION #7 – Power Supply
I opted for a modular design (where you use only the cables you need) and a fairly efficient energy use (“80+ GOLD” rating.)
In view of expected future expansion, I picked a comfortably large wattage (850 W), and I followed the prevalent advice not to be a cheapskate about power supply!
Indeed, a past computer of mine suffered from a fried motherboard due to a shoddy power supply, according to the repair shop; lesson learned…
Even though I had built power supplies from individual electronic components back in high school, I wasn’t too familiar with power supplies for computers.
My research led me to the stellar-rated CORSAIR RM850i. 850W 80+ GOLD Haswell Ready Full Modular ATX12V.
Manufacturer page .  An entry in a review site that helped me.

DECISION #8 – The Other SSD’s
My new computer case supports 2 SSD’s (not counting the one in card form installed directly on the motherboard.) I felt that was adequate.
I’ll wait to buy larger-capacity SSD’s when the prices come down, but for now I’m comfortable with a 1 TB Crucial MX200 2.5″ and a 500 GB version of the same brand.
Both use the (not-so-)good, ol’ SATA interface, familiar from rotary hard drives (SATA generation 3, offering 6 Gbps.)
[2018 update: I took away the product links because that particular SSD model is now obsolete.]
[2019 update: I ended up partitioning the 1 TB drive in two - on one `partition I installed Linux Mint, and on the other one Windows 10; my "main" OS, on the fast drive mentioned in #5, is Windows 7]

DECISION #9 – The Rotary Hard Drives
My computer case, in its default configuration, can hold 2 rotary hard drives. If you buy an extra internal shelf (from the case manufacturer), and move around a fan, you can install a bunch more hard drives.
For now, I’m happy with the 2 hard drives I already had on hand, 2 TB and 3 TB respectively.
[Update: I upgraded the aging 2 TB one with a new 6 TB: Seagate BarraCuda Pro ST6000DM004 (7,200 RPM) ; good results after I turned off the “drive sleep” mode in the OS control panel]

DECISION #10 – The GPU
Well, my CPU contains a built-in GPU. It works perfectly well for my monitor and for video editing. Some day, when I get to VR, or when my scientific simulations grow to the point of benefiting from a GPU accelerator, my motherboard is ready to accept a fast PCIe Gen3 card.

[Dec. 2018 update: I ended up splurging on a high-end graphics card, because I wanted something that would serve me well for several years.  I got a Gigabyte GeForce RTX 2080 Gaming OC 8G , and have been quite pleased with it.  It takes 2 PCI x16 slots, and also needs 6-pin and 8-pin supplemental power connectors.  Manufacturer's page.
As of June 2021, I'm still pleased with it; it was well-spent money that I've been getting good mileage out of, over the years!]


And the verdict is…

Now that the dust has settled, I’ve very happy with my choices and with the experience; it can be very satisfying to embark on a more ambitious project once in a while!
As you can from my various updates later, the system nicely grew with my needs and with technological advances.


As a "plan B", I had a local computer repair shop I was ready to turn to for help... but it turned out to be un-necessary ☺


I hope that this blog entry will inspire you, too, if it sounds like it's the right project for you!

Comments

Popular posts from this blog

Discussing Neuroscience with ChatGPT

UPDATED Apr. 2023 - I'm excited by ChatGPT 's possibilities in terms of facilitating advanced learning .  For example, I got enlightening answers to questions that I had confronted when I first studied neuroscience.  The examples below are taken from a very recent session I had with ChatGPT (mid Jan. 2023.) Source: https://neurosciencestuff.tumblr.com In case you're not familiar with ChatGPT, it's a very sophisticated "chatbot" - though, if you call it that way, it'll correct you!  'I am not a "chatbot", I am a language model, a sophisticated type of AI algorithm trained on vast amounts of text data to generate human-like text'. For a high-level explanation of how ChatGPT actually works - which also gives immense insight into its weaknesses, there's an excellent late Jan. 2023 talk by Stephen Wolfram, the brilliant author of the Mathematica software and of Wolfram Alpha , a product that could be combined with ChatGPT to imp...

Using Schema in Graph Databases such as Neo4j

UPDATED Feb. 2024 - Graph databases have an easygoing laissez-faire attitude: "express yourself (almost) however you want"... By contrast, relational databases come across with an attitude like a micro-manager:  "my way or the highway"... Is there a way to take the best of both worlds and distance oneself from their respective excesses, as best suited for one's needs?  A way to marry the flexibility of Graph Databases and the discipline of Relational Databases? This article is part 5 of a growing,  ongoing  series  on Graph Databases and Neo4j Let's Get Concrete Consider a simple scenario with scientific data such as the Sample, Experiment, Study, Run Result , where Samples are used in Experiments, and where Experiments are part of Studies and produce Run Results.  That’s all very easy and intuitive to represent and store in a Labeled Graph Database such as Neo4j .   For example, a rough draft might go like this:   The “labels” (b...

Graph Databases (Neo4j) - a revolution in modeling the real world!

UPDATED Oct. 2023 - I was "married" to Relational Databases for many years... and it was a good "relationship" full of love and productivity - but SOMETHING WAS MISSING! Let me backtrack.   In college, I got a hint of the "pre-relational database" days...  Mercifully, that was largely before my time, but  - primarily through a class - I got a taste of what the world was like before relational databases.  It's an understatement to say: YUCK! Gratitude for the power and convenience of Relational Databases and SQL - and relief at having narrowly averted life before it! - made me an instant mega-fan of that technology.  And for many years I held various jobs that, directly or indirectly, made use of MySQL and other relational databases - whether as a Database Administrator, Full-Stack Developer, Data Scientist, CTO or various other roles. UPDATE: This article is now part 1 of a growing, ongoing series on Graph Databases and Neo4j But ther...

Anti-Aging Research: Science, not Hype

Last updated May 2023 Q: "How is aging a disease?" A: It's a dynamic system that veers away from its homeostasis (normal equilibrium point): hence a form of slow-progressing illness. Labeling it as 'natural' is a surrender to our traditional state of ignorance and powerlessness, which fortunately is beginning to be changed! Aging is "normal" only from the point of view of the "selfish gene", for whom the body is a disposable carrier. Individuals organisms - for whom self-preservation has a different meaning than for genes - have received scant help from evolution... with rare exceptions such as the T. dohrnii jellyfish (which I discuss here )... but now the time has finally arrived for our rational design to remedy some of the cellular flaws that evolution never bothered to correct!   The above is my standard answer to an oft-asked question. The science of aging is by all evidence very misunderstood by the general public.  Hype,...

What are Graph Databases - and Why Should I Care?? : "Graph Databases for Poets"

  This is a very gentle introduction to the subject.  The subtitle is inspired by university courses such as "Physics for Poets"!  (if you're technically inclined, there's an alternate article for you.) It has been said that "The language of physics (or of God) is math".  On a similar note, it could be said that: The language of the biological world - or of any subject or endeavor involving complexity - is networks ('meshes') What is a network?  Think of  it as the familiar 'friends of friends' diagram from social media. Everywhere one turns in biology, there's a network – at the cellular level, tissue level, organ level, ecosystem level.  The weather and other earth systems are networks.  Human societal organization is a network.  Electrical circuits, the Internet, our own brains...  Networks are everywhere! What can we do with networks, to better understand the world around us, or to create something that we need? Broadly ...

Using Neo4j with Python : the Open-Source Library "NeoAccess"

So, you want to build a python app or Jupyter notebook to utilize Neo4j, but aren't too keen on coding a lot of string manipulation to programmatic create ad-hoc Cypher queries?   You're in the right place: the NeoAccess library can do take care of all that, sparing you from lengthy, error-prone development that requires substantial graph-database and software-development expertise! This article is part 4 of a growing,  ongoing  series  on Graph Databases and Neo4j   "NeoAccess" is the bottom layer of the technology stack provided by the BrainAnnex open-source project .  All layers are very modular, and the NeoAccess library may also be used by itself , entirely separately from the rest of the technology stack.  (A diagram of the full stack is shown later in this article.) NeoAccess interacts with the Neo4j Python driver , which is provided by the Neo4j company, to access the database from Python; the API to access that driver is very p...

Visualization of Graph Databases Using Cytoscape.js

(UPDATED APR. 2024)   I have ample evidence from multiple sources that there are strong unmet needs in the area of visualization of graph databases. And whenever there's a vacuum, vendors circle like vultures - with incomplete, non-customizable, and at times ridiculously expensive, closed-box proprietary solutions.   Fortunately, coming to the rescue is the awesome open-source cytoscape.js library ,  an offshoot of the "Cytoscape" project of the  Institute for Systems Biology , a project with a long history that goes back to 2002. One can do amazing custom solutions, relatively easily, when one combines this Cytoscape library with:   1) a front-end framework such as Vue.js   2) backend libraries (for example in python) to prepare and serve the data   For example, a while back I created a visualizer for networks of chemical reactions, for another open-source project I lead ( life123.science )   This visualizer will look and feel generally ...

Neo4j Sandbox Tutorial : try Neo4j and learn Cypher - free and easy!

So, you have an itch to test-drive Neo4j and its Cypher query language.  Maybe you want to learn it, or evaluate it, or introduce colleagues/clients to it.  And you wish for: fast, simple and free! Well, good news: the Neo4j company kindly provides a free, short-term hosted solution called "the Neo4j sandbox" .  Extremely easy to set up and use! This article is part 2 of a growing, ongoing series on Graph Databases and Neo4j Register (free) for the Neo4j "Sandbox" Go to sandbox.neo4j.com , and register with a working email and a password.  That's it! Note that this same email/password will also let you into the Neo4j Community Forums and Support ; the same login for all: very convenient! Launch your instance - blank or pre-populated After registering, go to  sandbox.neo4j.com  , and follow the steps in the diagram below (the choices might differ, but the "Blank Sandbox" should always be there): Too good to be true?  Is there...

Full-Text Search with the Neo4j Graph Database

(UPDATED May 2024)   Now that we have discussed a full technology stack based on Neo4j (or other graph databases), and that we a design and implementation available from the open-source project BrainAnnex.org  , what next?  What shall we build on top? Well, how about  Full-Text Search ?  This article is part of a growing, ongoing series on Graph Databases and Neo4j Full-Text Searching/Indexing The Brain Annex open-source project includes an implementation of a design that uses the convenient services of its Schema Layer , to provide indexing of word-based documents using Neo4j. The python class FullTextIndexing ( source code ) provides the necessary methods, and it can parse both plain-text and HTML documents (for example, used in "formatted notes"); parsing of PDF files and other formats will be added at a later date. No grammatical analysis ( stemming or lemmatizing ) is done on the text.  However, a long list of common word ("stop ...

Neo4j & Cypher Tutorial : Getting Started with a Graph Database and its Query Language

You have a general idea of what Graph Databases - and Neo4j in particular - are...  But how to get started?  Read on! This article is part 3 of a growing,  ongoing  series  on Graph Databases and Neo4j   If you're new to graph databases, please check out part 1 for an intro and motivation about them.  There, we discussed an example about an extremely simple database involving actors, movies and directors...  and saw how easy the Cypher query language makes it to answer questions such as "which directors have worked with Tom Hanks in 2016" - questions that, when done with relational databases and SQL, turn into a monster of a query and an overly-complicated data model involving a whopping 5 tables! In this tutorial, we will actually carry out that query - and get acquainted with Cypher and the Neo4j browser interface in the process.  This is the dataset we'll be constructing: Get the database in place If you don't already have a datab...