Update 5/31/15: Go check out How to build a true Solidworks Workstation for about $300. The following post directly contradicts the title of the latest one by saying that “You will never build a true workstation for under $400.” Well, it turns out that it may be possible, if you want it bad enough!
I wrote in the very first blog entry that my learning experiences would be shared, such that anyone reading might benefit from my mistakes. I then wrote a blog about the Cheapest Solidworks Workstation. I maintain that the build provided in that post will run Solidworks 2013. I just don’t think that it will do it well. It especially won’t do it well in when working with complex geometry or larger assemblies. Why? Because, despite the AMD’s processor’s 6 cores, or the i5’s stability, Solidworks just requires a whole hell of a lot of overhead. Furthermore, as I’ve continued to research the issue and discuss it with friends, I’ve come across new information that leads me to believe that you shouldn’t skimp on a true workstation.
The previous post listed some general criteria that your workstation should meet: High clock speed, tons of RAM, a graphics card, and a somewhat-quick hard disk. This is fine. A computer with these things will definitely run Solidworks, but will it run it reliably?
Components used in a business setting are designed to be reliable. Designing for reliability is expensive, and these components are also expensive. In the case of processors, some classes are error-checking capable, while others forgo that in favor of cost over reliability. Now, when I say reliability, I’m referring to the reliability of accurate data. When working with Solidworks (or other CAD programs), you’re likely to do some finite element analysis, motion studies, etc. You also want some of your modelling to be highly precise. To ensure this, workstation-grade components include error checking, which ensures that the calculations being performed are performed correctly, and don’t result in outrageous numbers.
To put it in more technical terms: Highly precise numbers (ie. very large numbers with lots of positions to the right of the decimal place, such as 123456789.0123456789) require lots of bits to store. If you don’t know anything about binary numbers, here is a quick intro: For every “place” in the number, you can only put a 1 or a 0. Just like decimal numbers, the “place” represents a multiple. So, the decimal 10 means “one ten and zero ones”, 25 means “two tens and five ones”, etc. For binary, each place represents the number 2 to some exponent. So, the 0th place is 2^0 (which equals 1). The 1st place is 2^1 (which equals 2). The 2nd place represents 2^2 (which equals 4). The 3rd place represents 2^3 (which equals 8), and so on. So, 0000 = 0, 0001 = 1, 0010 = 2, 0011 = 2+1 =3, 0100 = 4 and so on. So, these are all positive, whole numbers represented in binary. Furthermore, computers are capable of computing ridiculously large numbers these days. And, of course, they also work with negative numbers, numbers with a stupid number of places behind the decimal, etc. So, how do you describe those numbers using binary?
The answer is that some of those bits in the binary number are reserved to help describe the number in more detail. For instance, how do you write a negative binary number? You sure as hell don’t stick a minus sign in front of it, because that minus sign doesn’t exist in binary. Instead, you assume that binary numbers starting with 1 are negative. So, 0101 is the number 5, while 1101 is “negative 8 plus 5”, or -3. But wait, 1101 is also 13! True. That’s why processors have what is called a condition register, which tells the programmer that the result of the previous operation could be a negative number. The programmer has to put that number (and the register flag) into context in his program. In other words, the programmer has total control over whether a binary number is positive or negative, simply by choosing to acknowledge a flag or ignore it.
Great, dude, but, like, what the hell does this have to do with error checking? Well, there is also this little thing called overflow. Overflow occurs when a calculation results in a number that has some ambiguous flags, and the program interprets the number as something that it isn’t. For example, have you ever “glitched” a game? In many instances, glitches are the result of overflowing, which puts strange numbers in places that the program does not expect those numbers to appear. Glitches both cause crashes and cause glorious level-skipping, gear-acquiring, or other beneficial cheats. In most cases, overflow is likely to cause a crash or a problem. Have you ever had a 3D model in your game do some really crazy things? Maybe fly across the map, distort grotesquely, or disappear? Likely the result of some number out of the standard range expected by the engine appearing where it doesn’t belong.
THUS, ERROR CHECKING IS IMPORTANT. There, I finally got back to where I started. Workstations are used in business settings. And, when it comes to CAD or 3D design, some operations take hours, or longer. If your hardware does not have its own error checking capability, and you’re in the middle of an hours-long finite element analysis or days-long render, what happens? Some glitch could crash the whole thing. You could lose tons of time. In the business environment, lost time is lost money. So, you safeguard. You buy components that avoid these errors by preventing them up-front. The downside? These components cost more. But, if you’re legitimately making money with this workstation, the initial investment is probably worth it.
Well, that’s just, like, your opinion, man!
So, what kind of components are we looking for, now? Good question. I’m still researching this, and trying to find an optimal solution. At first glance, the components I would like to use are too expensive. You will never build a true workstation for under $400. Your best bet at that price range is to purchase a refurbished or off-lease workstation that is likely 3 or more years old. What good will that do? Well, if your version of Solidworks is equally old, you might be alright. The problem then is that your old version of Solidworks will not be able to receive files from newer versions. So, good luck with collaborating.
At the time of this writing, 5th generation Intel chips are on their way. I believe that they may use the same socket as the 4th generation. If it does, then purchasing a used workstation in the near future may give you the opportunity to upgrade it later. In other words, suffer with really old stuff now, but then suffer with just sort-of old stuff in a couple of years. Regardless, you’re going to be laying down a bunch of money for these things. That’s when it becomes important to actually earn money with your Workstation.