What CPU? Single vs Multi core in real life (no games)? Future? - Page 1
Forum section: electronics / general

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 04:32:41 pm
content: Example, just a starting point:AMD Ryzen TR 2950X vs Intel Core i9-9900KUserbenchmark Effective CPU Speed: 117% vs 121%AMD Ryzen TR 2950X- 8th / 1143Intel Core i9-9900K- 3rd / 1143A lot of Software (Altium, Solidworks, Adobe, you name it) can not use all the AMD 2950x "horses", really? So the I9 9900K still wins in real life because it has less horses but "faster"?I am planing to build a new PC soon and the more I read and research the more I am shocked how apparently it's difficoult to write software code which runs on multi-core at the same time.Do you expect a change in the software industry soon? If yes I maybe bank out a 2950x.Hope you guys can teach me something because I am kind of confused about the situation right now...HARDWARE INDUSTRY: More core as possible.SOFTWARE INDUSTRY: Let's continue to use just few of them (i.e. 4), we don't want to rewrite the multi-core code from 0, too much effort, (and impossible?)I am sorry in advance if my questions are stupid ones, maybe the right answer is "it depends" (as always).PS: I hate PC games, if I want to play I take my mountainbike or my snowboard out. Workstation (no games) research leads to AMD TR, but if I look at the results in real life, it seems that the single core speed is still what makes the PC faster with the current software.

author: apis
author_rank: Super Contributor
timestamp: December 13, 2018, 05:19:59 pm
content: Since it's hard to improve core speed further, the only viable way forward is more cores. Not all problems can be parallelised though, so the set of problems that can be more efficiently solved in the future is smaller that previously. Old software is written for single core since that used to be the norm. In the future, more and more will take better advantage of multicore but, yes, it is (much) more work to do so at the moment, so it is avoided unless necessary. However, since your computer is often running a few processes simultaneously, these can run on different cores and thus in parallell, making a few more cores useful. Algorithms that benefit a lot from parallelising will be (re)written to take advantage of multicores sooner than other software of course, so if you need that kind of software it will be beneficial, video-editing I would assume is one example.That said, unless you have need for computing power for some specific task you are better off spending your money on other parts of the computer like memory, good monitor that doesn't strain the eyes, nice comfortable keyboard and mouse and I never seems to have enough hard drive space (but hard drive space is mostly needed for media applications). You don't need a fast computer to write documents, use spreadsheet applications, surf the web, read emails or watch youtube.You might also want to consider energy efficiency which also affects how much cooling and thus fan-noise is needed.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 13, 2018, 05:31:55 pm
content: Race conditions, deadlocks, spooky glitches that are impossible to reproduce and debug -- such is the domain of multi-threaded computing.Think of how buggy single-threaded code is. Now imagine those same developers writing multi-threaded code.Thatis why multithreaded code is uncommon except where absolutely required (and, hopefully, written by an expert that knows their way around these pitfalls).It's also relatively easy to writeasolution, then debug and optimize it a bit before release, or as an update or minor version. The structure is mostly unchanged, while the implementation changes slightly. It's a lot harder to make a dramatic, structuralandimplementation change to a multi-threaded design. In effect, the initial dev time is wasted. Time would be better spent doing it right the first time, but then you have the problem of debugging a more complex system, that may not even be possible (see above).As problems grow ever larger and more complex, devs will have no choice but to do this, but they will hold out for as long as possible because it makes business sense.Tim

author: Ice-Tea
author_rank: Super Contributor
timestamp: December 13, 2018, 05:46:45 pm
content: Unless you're running something that can use the additional cores *now*, don't bother with anything more than 8 cores. Just not worth it.

author: Kleinstein
author_rank: Super Contributor
timestamp: December 13, 2018, 06:20:39 pm
content: For many real world desktop applications HD access times can be a big factor - so a good SSD can often be more efficient than a fast CPU.With applications that really need CPU speed, much of the time critical parts are relative small fractions of the code and often even classical problems (e.g. FFT, linear equation systems, image processing). So the development of code that used more cores is often not that bad.I tricky part is that the number of cores and also there interaction is different between CPUs. So ideally it would be different versions for different CPUs.Another point is possibly sending some tasks out to the GPU.For really time critical tasks (e.g. FEM, video encoding or maybe even auto-routing) we may find more programs to send out the really time critical part the the GPU. Quite often a reasonable GPU is faster than a high end main (x86) CPU for quite a few tasks.With modern time windows things are getting crazy on the desktop anyway. From my feeling most of the processing power it used up for the virus protection and updates - too slow a PC might not do anything else. At least these cause most of the annoying delays. So maybe they should rethink the whole PC concept so one could get away with less of these OS related tasks. If it goes on this way, the time to start a program is back to what we used to see with CP-M from floppy.

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 06:53:58 pm
content: Quote from: Kleinstein on December 13, 2018, 06:20:39 pmThat's why I need a new PC, I need a nvme m.2 disk which is stupid fast compared to SATA.And of course I start thinking my system is 7 years old and I just need a new horse to ride.Thanks for all the feedback I am learning a lot.

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 06:57:58 pm
content: Quote from: apis on December 13, 2018, 05:19:59 pmI heard the same thing 10 years ago, but back on those days the issue was a microelectronic process engineering topic.Today, I heard, we are going so small the atomic physics is starting to become the new limit.

author: rsjsouza
author_rank: Super Contributor
timestamp: December 13, 2018, 07:07:24 pm
content: That always depends, but I would say there are a lot more applications where multi thread is used - at least cokpared to my old Windows NT4 days where absokutely nothing was like that.I have recently updated my system from a quad core i7-920 (2.66Ghz) to a hexa core Xeon W-3690 (3.46GHz), which scales very well on video compressing and 3D model rendering.By the way, the system above runs on a 2008 Gigabyte EX58 Extreme and the only thing I changed was the processor. Everything else is the same.

author: Berni
author_rank: Super Contributor
timestamp: December 13, 2018, 07:29:36 pm
content: Yep as people said if you don't have a task right now that is capable of using many cores then don't bother.Most things that electronics engineers do like PCB tools, compiling code etc are not multithreaded. What you want is a CPU with about 4 fast cores and a fast SSD. If you can get more cores at the same speed go for it, if more cores forces you into getting slower cores then avoid it.By the way this is also the sort of system that runs games well. They don't like using many cores in general. If you are doing video editing, graphics, 3d rendering etc then you can make good use of the high core count Ryzen CPU, otherwise not so much.Im personally running a i7 4790K (4 core, 4GHz base, 4.4GHz boost) for a few years now and the main reason for it is that when it launched it was the worlds fastest x86 CPU when measured in single threaded performance. This incidentally also made it the fastest CPU in the world for gaming so it became popular and its price skyrocketed soon after because of it(Now that it has settled down its reasonably priced again). The new 9th gen i7 CPUs take the crown now so gamers flock to those instead.Here is a pretty convenient chart showing single threaded performance of CPUs:https://www.cpubenchmark.net/singleThread.html

author: Kilrah
author_rank: Unknown
timestamp: December 13, 2018, 07:34:16 pm
content: Actually quite a lot of tasks can make good use of many cores, maybe not 16+ but 8-12 for sure.I have a mini-itx machine with an overclocked (5GHz) quad-core 7700K for when I travel and my home machine is a 4 year old 8-core, 4.2GHz overclocked 5960X. Obviously the home machine can do better but only on tasks that use multiple cores well, but that is actually the case and the difference happens to be significant with most of the things I run (code compiling, probably the best use of multi-core nowadays, video editing, photo retouching...). General responsiveness while it's busy on some heavy load is much better as well, with the 7700K it's typical to get little freezes when I'm running a large batch export in Lightroom, but on the 8-core that becomes enough for it not to hog everything to the last drop and let me switch to a browser window without blocking 2 seconds...

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 07:56:10 pm
content: So basically I need some Virtual Machine Voodoo to use the entire power of the AMD TR?I can imagine the AMD eng bashing their heads on the benches, so much design effort and only few applications can use all its immense power.Right now thinking about an I7 or I9 Intel.

author: Kilrah
author_rank: Unknown
timestamp: December 13, 2018, 08:00:18 pm
content: Quote from: zucca on December 13, 2018, 07:56:10 pmCertainly not, they designed to be future-proof.And they also have lower core count offerings, at prices way below intel....If I was building a PC now I'd be for once seriously starting to consider them. Or I'd wait until the "leaked" 3rd gen that probably won't be long.

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 08:04:16 pm
content: Quote from: Berni on December 13, 2018, 07:29:36 pmOk got it, what bothers me is that Intel I9 Motherboard do not support ECC or many PCIe lines as AMD does. My guess? I9 is 95% sold to gamers who don't care about those Workstation needs, but they buy RAM with RGB leds on it, wait another one.BTW what is now the definition of "Workstation" anyway? Right now if we forget the graphics card circus it seems the most productive PC is the gamers one.I feel lost

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 08:07:06 pm
content: Quote from: Kilrah on December 13, 2018, 08:00:18 pmWhen that future will become the present day?

author: Kilrah
author_rank: Unknown
timestamp: December 13, 2018, 08:11:10 pm
content: Workstation typically refers to machines meant to hopefully have higher reliability e.g. ECC-equipped stuff / Xeon on intel side but probably the distinction is now most importantly the businessy style service contracts and guarantees coming with them.Quote from: zucca on December 13, 2018, 08:07:06 pmWell as said a lot of stuff makes use of it right now already and it's only going to improve, so a year or 2?Quote from: zucca on December 13, 2018, 08:04:16 pmIn terms of performance per dollar for sure. Businesses will however be happy to pay twice as much for a workstation-class machine that's got less risk of breaking down and will be repaired/replaced quicker if it does and thus might avoid leaving a paid employee unable to work.

author: Red Squirrel
author_rank: Super Contributor
timestamp: December 13, 2018, 08:15:03 pm
content: Where high core count shines the most is server stuff. VM servers, or even dedicated apps that spawn a lot of child processes to distribute load. Ex: copys of the same task but different instances of it. Web server serving multiple clients for example.For desktop some apps will also take advantage of it but lot of stuff also won't. Games are kinda hard to design to use multiple thread as they don't really involve tasks that can be distributed, it's more like 1 big task that's running in real time. I'm sure some do but it's not as simple to design that way.

author: Ice-Tea
author_rank: Super Contributor
timestamp: December 13, 2018, 08:22:53 pm
content: Quote from: Berni on December 13, 2018, 07:29:36 pmSo am I. Unless the magic smoke gets in the air it won't be replaced anytime soon.Now, for that stupid ass dual core i7 in that damn laptop...

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 08:23:32 pm
content: ThanksKilrah. I am enjoing the discussion. You cleared the air about the "workstation" animal pretty good.Anybody can point me to a I9 Motherboard which is more "Workstation" as possible?

author: Zucca
author_rank: Unknown
timestamp: December 13, 2018, 08:31:18 pm
content: Interesting thehttps://www.userbenchmark.comdefinition:https://www.userbenchmark.com/Faq/What-are-the-UBM-performance-classifications/93DesktopSurfing, email, office apps, music/video playback.This formula is weighted towards single-core CPU performance:50%*DCPU Bench + 10%*GPU Bench + 30%*SSD Bench + 10%*HDD Bench(DCPU Bench = 80% Single core, 10% Quad core, 10% Multi coreGaming3D Gaming and graphics.This formula is weighted towards GPU performance:25%*GCPU Bench + 50%*GPU Bench + 15%*SSD Bench + 10%*HDD Bench(GCPU Bench† = 30% Single core, 60% Quad core, 10% Multi core)†For games that can't use multiple cores the desktop CPU Bench is a better indicator of performance.WorkstationNumber crunching, virtual machines, databases, audio/video encoding.This formula is weighted towardsmulti-core CPUperformance:40%*WCPU Bench + 20%*GPU Bench + 25%*SSD Bench + 15%*HDD Bench(WCPU Bench = 10% Single core, 10% Quad core, 80% Multi core)

author: Lukas
author_rank: Frequent Contributor
timestamp: December 13, 2018, 10:57:40 pm
content: Quote from: Berni on December 13, 2018, 07:29:36 pmI'm glad that you mention that since I'm here to state pretty much the opposite. For large projects and enough RAM/fast storage you can launch as many compile jobs as you've got CPUs at your disposal and things will get faster.In my PCB toolhttps://github.com/carrotIndustries/horizon/at least, DRC is multithreaded. I would be surprised if more upmarket EDA tools aren't multithreaded for compute-intensive tasks as well.

author: rhb
author_rank: Super Contributor
timestamp: December 14, 2018, 01:16:17 am
content: If you're expecting good multicore performance from commercial software, it will be a long time coming. I don't see those developers being good enough to master making it work without crashing.Personally, I won't touch threads with a barge pole. But shared memory programming is well developed in the Unix world. SGI made some really good shared memory machines.MPI works quite nicely on multicore machines, though not as efficiently as shared memory unless they have modified MPI to use shared memory on mulicore machines.They should have done that by now, but I've not messed around with high performance computing in a long time.There are a lot of algorithms which cannot be parallelized.The Hermes language had a cool feature that you could send a message to another process by transferring ownership of a portion of memory. But it never gained any traction that I know of, so it's probably a dead language now.I'm considering buying a 12-16 core dual socket HP Z series machine as they are quite cheap now on eBay. Apparently these were used for running SolidWorks and are coming off lease. I've seen 20 core machines with 256 GB of DRAM for around $2k or less. Sort of blows my mind having spent 4 years working on a VAX 11/780 with 4 MB of DRAM.I don't think I'd spend that much, but I want to do a bunch of computational electromagnetics. Finite difference is not hard to write and there are already several open source codes around such as OpenEMS.

author: Red Squirrel
author_rank: Super Contributor
timestamp: December 14, 2018, 02:29:02 am
content: I've written some multi threaded programs, nothing super complicated, but even a simple enough program has a lot of things to take into consideration so it gets tricky.Not all programs in nature can be written to fully take advantage of multithreading, it really depends what kind of task the program does, and if it involves work loads that can be split up and worked on independently without relying on each other. So for example if you are brute forcing something, you could split it up in multiple threads. Thread 1 tries "password", thread 2 tries "password2" etc so you can try multiple passwords at once. So now you can try say, 8 passwords at once instead of doing them serially.One project I always think would be cool to take on is a MMO/minecraft type game but I'd want the world physics to be real time, like water flow, plants growing, NPCs, any AI stuff etc would constantly be working. Say someone builds a dam and punches a hole then the water will flow even when they arn't logged in. So imagine all these mechanics working, now I'd want to be able to make this multithreaded so that each physics is basically a "task" that is loaded off and then the result returns. (modified blocks etc). This would definitly pose a challenge but if done right would make for a very scallable application. Ideally, each thread does not even need to reside on the same physical machine, you can have it act as a cluster. That's when things get really fun.All this would be the easy part compared to the actual game client though, I know nothing about graphical application design.

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 03:32:16 am
content: thanksLukas,Red Squirrelandrhb. Very interesting.Now I9 9900K does not support ECC RAM, this is irritating. Intel is selling his ass to teenager gamers, and they are right 'cause there are tons of money there.Quote from: rhb on December 14, 2018, 01:16:17 amTempting but either I do some Virtual Machine out of it or you will have a lot of unused horses laying around. They are wonderful machine, porno stuff really but I don"t see for example Abode or Altium running there as fast as on a I9 9900K.

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 14, 2018, 03:52:09 am
content: Having a lot of cores also comes in handy for heavy multitasking. If I had a bunch of highly efficient cores and RAM with no better use of them, my first thought would be to spin up a bunch of earnhoney mining VMs and get back some of the hardware cost.

author: BravoV
author_rank: Super Contributor
timestamp: December 14, 2018, 04:03:40 am
content: Quote from: zucca on December 13, 2018, 06:53:58 pmOnce you're "nvmed" , you will never look back.

author: KaneTW
author_rank: Frequent Contributor
timestamp: December 14, 2018, 05:31:33 am
content: I like my large amount of cores (TR 1950X) simply because something compute-intensive can run in the background without hindering other operations at all.

author: Berni
author_rank: Super Contributor
timestamp: December 14, 2018, 06:24:41 am
content: Quote from: BravoV on December 14, 2018, 04:03:40 amMhm NVME SSDs really fly.Tho you have to be careful about motherboard support for those. Only after buying one i found out that my motherboard only has PCIe 2.0 2x brought to the M.2 slot while another newer board in a different machine has PCIe 3.0 4x on the M.2 slot. Makes a significant difference in speed.(Both are faster than SATA tho in MB/s and IOPS)Quote from: Ice-Tea on December 13, 2018, 08:22:53 pmSame here, it does everything i need.Quote from: Red Squirrel on December 14, 2018, 02:29:02 amBy the way minecraft servers actually multithread pretty well. Java is still not the best choice for any high performance number crunching, but this is at least a reasonably parallelable workload. Each player tends to be handled by its own thread, world update(world ticks, redstone ticks, block updates etc) runs in its own thread and world generation can use multiple threads(each thread works on its own chunk). The reason why unused chunks get unloaded back to disk is mostly to save RAM since most servers wont have hundreds of GBs of it.

author: rdl
author_rank: Super Contributor
timestamp: December 14, 2018, 06:37:20 am
content: The Sunny Cove series seems like massive overkill for most needs. I'd be happy to have just the 4 or 6 Series updated with the Spectre/Meltdown bugs fixed.

author: apis
author_rank: Super Contributor
timestamp: December 14, 2018, 08:55:06 am
content: Quote from: T3sl4co1l on December 13, 2018, 05:31:55 pmMany of the tools, even something as fundamental as the programming languages themselves, were developed for single threaded programming only. Java for example have abysmal support for multi-threaded programming, you might as well not even try. Others languages have much better support. On top of that, most programmers have never learned how to do multithreaded programming properly.

author: Berni
author_rank: Super Contributor
timestamp: December 14, 2018, 09:20:07 am
content: Yep not all languages do multi threaded as nicely.Also the code in general has to be written with multithreading in mind. Taking an old codebase and making it multithreaded is a massive task that requires a lot of rewriting in most cases. This has to be done very carefully since its easy to forget a reference to something in another thread. Touching something in another thread while thinking it belogns to your thread can have a wide range of consequences. Sometimes it works just fine and there are no problems. Other times it will crash something really badly and you will look for it. But in a lot of cases it breaks something just after about 2 weeks of use and only in certain use cases, this makes it very hard to debug and track down.Code written from the ground up to be multithreaded and solve a problem that is pretty parallel in nature is really easy in modern languages. Everything else is multithreading hell.

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 01:57:15 pm
content: Quote from: KaneTW on December 14, 2018, 05:31:33 amSo you are telling me that Windows 10 is so intelligent to distribuite the workload across the cores?

author: Kilrah
author_rank: Unknown
timestamp: December 14, 2018, 02:09:18 pm
content: Uh... yes, like any MP OS that's existed in 2 decades?

author: wraper
author_rank: Unknown
timestamp: December 14, 2018, 02:18:27 pm
content: Quote from: zucca on December 14, 2018, 01:57:15 pmYes it is smart enough to not place high load from different processes onto single core.

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 02:25:48 pm
content: see there is always something to learn.I never double checked it or observed it.So a pure thoretical example: I have 8 core. I have Adobe open and Solidworks at the same time.Windows will use the first 4 for Adobe and the other 4 for Solidworks? So the Adobe Encoding is not slowed down by the others programs running and vice versa?If yes, I want the 2950x... and yes, now I understand what a workstation is.

author: Red Squirrel
author_rank: Super Contributor
timestamp: December 14, 2018, 02:41:09 pm
content: Yes multiple separate processes will spread each other to different cores. So multi core is still good for multi tasking even with single threaded apps. Not sure what logic the OS uses to choose which core but I imagine there's different algorithms, like picking one with least load.

author: wraper
author_rank: Unknown
timestamp: December 14, 2018, 02:42:01 pm
content: Quote from: zucca on December 14, 2018, 02:25:48 pmIf something can load all of the cores, of course it will affect other processes. But generally it's quite hard to put a lot of load on all of them. You might see slight reduction of performance but most likely you won't notice unless doing benchmark.

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 02:47:22 pm
content: That's why I pay that stupid ISP every month... Now I know, thanks to you all. I can go in peace now.

author: Kilrah
author_rank: Unknown
timestamp: December 14, 2018, 03:14:46 pm
content: Yup, the more cores you have the harder it is to use all of them really fully and "fill all the inutilisation voids" so as a result light tasks will more easily have something to sneak themselves into even with multiple heavy loads.

author: nctnico
author_rank: Super Contributor
timestamp: December 14, 2018, 03:19:24 pm
content: SSD is kinda mandatory for a fast PC nowadays. When it comes to a CPU I'd go for the largest number of GHz, biggest cache and most memory bandwidth. For my workstation PC I choose to have an Intel Xeon with ECC memory. A Xeon has about twice the memory bandwidth compared to a core i7. Many cores is only relevant for machines which run many virtual machines (lots of parallel processes).

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 03:31:47 pm
content: Quote from: nctnico on December 14, 2018, 03:19:24 pmI would say NVME SSD.

author: hayatepilot
author_rank: Frequent Contributor
timestamp: December 14, 2018, 03:34:33 pm
content: Most CAD programms can only run on one or two cores. So faster single core speed is the dominant factor for performance.There are rumors that the next AMD Ryzen generation (7nm process) will have a boost clock of over 5GHz and that the consumer grade chips will have up to 16 cores.I will definitely wait for the official reveal (CES 2019) and third party benchmarks but man this sounds like some incredible little chips.https://www.pcbuildersclub.com/wp-content/uploads/2018/12/Ryzen-3000-Specs-Leak.png?ssl=1Greetings

author: filssavi
author_rank: Frequent Contributor
timestamp: December 14, 2018, 04:13:03 pm
content: The biggest problem with multi threading is very far from being the workloads, there are far bigger issuesFor the most used languages multi threading is a second class citizen at best, and a bolt on botch job at worstThis is especially true for c++ and javaThe education has probably the largest fault since the inherently serial mentality is forced onto new programmers and by the time multithreading is introduced it is far to late and also not much time is dedicated to itSplitting a monolithic program (such as most cad programs are now or were 5 years ago) inmultiple threads is much much more difficult and time consuming than a rewrite but for commercial reasons that is out of question

author: SparkyFX
author_rank: Frequent Contributor
timestamp: December 14, 2018, 04:41:39 pm
content: Quote from: zucca on December 14, 2018, 02:25:48 pmAn application can fork threads or processes as many as it wants (usually doesn´t make sense to open more than 1 per core/hyperthread, speedwise), whenever it wants. The OS does the association which core will be loaded (maybe based on current load indication). Adobe might check that you have an 8 core processor and spawn 7 additional threads for whatever task it is, Solidworks might do the same -> no gain, the operating system can not judge how much load this thread will create in the future.As long as you can´t limit the amount of threads somewhere in the settings... you either waste potential performance or lose performance. Windows only lets you bind whole applications to certain cores... check the task manager.But it is relatively uncommon to do heavy lifting in two applications concurrently on a desktop machine. In the ideal case the user does the right choice which application(s) run on which hardware to begin with and does not expect unrealistic performance.There are many applications in which the work can be split without requiring the exchange of data between threads, where just the results need to be combined (that´s still a critical part where the application needs to be written thread-safe). But when threads depend on data from each other to continue, it starts to become complicated.Imho, get as many cores as you can...

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 14, 2018, 05:21:32 pm
content: Quote from: apis on December 14, 2018, 08:55:06 amI was originally taught threads on Java.Thread t = new MyThread();t.run();I don't know about the performance stats though. I never used it for more than toy purposes (I did at least do one with a creator-consumer model, but it was still simple enough to run on practically anything and the context switching probably cost more execution time, not that I could tell).All the sync/lock/mutex action is at the programmer's behest, but I don't see how you could otherwise encapsulate that, without making a much less general system, or making a confusing number of classes that use each combination of protection.Tim

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 14, 2018, 05:29:44 pm
content: Quote from: zucca on December 14, 2018, 02:25:48 pmY'never punched CTRL+SHIFT+ESC before? (Task Manager)Windows normally shifts tasks around in some kind of sequence, or maybe it's not sequential at all, but in any case, all threads tend to be shared among all cores, sooner or later.These days, idle cores are shut down for power saving purposes, but sleep/wake takes microseconds so it can be done seamlessly as threads are scheduled.Programs can be locked to a group of cores (right-click a Process, Set Affinity...) if you like, in which case only those will be used. This can save on cache latency for critical applications, but mostly isn't necessary.AFAIK, this has been around in some form or another, since preemptive multitasking was rolled out to PCs in the 90s. Multi-core machines were very rare for the first decade or so, but Windows NT I think has always supported it (and consumer Windowses since 98 or 2000?).Tim

author: Karel
author_rank: Super Contributor
timestamp: December 14, 2018, 06:24:50 pm
content: Quote from: Berni on December 13, 2018, 07:29:36 pmNever heard of "make -jn"? (where n is the number of threads to use)Except when you compile a tiny program with just one file, it makes a big difference in speed.Personally, I prefer more cores. It speeds things up a lot when compiling.

author: rsjsouza
author_rank: Super Contributor
timestamp: December 14, 2018, 06:58:15 pm
content: Quote from: T3sl4co1l on December 14, 2018, 05:29:44 pmIn my experience this exists since NT3.1 and I used it at large in NT4 running on my Dual Pentium II 300MHz back in 1997.

author: nctnico
author_rank: Super Contributor
timestamp: December 14, 2018, 07:15:50 pm
content: Quote from: Berni on December 13, 2018, 07:29:36 pmCompiling code is definitely multi-threaded. Make has a specific option to have parallel compilation tasks and it speeds up compilation of large projects considerably (if you have an OS which doesn't suck at task switching). C/C++ source lends itself very well to parallel compilation because each file is compiled into an object file first before all the object files are linked into an executable. Interestingly compiling large C/C++ programs don't really need a fast hard drive. I did some benchmarking compiling several hundreds of MB worth of code (embedded Linux environment) and it didn't matter at all whether I used an SSD or a slow (but silent) hard drive.

author: Berni
author_rank: Super Contributor
timestamp: December 14, 2018, 07:52:42 pm
content: Yes C/C++ compilers are pretty good at large projects when it can use each core to compile one file. The compilers for HDL languages on FPGAs are not so great at it. Sure they go a little bit faster with more cores but its nowhere near the boost that C gets.I am guessing you didn't see the improvement from a SSD due to file caching in windows. Ever since Windows 7 this is enabled by default. This feature makes use of unused RAM areas to hold on to files that got recently read from the drive. Next time the same file needs to be accessed its simply pulled from RAM, making it even faster than a SSD. The effect of this can be seen quite clearly if you have any programs that take a while to start (Photoshop, Corel etc..) installed on a mechanical HDD. The first time you run it after a fresh boot you get the usual load time, but if you close it and run it again it will likely start in 1/3rd the time. The more RAM you have the more files can be kept in there for longer so it improves overall system performance.

author: rstofer
author_rank: Super Contributor
timestamp: December 14, 2018, 08:43:02 pm
content: I was working for one of the largest semiconductor companies when I got into a conversation with one of the VPs. He warned me "Never bet against technology!".You can't "future proof" a workstation because you can't predict the future. All you can do is drive a stake in the ground, buy a machine, and figure you're going to replace it in a few years.I built a machine a year ago with an I7-7700 with SSD. It runs well, Vivado execution time is acceptable (the free version only runs on 4 cores) and I'm happy enough. I'm sure a multi-chip Xeon would be faster but, again, I would be limited to 4 cores.I can get make/gcc to use multiple cores for parallel compilation and that might be cool but the whole idea behind make is that I only compile changed files and that is usually just one. Sometimes 2... Unless I do a make clean all, I'm not going to get any advantage out of parallel compilation.Large computation jobs probably belong on the GPUs. I don't have any applications that would gain an advantage from that idea so I have never tried it. If I was doing Finite Element Analysis or Method of Residuals for a large number of nodes, yes, the GPUs would be the way to go. But I'm not...

author: nctnico
author_rank: Super Contributor
timestamp: December 14, 2018, 08:53:09 pm
content: Quote from: rstofer on December 14, 2018, 08:43:02 pmFor the last decade the latter is no longer true. For just computational power using the CPU PCs have not really become much faster. Nearly a decade ago I got an i7-950 based PC. A couple of years ago I replaced it with a much more expensive Xeon based PC. The increase in performance is less than 20%. Back in the old days (the 90's and early 2000's) you could buy a new CPU every year and you'd end up with a PC which was significantly faster.

author: rrinker
author_rank: Super Contributor
timestamp: December 14, 2018, 09:02:29 pm
content: I do not think NVME SSD is mandatory, unless you are running very highly disk intensive applications. All my machines have SATA SSDs, except my laptop does have an NVME SSD as the C drive, and a second SATA SSD for data. The laptop is a fairly recent model, and it boots no faster than my desktop at home which boots off a SATA SSD. Copy files and other tasks, no faster ont he laptop. The desktop has 16GB AM and an old Zeon E3 - I built it 6 years ago. I have a newer one on my workbench - effectively the same speed as well, as far as user impressions. The laptop actually has 32GB RAM. Again, from a user perspective, there's no real difference in performance among these machines, in various activities, from movie playback to web browsing to Office applications to a 3D model railroad CAD app to EDA (KiCad and EasyEDA). I'm sure I'd get different results on all 3 with synthetic benchmarks - but this is where I think some of these PC "enthusiast" sites are just as bad as audiophools. You absolutely can NOT see the difference if the game runs on one video card at 78 FPS at highest detail and the other card runs at 76FPS with the same level of quality. A benchmark can see the difference - absolutely no way you as a human being can see this. A long running process, one machine finishes in 1 hour, 4 minutes, and 42 seconds. The other machine finishes in 1 hour, 3 minutes, adn 48 seconds. Yes, the difference is measurable - with a stopwatch. Odds are, if you fire up something that will take an hour to complete, less than a minute difference int he end time is not going to even be noticed. And if the difference is that great over an hour long process, the difference over a much shorter period, say a workload that takes 15 minutes to complete, is going to be on the order of a few seconds. Oh but also that faster machine has a 50% price premium over the 'slower' one.There are people who need every last bit of performance, but more and more that's in the area of compute, where the GPU is far more important that the CPU But for most people, and that includes most gamers, too, it just doesn't make that much of a difference to split hairs like that. That's why I NEVER buy the top of the line stuff to build a PC. Second tier is 80% of the performance for 50% of the price.

author: Nerull
author_rank: Frequent Contributor
timestamp: December 14, 2018, 09:05:10 pm
content: Quote from: Berni on December 13, 2018, 07:29:36 pmHuh, and here I thought most build systems have had support for parallel compilation for decades....

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 09:22:16 pm
content: Quote from: T3sl4co1l on December 14, 2018, 05:29:44 pmTim, I used it to kill processes when something was frozen. 10 second later, I was back in doing business.

author: cdev
author_rank: Super Contributor
timestamp: December 14, 2018, 11:24:55 pm
content: What do you people think of the 64 core AMD "Rome" chip thats just been announced?

author: Zucca
author_rank: Unknown
timestamp: December 14, 2018, 11:39:45 pm
content: Quote from: cdev on December 14, 2018, 11:24:55 pmToo much for me, but I hope in the 7nm version of the TR 2950x pumping up the GHz jazz.Quote

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 15, 2018, 01:03:59 am
content: Quote from: rstofer on December 14, 2018, 08:43:02 pmYou'll be surprised to learn that teraflop computing at home isn't just for gamers nowadays. Here's a mind blowing example of what a modern GPU can be used for:For a more everyday example, the code I use to upscale 1080p to 4K uses about 1 TFLOPS. Yes, videophiles are making use of levels of compute power that was considered supercomputer class not all that long ago...

author: cdev
author_rank: Super Contributor
timestamp: December 15, 2018, 01:30:04 am
content: Although I have Meshlab on my machine, I have not been able to compile Meshroom. Currently Ive been able to get a decent sparse 3D reconstruction using COLMAP but because I don't have Cuda thats as far as Colmap can take me. I'm exploring a few other options to create dense 3D reconstructions but none of them have worked acceptably so far on the kinds of scenes I would like to capture..By the way, speaking of Rome, check out some of the videos on YouTube of 3D reconstructions of cities (like 'building Rome in a day' - and some other cities- from uploaded tourist photos using photogrammetry tools and powerful CPUs and especially GPUs.)

author: Wan Huang Luo
author_rank: Regular Contributor
timestamp: December 15, 2018, 04:18:34 am
content: Quote from: cdev on December 14, 2018, 11:24:55 pmA PowerPC 604e is more power than anyone really needs.

author: Bicurico
author_rank: Super Contributor
timestamp: December 15, 2018, 12:40:24 pm
content: Here is my contribution:There are these different classes of CPU's:1 - Few cores with low frequency -> cheap office computers (browser and office use)2 - Few cores with higher frequency -> games, CAD/CAM/CAE3 - Many cores with low frequency -> server (internet server or virtual machine server)4 - Many cores with high frequency -> workstation or server5 - Really great amount of cores with high frequency -> servers for heavy parallel processing/number crunching/video encoding/etc.Price-wise, I would generically consider these rough prices (EU), just to get an idea of what we are talking about:1 - 300-500 Euro2 - 700-2.000 Euro3 - 2.000-5.000 Euro4 - 10.000-20.000 Euro5 - 20.000-100.000 EuroIf you want to have some fun, try this configurator for a HP workstation:https://store.hp.com/UKStore/Merch/Offer.aspx?p=b-configure-your-workstationWe could do a cometition with who comes up with the most expensive configuration...Some time ago I got a configuration with 30% discount offer. The final price was over 100.000 US$ (I used the US site). Not kidding!So what computer should you buy?I would consider these criterias:1) What applications do you want to run?2) How much money do you want to spend?3) How much money do you make if you get the finished project sooner?If you want a great gaming machine, just go for an Intel Core i7 or i9 (depending on your budget). You get enough cores for games and simultaneous browser, Outlook, etc., at highest clock speeds. You might opt for AMD, I generically don't like them (bad experience in the past with unstable machines and incompatible software).If you want to do CAD/CAM/CAE work, then you MIGHT want to look at some Xeon based workstations offering more cores.It depends on the application you want to use. Most CAD applications really don't make use of multiple cores, because the math behind surfaces and solids is not easy to split amongst different cores.But there are exceptions and to name one, Fusion 360 does take multi core CPU to advantage to a certain degree.CAM also uses multi core, though might be limited to a given number of cores. Autodesk PowerMILL for example uses up to 4 cores per session, but again Fusion 360 (or better HSM inside it) can use all cores, which is pretty amazing.For finite elements simulation, depending on the software, all cores can be used, but providers often attach the number of cores used to the license model purchased.But having many cores is always useful, as it allows to run many software instances. For example, my Chrome browser opens my 10 top favorite sites when I start it (this launches 10 separate Chrome processes). The I have Outlook open. Plus other applications. Windows does a reasonably great job in distributing the processes around the available cores.So now you get stuck at the question: which is the best ration between number of cores and maximum frequency?I think for power users, 8 logical cores (4 physical cores plus Hyperthreading) is perfectly OK, even for CAD/CAM/CAE applications.A "simple" gamer might save some money on the CPU by buying an Intel Core i5 and spending it on a better graphics card.I have in the past months developed a new addiction: multi core computing.I started by buying the IBM X3650 M3 server, which can be upgraded to 288GB of memory and two Intel Xeon X5690 CPU's. This gives a total of 24 logical cores.I have now three of them:1x 80GB with 2x X3650 - 24 cores1x 72GB with 2x X3670 - 24 cores1x 48GB with 2x X5540 - 16 coresThen I bought me a new computer, a second hand HP Z600 workstation. I upgraded it and now it has an nVidia GTX-960, 40GB RAM and 2x X5670 CPU (24 cores).I can say that this PC rocks!All 4 computers have cost me all together less than 1000 Euro. They are connected with 1GB LAN.The Z600 is mainly for gaming and CAD/CAM, the servers for virtual machines and parallel computing. I developed my own software, that launches the tasks in parallel. This way I get around not having to split one task into multiple partial calculations, which is not feasible. But because I have many tasks to calculate, it is easy to distribute the tasks amongst the available cores.While my Z600 is NOT significantly faster than my Intel Core i7 3770 on a single thread (perhaps even slightly slower), it will outperform on multithreaded tasks up to 300-400%. Even by just running several things in parallel the Z600 wins. Remember this computer cost me a total of 300 Euro with upgrades (CPU, RAM and GPU). Of course a brand new i9 Hexacore with GTX1080 or RTX2070 will be significantly faster, but at a cost of 10-15 times more money. And still it would probably lose in the Cinebench benchmark.I got so fascinated with this, that I bought a second hand Delll R910 for the office. It has 4 Xeon CPU's, featuring a total of 80 logical cores (!) and 256GB RAM (you pay for a decent refurbished unit with 1 year waranty around 2.000 Euro).This cannot be used for games (servers don't have propper GPU's nor can you fit a graphics card). But when it comes to parallel processing, this is a beast!Again, running just a single task on a single core is SLOWER than an Intel Core i7 4770HQ.I recommend you search Youtube for Cinebench benchmark. You will see what parallel processing can perform!Regards,Vitor

author: apis
author_rank: Super Contributor
timestamp: December 15, 2018, 08:05:03 pm
content: Quote from: T3sl4co1l on December 14, 2018, 05:21:32 pmIt was a long time since I used Java for anything serious, but back then you couldn't get atomic operations. Things like, e.g., the synchronised keyword was experimental and best avoided (the official documentation told people to stay away), it was also super slow and a nightmare to debug. Even if they have gotten it to work reliably now (I wouldn't know), multi-threading in java will always be an afterthought.Anyway, the point was that it is not just difficult/extra work for the programmer, sometimes the programming languages themselves just doesn't let the programmer do it efficiently in a way that is guaranteed to work. So it might not just mean refactoring code, it might mean rewriting things from the bottom up and hiring new programmers to do so.

author: apis
author_rank: Super Contributor
timestamp: December 15, 2018, 08:10:13 pm
content: Quote from: Nerull on December 14, 2018, 09:05:10 pmMaybe they are thinking of some kind of Microsoft app. (Although it's true that you can't parallel compile a single file.)

author: T3sl4co1l
author_rank: Super Contributor
timestamp: December 15, 2018, 10:11:07 pm
content: Quote from: apis on December 15, 2018, 08:05:03 pmWow, that must've been areallylong time ago then; I don't remember hearing any particular problems back then, in Java 5/6.QuoteYup. It's a structural change, so it takes a different mindset to create, and it's not easy to transform serial code into parallel code, not just a refactor (except in "embarassingly parallel" cases, perhaps). And there are definitely language differences.I suppose the underlying truth is this: it's still an unsolved problem, as far as the best strategies to approach it are concerned. Hopefully this will change in the next few decades, as more programs, and their developers, are forced into learning and developing new methods and tools to facilitate it. But, that will take a while...Tim

author: rhb
author_rank: Super Contributor
timestamp: December 15, 2018, 10:57:22 pm
content: Gnu make has spawned multiple processes on shared memory machines for at least 20 years. But you have to tell it to do so. I had a build that ran on multiple systems. but I could only run on one at a time as I crushed the NFS server if I started a 2nd build before the first finished. This did not make the admins happy as it interfered with their backups.I can't think of an example at the moment, but I feel rather certain that there are algorithms which cannot be made parallel because of data dependencies. And there are a large number of problems which can be made parallel except that the interprocess communication rapidly overwhelms any advantage from adding processors.The advent of threads blew my mind as it demonstrated such staggering ignorance of the history of computing. The early time sharing systems had several processes running in the same address space. So it was very easy for a bug in one program to take down the whole machine. Threads will generally only deadlock or crash a single process now.If you have an algorithm which will run well on a distributed memory machine, then it will also work very well on a shared memory machine provided that disk I/O doesn't become a bottleneck.

author: Kilrah
author_rank: Unknown
timestamp: December 16, 2018, 09:20:22 am
content: Quote from: apis on December 15, 2018, 08:10:13 pmI build stuff daily with Visual Studio and it does parallel compiles just fine! Solution I work on takes 4min45 to build when locked to single concurrent build, and 1min when parallel builds are enabledQuote from: Bicurico on December 15, 2018, 12:40:24 pmEven this isn't really correct anymore since manufacturers "cheat" (well more like develop efficient methods to get the best of both worlds)There used to be a case for few high speed cores, but that's basically gone thanks to turbo. The main limit nowadays is thermal, and the only reason high core count processors are lower freq is just that, when you have 8 cores dissipating power they have to limit their speed so that total dissipation remains within capabilities. But systems can now adapt pretty well to the load they detect, so even on a high core count and relatively low freq part with something that is heavy and single threaded most cores will shut down and allow the same total dissipation to come from only 1 or 2, which as a result will be set at much higher speeds as the "all cores on" freq, giving you the same performance as an equivalent few core/high speed CPU.So these 2 categories are now blurred and getting a lower core count CPU in the hope of boosting single thread perf is completely moot now.A lot of people jumped on the i7-7700K a couple of years ago because it was believed it would be the last "single thread king" with its only 4 cores with super high frequency and Intel had announced next gen would add more cores. Welp... the next gen 8700K has 6 cores and accordingly higher multi core performance, AND also higher single thread perf. And now the 2nd next gen 9900K has 8 cores, nearly double the multi core performance of the 7700K, and... well, higher single thread perf than both the 7700K and 8700K anyway.So, at least with Intel do NOT get a lower core count part thinking you're going to get better single thread perf, you won't, and will simply limit your potential for anything that can make use of the extra cores.

author: Bicurico
author_rank: Super Contributor
timestamp: December 16, 2018, 11:15:37 am
content: I meant it as a general idea of what is in the market and how you could divide it into segments.Of course, the main issue is the dissipation of heat. And yes, you can purchase multi core CPU's that have high clock rates, too. But take a look at the price! It increases considerably.I doubt that a pure game will benefit from an i7/i9 hexacore over a quad core. Even the i5 is enough (quad core without Hyperthreading).At the end of the day, it comes to: budget, what kind of software you need to run and how much your time is worth.Regards,Vitor

author: olkipukki
author_rank: Frequent Contributor
timestamp: December 16, 2018, 01:03:58 pm
content: Quote from: zucca on December 13, 2018, 04:32:41 pmIt depends what are you doing. In the most cases, that's correct, but not so clear as 'black-and-white'.Here couple pictures worth more than many words:Pic1_Basic = Altium and SolidEdge general routines and tasks (In fact, I expirenced a performance degradation for these tasks after switched from i7 X-series to this Xeon, well almost 1Ghz raw power lost per core)Pic2_Rendering = from SolidEdge, suddenly 20 cores utilized 100%Quote from: zucca on December 13, 2018, 04:32:41 pmI was about jump to AMD ship and thought 2950X will tick all boxes.Unfortunately, there is no decent motherboard, just tweaks (aka BIOS) from 1st generation, so I parked the move for a good time and looks like I will stick with Xeon again.

author: Bicurico
author_rank: Super Contributor
timestamp: December 16, 2018, 03:07:33 pm
content: Rendering (ray tracing) is a prime example for multi core processing. The image is split in small parts and each core processes a part in parallel.Xeon CPU's in the same price range as Core i7/i9 have less clock frequency and are therefore slower. On the other hand they usually have a bigger cache memory.It is difficult to determine which is faster, because it does specifically depend on the software scenario used.The first thing I teach in my CAD/CAM/CAE courses is that you FIRST buy the software THEN the computer!Most CAD/CAM packages don't even support AMD processors. This doesn't mean the software does not run on AMD - it just was not certified for it and in case of crashes/problems you won't get support.The same with nVidia GPU's: GTX is faster than the Quadro counterpart, but usually only Quadro is certified.Regards,Vitor

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 16, 2018, 04:43:24 pm
content: Doesn't the RTX series of GPUs have new instructions just for ray tracing?

author: Ice-Tea
author_rank: Super Contributor
timestamp: December 16, 2018, 04:47:57 pm
content: Yep.

author: olkipukki
author_rank: Frequent Contributor
timestamp: December 16, 2018, 06:42:42 pm
content: Quote from: Bicurico on December 16, 2018, 03:07:33 pmPlease correct me if I am wrong, but i7/i9 does not support ECC, so obviously choose to skip these completely for CAD-class systems.Of course, a lot of people believe "that's never happened to me"...

author: Kilrah
author_rank: Unknown
timestamp: December 16, 2018, 07:55:09 pm
content: It's correct, but nothing in CAD (or anything really) actuallyneedsECC.It's just an expensive "piece of mind" measure.

author: wraper
author_rank: Unknown
timestamp: December 16, 2018, 08:31:24 pm
content: Quote from: Kilrah on December 16, 2018, 07:55:09 pmIt does not but you'll regret when your files get screwed and you notice the issue only after some time. FWIW you can get EEC cheaply. Ryzen + unbuffered ECC RAM. Needs motherboard which supports it, though. Non obvious RAM issues sucked enough of my blood so I do care having ECC.

author: wraper
author_rank: Unknown
timestamp: December 16, 2018, 08:39:58 pm
content: Quote from: olkipukki on December 16, 2018, 01:03:58 pmWhy would you care about X399 chipset?Issues like bad RAM support were because of 1st generation CPUs, not chipset. And even most of that was fixed by bios updates.

author: Mr. Scram
author_rank: Super Contributor
timestamp: December 16, 2018, 08:45:07 pm
content: Quote from: nctnico on December 14, 2018, 08:53:09 pmPart of what you saw is caused by Xeon being one or two generations behind on the mainstream platform. People who buy servers tend to prefer proven hardware. Not only is the technology lagging, clocks are also sacrificed for core count in Xeon class chips.While it's true that the single thread performance has been much more incremental the past 5 to 10 years, a small but not insignificant increase every generation adds up. Today's cores are much faster than those back then. It's been 5 to 15 percent each generation, but considering that compounds it's not a trivial improvement.

author: Mr. Scram
author_rank: Super Contributor
timestamp: December 16, 2018, 08:46:59 pm
content: Quote from: wraper on December 16, 2018, 08:31:24 pmECC is nice to have, but I've literally never seen problems I even remotely suspected would have been prevented by it. For mission critical systems it simply makes sense, although it's limited in what issues it solves.

author: Kilrah
author_rank: Unknown
timestamp: December 16, 2018, 08:51:43 pm
content: Quote from: wraper on December 16, 2018, 08:31:24 pmI've been using computer systems for 2 decades now and never came across such a scenario that could be attributed to RAM even once. I'd consider that the "one in a billion stroke of bad luck".A drop in the ocean compared to countless crashes from simply buggy software.

author: wraper
author_rank: Unknown
timestamp: December 16, 2018, 08:57:25 pm
content: Quote from: Kilrah on December 16, 2018, 08:51:43 pmI had a very bad luck with RAM, problems with multiple PCs I had. Something like OS crashes once in a few weeks and even more often software crashes. And problem completely undetectable by RAM tests even if left running for a whole day. Only changing RAM fixed those problems. And that RAM was not even faulty (stumbled on faulty RAM as well). It worked just fine in different PCs.QuoteMany of those issues might be caused by RAM, and not buggy software as you think.

author: nctnico
author_rank: Super Contributor
timestamp: December 16, 2018, 09:01:12 pm
content: Quote from: Mr. Scram on December 16, 2018, 08:45:07 pmOfcourse I'm writing about comparable CPUs when it comes to cores and clock frequency; both for workstation use. I know there are server optimised Xeons with lots of cores but these don't have very good single thread performance so they wouldn't compare well to a CPU which is optimised for workstation use.

author: nctnico
author_rank: Super Contributor
timestamp: December 16, 2018, 09:04:27 pm
content: Quote from: Kilrah on December 16, 2018, 08:51:43 pmNo. Software crashing can often be attributed to bad memory or bad hardware in general. You just don't know it. My previous PC initially had a bad memory module which caused the flaws wraper is writing about. It took a couple of hours for memtest to find what was wrong. After replacing the memory all was well. ECC memory really is worth having.

author: rhb
author_rank: Super Contributor
timestamp: December 16, 2018, 09:24:53 pm
content: Quote from: Kilrah on December 16, 2018, 08:51:43 pmIn 1991 my Sun 3/60 had a bad ECC DIMM. I linked a new kernel and deleted some drivers. As a result if it had been up for a week and I used the tape drive it would kernel panic. Immediately after the reboot it worked fine and would for a day or two. I repeated this experiment many times. I eventually went back to the stock kernel which mapped the bad memory to a driver I did not use.My Z400 workstation, also ECC DRAM, running Solaris 10 will crash if it's been up for a week and I do a ZFS scrub. Immediately after a reboot the scrub works fine.I concluded from the symptoms that there is a spot in memory that gets initialized at boot, but which doesn't quite refresh reliably. A memory diagnostic program won't find it because it's reading and writing. The only thing I can think of that would locate it is to write a bare metal program that initializes all of memory and then does a read at intervals which double until it reads back a wrong value.I'd certainly agree that most OS crashes in the Windows world are buggy device drivers for which MS takes the heat. And most application crashes are buggy applications.I'm accustomed to systems running non-stop for long periods. At work an admin wanted to patch my system. Out of curiosity I took a look at uptime. It had been up for 467 days. My Z400 S10 system gets shutdown if I go out of town, but it ran for years without a hiccup until recently when the scrub issue appeared.I'll probably resolve the S10 problem by buying 24 GB of ECC DRAM to replace the current 12 GB.

author: nctnico
author_rank: Super Contributor
timestamp: December 16, 2018, 10:41:35 pm
content: Quote from: rhb on December 16, 2018, 09:24:53 pmThat might not work. Memtest is quite good at finding faults because it uses semi-random patterns to ultimately find the pattern which triggers the problem. In the 90's I had a PC repair service (instead of working at the grocery store). I still recall the customer which came to me to have his new PC diagnosed. He kept having problems but the store didn't want to take it back because according to the shop it was working fine. After some swapping & testing it turned out the motherboard was bad but it would only affect a certain version of Eudora which ran fine on other PCs. The customer was happy I found out his PC is faulty because for him buying a computer was a big expense and he couldn't stand the idea of losing his money. Truth to be told: he shouldn't have bought the cheap crap but that is another story.

author: apis
author_rank: Super Contributor
timestamp: December 16, 2018, 10:53:48 pm
content: Memtest has helped me diagnose faulty memory a few times. Didn't show up with the standard patterns, only after several hours running random patterns. If it was easy to discover the problem they probably would have rejected it in the factory. Only had problem with new memory modules though, I have never seen good memory go bad over time.

author: Mr. Scram
author_rank: Super Contributor
timestamp: December 16, 2018, 11:01:22 pm
content: Quote from: wraper on December 16, 2018, 08:57:25 pmA whole day honestly isn't a lot for a RAM test. The more obvious faults tend to show themselves the 5 or so passes, but more insidious ones can take many passes before something shows. Having something show up in the 17th or 26th pass isn't unheard of.

author: wraper
author_rank: Unknown
timestamp: December 16, 2018, 11:18:05 pm
content: Quote from: Mr. Scram on December 16, 2018, 11:01:22 pmYou can run it for a week. But is it practical making PC unusable for such a long time? With ECC it's simple. If there were errors, you'll see them in a log.

author: wraper
author_rank: Unknown
timestamp: December 16, 2018, 11:21:47 pm
content: Quote from: apis on December 16, 2018, 10:53:48 pmI had cruacial (micron) DDR3 memory stick going bad after about 1.5 years. A few addresses became bad. No overclock. Also I've seen GPU RAM becoming unstable at stock frequency. In those cases lowering temperature by some means, like replacing cooler to aftermarket or adding RAM heatsink solved the issue without IC replacement.

author: Mr. Scram
author_rank: Super Contributor
timestamp: December 16, 2018, 11:45:18 pm
content: Quote from: wraper on December 16, 2018, 11:18:05 pmECC only protects against a specific error subset. It far from protects against all errors.

author: olkipukki
author_rank: Frequent Contributor
timestamp: December 16, 2018, 11:52:20 pm
content: Quote from: wraper on December 16, 2018, 08:39:58 pmThat's good to know that they (MB manufacturers) finally managed to fix most issues , but I am not convinced, I would except a bit more effort for €400+ boards...CES is not far away and I will wait and see what's planning for 2019

author: wraper
author_rank: Unknown
timestamp: December 17, 2018, 12:19:22 am
content: Quote from: Mr. Scram on December 16, 2018, 11:45:18 pmIt corrects not all errors. But you will know if they are happening. Without ECC you don't even know if there is an issue with RAM. And as most of consumer RAM available is factory overclocked, I'd be concerned about lack of ECC even more.

author: KaneTW
author_rank: Frequent Contributor
timestamp: December 17, 2018, 01:16:00 pm
content: I've had a *lot* of very subtle RAM errors that only show up under specific loads and not in memtest. All I'm doing now is buying ECC RAM, forever.

author: Zucca
author_rank: Unknown
timestamp: December 17, 2018, 01:20:48 pm
content: Thanks guys I was stuck on this thread and read about the ECC stuff like I found water in the desert.Given that ECC/not ECC price difference, I go with ECC all the time. Anyway I try to use my brain every time for each case (and sometime I fail...).For example in my used P51 Lenovo 16GB-->32GB upgrade, I found a 16GB not ECC installed and I decided insted of banking out 32GB of brand new ECC, I got a 100$ 16GB not ECC stick and let it go. Done and move on. In a laptop used at most 3-5 hours/week (Altium or Solid works when I am out from my office...) I don't see the point to have ECC. If one day I will see a blue screen or find a RAM jerk bug, oh well then I will post here how stupid I was.BTW: How many laptop support ECC? bah...My pfSense box is on 24/7 and there I have ECC, could not be happier: rock solid with an used and forgotten gamer MOBO.In my new Workstation I will go for ECC all the time. If you are building a new PC for work, ECC is a no brainer.That's why I am irritated to see I9 do not support ECC.Yes after CES2019 I will make my final choice, that's a wise chioce.Another interesting read: ECC overclock?https://www.reddit.com/r/Amd/comments/6ze285/overclocking_ecc_memory_for_threadripper/

author: wraper
author_rank: Unknown
timestamp: December 17, 2018, 02:02:51 pm
content: Quote from: zucca on December 17, 2018, 01:20:48 pmI'm overclocking 2133 ECC ram to 2800 on Ryzen 1700X system. The best about overclocking is that you see corrected errors in the log once it becomes unstable. I'm overclocking RAM only because I'm also gaming on this PC. Otherwise not worth it.

author: Zucca
author_rank: Unknown
timestamp: December 17, 2018, 02:05:18 pm
content: Quote from: wraper on December 17, 2018, 02:02:51 pmWhy? Thanks in advance.

author: wraper
author_rank: Unknown
timestamp: December 17, 2018, 02:15:21 pm
content: Quote from: zucca on December 17, 2018, 02:05:18 pmOn Ryzen gaming performance is highly dependent on RAM speed. In just about any other task difference is much smaller.

author: Zucca
author_rank: Unknown
timestamp: December 17, 2018, 02:23:32 pm
content: Well because gaming needs an instense RAM data transfer, so all similar application will benefit from that... I suppose.

author: Zucca
author_rank: Unknown
timestamp: December 17, 2018, 02:34:54 pm
content: Quote from: olkipukki on December 16, 2018, 11:52:20 pmCan we please stop to put RGB Led everywhere? Or Audio grade capacitor with some 120dB SNR DAC spec? Everytime I hunt an high end MOBO for my new workstation I want to cry, I don't want those feature but I have to pay them anyway.https://www.asrock.com/mb/AMD/X399%20Taichi/index.asplike the other flagship MOBO...

author: wraper
author_rank: Unknown
timestamp: December 17, 2018, 02:36:57 pm
content: Quote from: zucca on December 17, 2018, 02:23:32 pmIt also increases transfer speed between CPU cores. Apparently has a lot to do with Nvidia GPU drivers.

author: Zucca
author_rank: Unknown
timestamp: December 17, 2018, 06:32:22 pm
content: Quote from: rhb on December 16, 2018, 09:24:53 pmKeep us posted! Good luck!

author: macboy
author_rank: Super Contributor
timestamp: December 17, 2018, 07:36:45 pm
content: Quote from: zucca on December 14, 2018, 03:31:47 pmNVMe SSD are very fast indeed, but truly are only incrementally faster than a SATA3 SSD. The impact in performance for most workloads is small. Granted, in some cases, that improvement is very important, but in most cases, it isn't so important. For most tasks, SSD disk access time is already so fast that even doubling or quadrupling the disk performance doesn't give such a great actual overall gain, all things considered.In contrast, the performance difference between even the fastest HDD and an ordinary SATA SSD is extraordinary. The SSD is literally 3 orders of magnitude faster in terms of latency and operations per second, and several times faster in data transfer (MB/s). Just replacing a HDD with SSD can decrease boot time from say 2 or 3 minutes (to full usable desktop) down to 20 seconds. That is HUGE. Swapping that SATA SSD for a NVMe one (if the system can even boot from one) might reduce the boot time by another 5 seconds, maybe 10 tops. Noticeable, sure, but not mind-blowing like the change from HDD to SSD. When you already boot in just 20 seconds, you can't exactly shave 1 minute off the time, can you?I've been trumpeting the benefits of SSD for years to my friends and coworkers, ever since buying my first 60 GB SSD several years ago. Each and every time one of them has finally upgraded to an SSD, they remark that its "like a brand new computer". I'd say that SSD is mandatory, and NVMe is a "would be nice".

author: Mr. Scram
author_rank: Super Contributor
timestamp: December 17, 2018, 07:50:48 pm
content: Quote from: macboy on December 17, 2018, 07:36:45 pmYou're not wrong, but SATA has been. It's lived its live. NVMe drives are barely more expensive, so it makes sense going for one. The massive bandwidth increase can be great. Not for the boot times or load times everyone always focusses on, but when you have two IO intensive tasks going you should start seeing solid differences. As soon as you start throwing a lot of data around within the system, SATA quickly chokes up.The difference with a traditional HDD is indeed massive, but going for an SSD is pretty much a given at this point. They're not exotic or expensive any more and even the most masochistic folks shouldn't consider HDDs as boot drives any more.

author: Kilrah
author_rank: Unknown
timestamp: December 17, 2018, 09:20:00 pm
content: I've seen a drastic improvement going from SATA to NVMe. I had frequent slowdowns with 2 different SATA drives (everything is blazing fast then when doing too many things at a time grinds to a halt) which never happen with NVMe. Nothing to do with peak throughput, just the interface and queuing management of things is way better suited to today's heavy multitasking loads.

author: Ice-Tea
author_rank: Super Contributor
timestamp: December 17, 2018, 09:22:04 pm
content: Sure you're not just seeing the improvement between SSD generations?

author: Kilrah
author_rank: Unknown
timestamp: December 17, 2018, 09:25:56 pm
content: I would not expect a single gen to bring THAT much difference...I've tried 2 successve SATA gens with the same meh performance, and next one in NVMe solved it.But maybe, can't really say since I never bought 2 of the same in SATA and NVMe for a comparison.

author: NiHaoMike
author_rank: Super Contributor
timestamp: December 18, 2018, 02:04:58 am
content: Quote from: zucca on December 17, 2018, 02:34:54 pmI have a DX79SI, a high end motherboard from about 7 years ago (still in daily use), that has been criticized for the audio part being basically the same as what's used on cheap motherboards. Customers who pay more generally expect more in every category.

author: Zucca
author_rank: Unknown
timestamp: December 18, 2018, 03:40:42 am
content: Quote from: NiHaoMike on December 18, 2018, 02:04:58 amDon't you think because the customers are now gamers, they need to put implement fancy and not useful feature in order to sell?

author: Berni
author_rank: Super Contributor
timestamp: December 18, 2018, 06:12:44 am
content: Yep when people buy a motherboard that's in the ballpark of half a grand, then expect it to have all the bells and whistles. Its not like the fancy audio actually cost them much on the BOM with such an expensive board.Oh and with SSDs there was a bit of a bumpy ride in the old days. Motherboards would love using them in IDE emulation mode, or an OS wouldn't automatically run trimm on it and such. All of that could show significant performance degradation.But yeah in terms of boot times even old SATA SSDs are fast enough to make other parts of the machine be the bottleneck. Its more about the quick access time to the many many tiny files the OS tries to load on boot. The reason i moved to NVME is that my stoneage 160GB SSD (That was a pretty big SSD back in the day) is becoming a bit small for a system drive. And if i buy a new drive i might as well go for NVME due to its extra performance.

author: KaneTW
author_rank: Frequent Contributor
timestamp: December 18, 2018, 06:31:41 am
content: I tried overclocking my 128GB of ECC UDIMM RAM, but that didn't lead anywhere. Not sure what was causing issues, and I don't have the equipment to even attempt to look at the signals. I'm thinking either low headroom on the RAM, or the memory subsystem just not being able to handle full banks + ECC + fast clocks.Not too interested in trying out other RAM considering the price, but maybe once there's a new TR socket.

author: Berni
author_rank: Super Contributor
timestamp: December 18, 2018, 06:47:29 am
content: Quote from: KaneTW on December 18, 2018, 06:31:41 amRAM overclocking can be tricky sometimes. You might just need to give it more voltage, or you might actually have to adjust the timings for it. In general RAM requires longer CAS/RAS latency timings when run at higher clock speeds. This means that the access time tends to not improve at all, just the raw transfer rate improves.But yeah in most workloads the RAM speed is not all that important. Its only the slowest grades of RAM that are slow enough to actually really affect performance. Most of the time the CPU does a very good job of caching data to reduce RAM traffic. There certainly are some workloads that benefit from blazing fast RAM but most don't. Easy way to check is to simply down clock your RAM to half its speed in BIOS and see if your workload slows down any.

author: KaneTW
author_rank: Frequent Contributor
timestamp: December 18, 2018, 07:04:45 am
content: I was trying different timings at the time, but at some point it just felt like poking in the dark and I grew tired of it.

author: Mr. Scram
author_rank: Super Contributor
timestamp: December 18, 2018, 07:26:23 am
content: Quote from: Ice-Tea on December 17, 2018, 09:22:04 pmIt is pretty much exactly what NVMe is supposed to bring. SATA was never intended for torrents of data being thrown around.

author: wraper
author_rank: Unknown
timestamp: December 18, 2018, 10:56:11 am
content: Quote from: zucca on December 14, 2018, 03:32:16 amYep, They disable ECC in desktop CPUs. Purely for marketing reasons, so they don't compete with Xeon. But they have ECC in Atoms and Pentiums as those may go into NAS. AMD don't officially support ECC in Desktop CPUs but don't disable it either.

author: wraper
author_rank: Unknown
timestamp: December 18, 2018, 11:03:09 am
content: Quote from: KaneTW on December 18, 2018, 06:31:41 amOn my motherboard my Hynix MFR based RAM won't overclock unless I change drive strength to 68 or 80 OHm. The fun fact is, it overclocked just fine with one older bios version, which is not even supposed to be used normally. It's a bridge version which you need to update old bios to before updating to newer versions. On another motherboard I had it would overclock just fine with the same CPU without any tinkering.

author: vtwin@cox.net
author_rank: Regular Contributor
timestamp: December 18, 2018, 05:42:17 pm
content: Quote from: macboy on December 17, 2018, 07:36:45 pmSSDs are the single best improvement you can invest in. I've taken 5 year old systems at work, put in an SSD, and it is like a brand new computer to the end user.Buy a new 'decent' system for the office staff: $1000Buy a new SSD and upgrade their existing system: $100Really, it's a no-brainer.I have a Dell Precision laptop with both an NVMe (2TB) and SATA-600 (4TB) SSD. The NVMe drive is 4x faster than the SATA-600 drive.