Hello, I'm about to purchase a new computer and I wanted to get some opinions on what I should get. I mostly work with Quartus II on my job and wanted to know what would be a good system to run the software. I've been hearing more about dual-core and quad core systems which do you think gives better performance running Quartus? Last, should I get
4GB of memory or 2GB? I usually program the larger fpga devices and compilation time takes about 30 minutes and my simulations take about an hour. My current system is a dual processor with 2GB of memory. If anyone can comment on what would be the best computer system I'd greatly appreciate it.
Multi-threaded flows that get strong performance benefits are probably years away. If you won't replace your PC for 5 years, the quad core might be good. For the next 2 years, the dual core should be *plenty* but be sure to get more L2 cache. For the larger FPGAs, larger system memory is suggested. If you were doing Cyclone and Spartan3, I'd suggest the lower memory is fine. With the higher end parts, more memory will be properly utilized.
If you want to run simulations while you're compiling your design and write up the documentation while you wait for those processes to complete, get the quad core. If you just want to do one high-power task and one not so demanding activity, I would expect no improvement of quad-core over dual-core in the next 2 years.
If the quad core allows less L2 cache to the main thread than the dual-core, your performance will actually be worse in the near term. Look into the L2 management as a critical factor in chosing your tool and expect 85-100% of your logical and physical synthesis to be on one core for the year or two directly ahead.
These are my opinions based largely on hear-say and system understanding. I just have a single core at the moment and am trying to make my next work PC (the cheap one) to have as much L2 as is reasonable. The next home system will be the capable machine. It's sad how that goes.
Intel's Core-2 based quad-core CPUs (Q6600, QX6700, Xeon E53xx) deliver diminishing returns beyond the dual-core models.
Also, unless you're running Linux, Win XP x64, or Win/Vista 64, the most Windows will use (out of 4GB of physical RAM) is ~3.2GB, depending on what peripherals you have installed.
When I upgraded from an ATI Radeon X600 (128MB) to a Geforce 7900GS (256MB), my "usable RAM" dropped from 3.6GB to 3.2GB. But I can run certain critical applications (Civilizations 4, Company of Heroes, The Sims 2) much better now, so it was a trade-off.
You're right about the importance of memory sub-system performance -- CAD tools have large working sets, so lower memory latency and higher caches are quite important. Intel's quad-core processors are all essentially two dual-core chips slapped into one package, so they possess 2x the L2 cache. Based on the architecture of these chips, I doubt that running a 2-cpu load on a quad-core processor will have a noticeable difference in performance as compared to running the same load on a dual-core processor.
Things will get more interesting when AMD releases their quad-core entry. It supposedly will have independent L2 caches per core, with a shared L3 cache. Also, the integrated memory controller and lower memory latency on the AMD platforms help out Quartus a lot. But then, Intel's 45um offering will also have integrated memory controllers. Isn't competition great?
Not sure why you didn't get a speed-up from the higher clock frequency of your processor though. In general, Quartus benefits both from faster processors and from faster memory, since it isn't fully dominated by the speed of either.
As for the original posters CPU question, I recommend a system-based on the Core2 Duo processor. It is the fastest uni-processor out there (~30% faster than AMD's best right now), and the second core gives you a noticable (10% to 15%) compile time reduction once you set the assignment above. And as Paul notes above, that compile time reduction with a second CPU is growing with each Quartus release.
The quad-core will get you about another 5% compile time reduction now, with more in the future. If you run DSE or multiple Quartus compiles at once you can fully utilize the extra two processors though by simply running another compile (or two) on them. So if you run more than one Quartus at once the quad-core may be worth it, but if not, it isn't worth much more.
If you are compiling the largest devices (3S260 and above), then 4 GB is a better bet than 2 GB. Plus it gives you the option of running more than one Quartus at once to use that second processor if you're targeting a smaller device. If you're using Windows, make sure you get a 64-bit version so you can access all that memory from one process (32-bit Windows only lets you at 2 GB per process).