Jump to content

A question about building my own PC


gutza1

Recommended Posts

Disk caches are more than just dumb caches trying to keep recently accessed files in memory. They're essentially automatic RAM disks that resize themselves when needed, and try to predict what you're going to need in the future. Loading a major piece of software may involve accessing hundreds of files, creating hundreds or even thousands of random reads. If the cache can avoid those reads by keeping the files in memory, because you already used the software hours or even days ago, it's a huge win.

If you'd stop trying to teach me what terms mean, and listen to what I say, this would go much more smoothly. I'm well aware of what disk caches do. I'm also well aware of how well they work for desktop computers, which is not very well at all. You seem to assume that everything you do is accelerated by the disk cache. It's not. Your cache hits are rare, not the common case. And if the cache is keeping huge amounts of data around that you haven't touched for days, then it's a really, really awful cache and it's not doing anything useful for you.

And "huge win" is more than a bit of a stretch. There's very little to be gained on a cache hit on a desktop. Modern SSDs easily manage transfer rates in the hundreds of megabytes per second, with seek times of 0.1ms or better, limiting the potential gain to the ratio of the size of the read to the speed of your SSD. A 1GB cache hit, which is impossibly large, would save you ~2 seconds on a good SSD. Cache hits for anything under 50MB are below the threshold of human perception. Especially on a desktop, reads are very, very small, which means you're just not going to notice the disk cache except in rare cases, or if you have a tendency to launch the same large application a few dozen times a day, instead of just leaving it open like a normal person.

The predictive performance of the cache depends, among other things, on the expected memory usage patterns, and whether the expectations hold or not. If the expected peak memory usage, excluding the cache, is 80% of physical memory, the cache is going to work in a different way than if the peak is expected to be at 60%.

What? It's not about predicting peak memory usage, it's about predicting exactly which files will be used and when. You can have a billion gigabyte cache, but if the thing you want to read isn't cached, it does nothing. On desktops, it's much, much harder to predict access patterns and get a useful benefit because reads are small and diverse, and access times are dominated by seeking, not transfer rates. On gaming computers, disk caches are near useless, because load times are dominated by the CPU, the files wouldn't have fit in the cache anyway, and reads are very rare to begin with.

Windows has had the feature for literally 15 years. It's just not turned on except for server operating systems, because it doesn't provide a useful benefit to the end user, while inflating the hardware costs. This isn't some revolutionary Apple thing, they're a decade and a half late to the party and are doing it wrong.

In my country, three-year individual research grants are typically €250k to €300k. After overheads and research costs, that leaves you with a quite average middle-class salary. If buying twice as expensive computers increases your productivity by 5%, the return on investment is really good. In many other fields, the situation is even clearer, as professional services can easily cost €100 to €200 per hour.

You really think a disk cache makes you 5% more productive? Prove it. That's a huge difference, and if you're going to throw numbers around like that, you need to back it up.

Also, I could have sworn we were talking about building a gaming computer, not a professional workstation built with money from a research grant. Why don't we stick to relevant topics of discussion? Or, if you insist on talking about a completely different class of computer, designed for different workloads, I'll do the same and start talking about how no cell phone needs 16GB of memory, because you're getting it with federal assistance and they won't pay for that much. Sound fair to you?

Edited by LaytheAerospace
Link to comment
Share on other sites

There's very little to be gained on a cache hit on a desktop. Modern SSDs easily manage transfer rates in the hundreds of megabytes per second, with seek times of 0.1ms or better, limiting the potential gain to the ratio of the size of the read to the speed of your SSD. A 1GB cache hit, which is impossibly large, would save you ~2 seconds on a good SSD. Cache hits for anything under 50MB are below the threshold of human perception.

Ignore the transfer rates. The CPU probably can't keep up with the transfer rate anyway, unless you're just copying the data around. If you're processing the data in any way, you probably can't do it faster than tens of megabytes per second. Cache performance depends on the number of cache hits, not on the size of those hits.

What? It's not about predicting peak memory usage, it's about predicting exactly which files will be used and when. You can have a billion gigabyte cache, but if the thing you want to read isn't cached, it does nothing. On desktops, it's much, much harder to predict access patterns and because reads are small, access times are dominated by seeking, not transfer rates.

Of course it's about predicting memory usage. If the algorithms don't know how large the cache is going to be, they can't make informed decisions on what to keep in cache and what to remove from it. And while predictions are hard, they're not impossible. Thousands of people are working on improving cache performance all around the world, and they're making progress.

The fact that real-world performance depends more on random access times than transfer rates is what makes caches useful. The differences in random access times at the different levels of the memory hierarchy are usually much larger than the differences in sequential transfer rates.

Also, I could have sworn we were talking about building a gaming computer, not a professional workstation built with money from a research grant. Why don't we stick to relevant topics of discussion?

Reread my first message. This branch of the discussion started when I wondered how strange gaming PCs are, as I considered 16 GB to be the right amount of memory for a basic non-gaming desktop. It was never about gaming computers.

Link to comment
Share on other sites

Regarding the rate of cache hits, I recall reading in the context of hybrid drives that an 8 GB cache is sufficient to get a high hit rate for typical desktop use. That's within the range of what might be gained by having loads of RAM.

But that's a non-volatile cache. To do the same in RAM would require preloading lots of data just after boot, while ensuring the preload process doesn't make things worse for the user. Maybe some OSes do that, I don't know. Lots of individual programs have tried it, and generally just slow the whole boot process down. And "the PC makes a racket when I've just turned it on" counts as making things worse for some users.

And the benefits will still only be significant if caching a mechanical hard drive. Caching an SSD they will be negligible as Laythe has discussed. That further limits the use of having a ton of RAM for disk caching in this way, since the money is probably better spent on an SSD, or if you have an SSD on something else.

---

Regarding what Mazon Dei said about the average user using a PC until it becomes unusable then buying a new one, in my experience yes users do find their PCs slow down over time but that's nothing to do with software bloat or hardware wearing out - rather, it's because they get a crapload of malware on the system.

Link to comment
Share on other sites

Reread my first message. This branch of the discussion started when I wondered how strange gaming PCs are, as I considered 16 GB to be the right amount of memory for a basic non-gaming desktop. It was never about gaming computers.

Please, you continuously avoid the discussion at hand and go deep into semantics and non-relevant details instead. For normal use and for gaming computers, 16 GB is excessive. Until now, I have seen little to actually counter that argument.

Link to comment
Share on other sites

Regarding what Mazon Dei said about the average user using a PC until it becomes unusable then buying a new one, in my experience yes users do find their PCs slow down over time but that's nothing to do with software bloat or hardware wearing out - rather, it's because they get a crapload of malware on the system.

That was the point of discussing my old laptop. With the exception of non-performance impacting parts like the screen or keyboard, the laptop is basically factory fresh in terms of hardware and software. Bought a brand new HDD for it to load the OS and driver packs, etc on. Generally speaking yes, if the user has not set up some sort of recurring scan (I set mine to do a full top to bottom scan of every file once a week) then malware will certainly do that. I assume that to one degree or another the user in question will at least occasionally pull a check of some sort as this effort is minimal (literally just a few button presses).

Considering the fresh hardware and pristine OS, what else might you say would be the cause of 'out of the box' slowness in the modern day, given the systems past capabilities, if not software bloat?

Link to comment
Share on other sites

But that's a non-volatile cache. To do the same in RAM would require preloading lots of data just after boot, while ensuring the preload process doesn't make things worse for the user. Maybe some OSes do that, I don't know. Lots of individual programs have tried it, and generally just slow the whole boot process down. And "the PC makes a racket when I've just turned it on" counts as making things worse for some users.

RAM is quite close to non-volatile memory these days. If sleep mode works reliably on your computer, you only have reboot it for major updates and troubleshooting. If desktop uptimes span weeks or even months, it doesn't matter too much if the cache spends a few days adapting to the usage patterns after each reboot.

And the benefits will still only be significant if caching a mechanical hard drive. Caching an SSD they will be negligible as Laythe has discussed. That further limits the use of having a ton of RAM for disk caching in this way, since the money is probably better spent on an SSD, or if you have an SSD on something else.

That assumes that the software stays the same. If software developers assume that people generally have SSDs, they may decide that it's easier to use a large number of small files than a small number of large files with internal data structures. Then, as the number of files increases, the importance of caching grows. I think I've seen a trend like that in Mac software recently.

Please, you continuously avoid the discussion at hand and go deep into semantics and non-relevant details instead. For normal use and for gaming computers, 16 GB is excessive. Until now, I have seen little to actually counter that argument.

I thought we already agreed that 16 GB can be excessive on Windows due to the way it handles disk caching.

Link to comment
Share on other sites

Ignore the transfer rates. The CPU probably can't keep up with the transfer rate anyway, unless you're just copying the data around. If you're processing the data in any way, you probably can't do it faster than tens of megabytes per second. Cache performance depends on the number of cache hits, not on the size of those hits.

The read has to finish before you can use the data you're reading. Transfer rate matters.

Also, I've been harping on cache hit rate for a long time now. Why don't you explain to me how you're managing a decent cache hit rate on a gaming workload, now that you finally acknowledge that it's a factor?

Of course it's about predicting memory usage. If the algorithms don't know how large the cache is going to be, they can't make informed decisions on what to keep in cache and what to remove from it.

Sure, you need to size the cache correctly. But if it doesn't put the thing you need in the cache, this is totally irrelevant. A cache that's sized perfectly and contains none of the data you need is useless. Deciding what goes in the cache is a much harder problem (and is much more critical to performance) than deciding how big the cache should be. I can't believe I even have to say this it's so obvious.

And while predictions are hard, they're not impossible. Thousands of people are working on improving cache performance all around the world, and they're making progress.

I never said prediction was impossible, I said that on the desktop the access patterns are too diverse to utilize a cache effectively. If you access 30GB of different files on any given day in an effectively random order, and your cache is 4GB, it's just not going to cope. Caches have to make best guesses about access patterns that in all likelihood won't hold up, because there's an unpredictable human calling the shots, not thousands of people hitting a server where individual choices don't have any real impact.

The fact that real-world performance depends more on random access times than transfer rates is what makes caches useful.

And access times are already very, very good with an SSD, on the order of a tenth of a millisecond. You have very little improvement to be made, with a high cost in memory and actual loss of performance in the form of paging due to running as close to the cap as possible. This is what makes caches not useful on desktops, while on servers where a small number of resources are vended repeatedly, they work great.

Reread my first message. This branch of the discussion started when I wondered how strange gaming PCs are, as I considered 16 GB to be the right amount of memory for a basic non-gaming desktop. It was never about gaming computers.

And in every message since, you've been arguing over whether or not 8GB of memory is enough for a gaming computer. You even said you were going to build a new gaming PC with "just 16GB" of memory, because "games don't need much". In every post of mine I've made it abundantly clear that I'm speaking about a gaming computer. It seems you've found your way into a totally different conversation that only you're aware of, and are arguing with points nobody's making. I mean, you even called up the idea of research grants in a thread talking about building a gaming computer. You're pretty far off in left field, buddy.

Link to comment
Share on other sites

I thought we already agreed that 16 GB can be excessive on Windows due to the way it handles disk caching.

So that goes for pretty much every user case in these forums. Why were we having this discussion again?

You're pretty far off in left field, buddy.

I'm not your buddy, pal! :D

Link to comment
Share on other sites

The read has to finish before you can use the data you're reading. Transfer rate matters.

Software can start processing the data as soon as the first block is ready. The time required for transfering the first block is negligible compared to random access times.

Sure, you need to size the cache correctly. But if it doesn't put the thing you need in the cache, this is totally irrelevant. A cache that's sized perfectly and contains none of the data you need is useless. Deciding what goes in the cache is a much harder problem (and is much more critical to performance) than deciding how big the cache should be. I can't believe I even have to say this it's so obvious.

There are depenencies here. Caching decisions are based on expectations of the size of the cache in the future. If the cache is expected to remain large, we may emphasize the long-term impacts of the decision more than with smaller cache sizes. The actual size of the cache at any particular time depends on other memory usage, as the cache is usually the first one to yield if the memory manager has to free memory for other uses. Hence caching decisions are based on predictions of future memory usage.

I never said prediction was impossible, I said that on the desktop the access patterns are too diverse to utilize a cache effectively. If you access 30GB of different files on any given day in an effectively random order, and your cache is 4GB, it's just not going to cope. Caches have to make best guesses about access patterns that in all likelihood won't hold up, because there's an unpredictable human calling the shots, not thousands of people hitting a server where individual choices don't have any real impact.

Uniformly random access patterns are quite rare in practice. Real access patterns can often be approximated by a power-law distribution, even if the accesses originate from a single user. If the accesses follow a power-law distribution, caching can be very efficient, as long as the size of the cache is above a certain threshold.

And access times are already very, very good with an SSD, on the order of a tenth of a millisecond. You have very little improvement to be made, with a high cost in memory and actual loss of performance in the form of paging due to running as close to the cap as possible. This is what makes caches not useful on desktops, while on servers where a small number of resources are vended repeatedly, they work great.

Access times in RAM are about four orders of magnitude faster than with an SSD. This is considered so slow that multiple levels of caches are deemed necessary to handle everyday workloads. Still, the expensive caches could be made much smaller, if programmers just used sequential access patterns more often. We don't do that, because making life easier for the programmers is almost always more important than making hardware cheaper for the customers.

The situation is pretty much the same with SSDs and disk caches. We could make disk caches smaller without losing too much performance, or we could make life easier for the programmers by making the customers pay for large disk caches. We'll probably choose the latter.

And in every message since, you've been arguing over whether or not 8GB of memory is enough for a gaming computer. You even said you were going to build a new gaming PC with "just 16GB" of memory, because "games don't need much". In every post of mine I've made it abundantly clear that I'm speaking about a gaming computer.

We've both obviously talked past each other, without either of us noticing this until now.

So that goes for pretty much every user case in these forums. Why were we having this discussion again?

I don't know about you. I continue this discussion, because I find it interesting. It's relatively close to what I do for work, after all.

Link to comment
Share on other sites

We don't do that, because making life easier for the programmers is almost always more important than making hardware cheaper for the customers.
And this, I think, is part of the reason why despite the exponential increase in computing power, I still spend an awful lot of my life waiting for computers. Frankly, it pisses me off. And it won't change any time soon, because the status quo is in the interests of those with the money. /rant
Link to comment
Share on other sites

Software can start processing the data as soon as the first block is ready. The time required for transfering the first block is negligible compared to random access times.

Depends. Do you need to finish processing all the data before the application continues? Say, reading in large resource files included in games? Loading an executable? Then, yes, you must wait for the entire read to finish. If you're pulling in a database, or something like that, and only need to display a page of data to get going again, then no, you don't need to pull the whole file into memory. It depends on your workload and software.

There are depenencies here. Caching decisions are based on expectations of the size of the cache in the future. If the cache is expected to remain large, we may emphasize the long-term impacts of the decision more than with smaller cache sizes. The actual size of the cache at any particular time depends on other memory usage, as the cache is usually the first one to yield if the memory manager has to free memory for other uses. Hence caching decisions are based on predictions of future memory usage.

Of course the size of the cache is a factor, but this is irrelevant to the point I was making. A perfectly sized cache without the data you need is useless. Desktop workloads have very high cache miss rates. This is my whole point. I don't care how great your cache is at resizing itself, if it doesn't have the data I need, it's not helping.

Uniformly random access patterns are quite rare in practice. Real access patterns can often be approximated by a power-law distribution, even if the accesses originate from a single user. If the accesses follow a power-law distribution, caching can be very efficient, as long as the size of the cache is above a certain threshold.

That useful threshhold gets larger the more diverse the access pattern is, and how big the files are. Desktop workloads (in particular gaming computers) present a worst case scenario, thus file caches are of questionable value.

Access times in RAM are about four orders of magnitude faster than with an SSD.

And SSD access times are four orders of magnitude faster than the human threshhold of perception. That's a lot of cache hits before you make a noticeable difference. Keep in mind that I'm not talking about a workstation workload, I'm talking about a gaming computer and all that entails.

And this, I think, is part of the reason why despite the exponential increase in computing power, I still spend an awful lot of my life waiting for computers. Frankly, it pisses me off. And it won't change any time soon, because the status quo is in the interests of those with the money. /rant

It's not so nefarious as you think. Making life easier for programmers means they can spend more time doing the things that matter, rather than spending scads of time and money on micro-optimizations. Software is bigger and slower than ever, but it also does more than ever. It's not just inefficiency.

Edited by LaytheAerospace
Link to comment
Share on other sites

And this, I think, is part of the reason why despite the exponential increase in computing power, I still spend an awful lot of my life waiting for computers. Frankly, it pisses me off. And it won't change any time soon, because the status quo is in the interests of those with the money. /rant

And this effect is overblown. Windows 8 does not use more resources than windows vista.

System demands for office and other major programs increase but slowly.

Office 2003 demand a pentium cpu and 1 gb ram, same as Windows xp, office 2007 demands pentium 4 and 2 gb. Office 2010, core2 and 4GB.

Note that 2010 also demand windows 7 who has higher demands than xp.

In short software companies want to sell software, not help the hardware producers. If they wanted to they could simply lock out old hardware.

More that they don't bother making the performance so good it would run on very old systems as people with 10 year old computers don't buy new software anyway.

And yes Squad optimized KSP you would build larger ships and still have performance issues, the good thing is that you would have better ships :)

Link to comment
Share on other sites

Office 2003 demand a pentium cpu and 1 gb ram, same as Windows xp, office 2007 demands pentium 4 and 2 gb. Office 2010, core2 and 4GB.

This makes the point beautifully - why on Earth would you need ever increasing power for something as simple as text editing? It really is not a hard task to do and not that much has changed. Not to mention the disk space it takes, last time I used it that was already a couple of gigabytes.

Link to comment
Share on other sites

This makes the point beautifully - why on Earth would you need ever increasing power for something as simple as text editing? It really is not a hard task to do and not that much has changed. Not to mention the disk space it takes, last time I used it that was already a couple of gigabytes.

Plenty changes from 2003 to 2007, no its probably not so many features you need :)

yes this is the main effect, program packages lots of people use tend to get more and more features, this is also true for long running KSP mods.

Also the system demands include the OS, this explains the jump from 2007 to 2010, as 2010 required windows 7 who had higher system demands than xp.

Link to comment
Share on other sites

Also the system demands include the OS, this explains the jump from 2007 to 2010, as 2010 required windows 7 who had higher system demands than xp.

Even when you compensate for that, Office is a contrived and overcomplicated package. A classic Mac, one of those grey bricks, already had pretty much every relevant feature. Of course, some people need the newer additions, but it simply does not explain the massive hike in system requirements.

Link to comment
Share on other sites

Even when you compensate for that, Office is a contrived and overcomplicated package. A classic Mac, one of those grey bricks, already had pretty much every relevant feature. Of course, some people need the newer additions, but it simply does not explain the massive hike in system requirements.

I agree totally, Office is over complicated, and the coding is probably a mess :)

Almost as bad as web browsers who is software analogy of a 1000 ton rocket in 0.18 with no struts. It now has to load a web page whit flash, java, JavaScript but no </td> or </tr>

Does not make up for the fact that system demands has hardly risen since vista.

Currently its a shift where games are moving from PS3//360/pc to PS4/ one / pc. Some companies (yes ubisoft, i'm looking at you) has not realized that the quick and dirty ports they had made the last 3-4 years don't work well. They worked as modern pc are so much powerful than previous gen consoles they did not have to optimize.

Made worse that lots of laptops are designed to be able to run PS3/ 360 games well, they will not handle ps4. This was predictable :)

This is also something to think about then buying a new system, especially an laptop.

Edited by magnemoe
Link to comment
Share on other sites

Okay, I'm now looking for recommendations on specific components. So, to fulfill my criteria in the OP, and stay in a total price range of 600-700$ (not counting keyboards, monitors) what are your recommendations on: CPU (no overclocking), GPU, RAM (only 8 GB, I'm not going for overkill), Motherboard, and Hard Drive. I am buying an optical drive, am using wired ether-net, and the power supply and case are determined by the components.

Link to comment
Share on other sites

Keep in mind a gaming pc need a beefy graphic card, I have an SLI of gtx570 thats the most cost efficient way to get good perf ^^ you can buy one at first and add another one 6month later when price drop

Link to comment
Share on other sites

Keep in mind a gaming pc need a beefy graphic card, I have an SLI of gtx570 thats the most cost efficient way to get good perf ^^ you can buy one at first and add another one 6month later when price drop

SLI is a bad way to get better power in a PC and should only be done when there is no other way (like buying a better GPU). The Problem with SLI(or Crossfire) is that you dont get twice the power with another GPU, its more like 60% more. Additionally there are lots of disatvantages:

Only popular games support it, in smaller games its likely you wont get any better performance than with one card.

Unstable framerates, it got better in the last years but 60fps still wont feel like 60fps.

Extreme power requirements and lots of heat. Since highend GPUs need lots of power (and SLI with anything other than highend us useless) and produce lots of heat its not easy to keep the PC cool and quiet.

Shame you will not overclock your CPU. Really does help, and the heat is easily dealt with.

Its simply not in his pricerange, the saved money from a -K CPU and a good cooler is better spend on a GPU.

Link to comment
Share on other sites

Here is what I have been doing with my hard dives. This will likely change soon though.

I have been buying two high speed (7200+ RPM?) 2 TB drives from DIFFERENT manufacturers, and setting them up as mirrors of each other (one goes down, the other still has a copy of the data, the different manufacturers increases the chance that if one fails, the other isn't minutes behind it). But I only use this setup as the data storage. For the OS, I have a solid state drive (best I could afford 4-5 years ago was an 80GB) that the OS is installed on. It takes a little tweaking to get it to default to installing programs onto the data side, but it works nicely. The result is a 10 second boot time, high speed OS functionality, and excellent data storage.

However, I've been eyeing some 1TB SSDs for around $200-400 on newegg for a possible upgrade. I might end up just getting 1-2 of those.

Link to comment
Share on other sites

Did you set it up as RAID? Because RAID is not backup. Having two disks helps, but it does nothing to protect you from a malicious virus (ransomware, for example), hardware failure such as broken RAM (junk data on both drives) or something like an energy surge (two broken disks).

Writing data only once a week or every two weeks to your backup can partially prevent this. Not only does this make it easier to physically separate the drive from the system, but you also have a short while before bad data is written to your backup. The flip side it that you lose one or two weeks of work, but that is a comparatively small price to pay. A proper backup should ideally be separated from your main system and written to only occasionally.

Two drives from different manufacturers is a good start though, don't get me wrong!

Link to comment
Share on other sites

This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...