My company uses Altium Designer for PCB design and the most CPU intensive operation seems to be the autorouting.

My question is, when considering a new computer, would it benefit autorouting algorithms more to have multiple cores of a given speed, or fewer cores of a higher speed? Does Altium's autorouting take advantage of multiple CPU cores?

Specifically I am considering laptop processors but this question could easily apply to desktop processors as well.

  • 7
    \$\begingroup\$ Have you considered asking the software company directly. If you are a paying customer, I am sure they will be happy to inform you. \$\endgroup\$ – A.R. Feb 25 '11 at 18:02
  • 5
    \$\begingroup\$ Take one of your designs, unroute the entire board, open the CPU usage window, and autoroute the PCB. If you CPU stays at 100%, then all the cores are used. If it only hits 50% (for a 2 core CPU), then it does not take advantage of multiple CPUs. \$\endgroup\$ – Robert Feb 25 '11 at 18:50
  • \$\begingroup\$ Little difference, really. Either way, autorouting anything complex is just about a "walk away and come back later" scenario. There are a few levels of this. There's "check my email", there's "fine time to go to the bathroom", there's "grab a cup of coffee", and then there's one I haven't encountered since grad school, which is "hope this doesn't crash by the time I check the results in the morning". Seriously, though, on modern machines I think you're talking about barely noticable differences. In fact, memory may be more important than clock speed. \$\endgroup\$ – Scott Seidman Sep 5 '13 at 15:31

Altium is currently single-threaded, so a quad-core will not benefit you much.

I've heard Altium talk about multi-threading in the future, but at this point, I'd say go for a really fast dual-core over a slower quad-core.

  • \$\begingroup\$ With Intel Turbo Boost, and I think AMD came out with something similar on their last set of chips, there isn't a dichotomy between quad-core and faster dual core. The quad-core chip BECOMES a faster dual core and even faster single core when the workload calls for that. \$\endgroup\$ – Ben Voigt Feb 26 '11 at 4:14
  • \$\begingroup\$ I am still waiting for an official answer from Altium directly, after nearly a week... Your answer seems to be the most accurate for this particular case thus far. Thanks. \$\endgroup\$ – JYelton Mar 2 '11 at 16:37

Recommended System Requirements "Intel® Core™2 Duo/Quad 2.66GHz (or faster) processor or equivalent" If your laptop isn't that fast, I would be concerned regardless of the issue you mention.

  • \$\begingroup\$ The intended laptop to purchase is faster than these requirements in both cases. But still this doesn't quite address the question of whether multiple cores are useful for autorouting. \$\endgroup\$ – JYelton Feb 25 '11 at 21:34
  • \$\begingroup\$ I use Altium 9 on a 2 Ghz Pentium M (When Traveling), so their "requirements" are really more recommendations. You do wait a bit when opening big board files, but it works well enough. \$\endgroup\$ – Connor Wolf Feb 26 '11 at 2:50
  • \$\begingroup\$ @Fake: Do you use autoroute though? Autoroute has HIGH demands on CPU. \$\endgroup\$ – Ben Voigt Feb 26 '11 at 4:12
  • 1
    \$\begingroup\$ Which one? I never use the full-board autorouter, because I've never seen it produce results that aren't rubbish. The real-time single-trace router I have dialed pretty far back, because I've found it to not be particularly useful. So.... Not really. As soon as they produce an autorouter that isn't crap, I probably will start. \$\endgroup\$ – Connor Wolf Feb 26 '11 at 4:39

Dual cores will (almost) always help. This is because other processes running at the same time as your auto-route process. Windows is smart enough to assign different processes to different cores. So in the case that the auto-router can only use 1 core, ideally Windows could give the auto-router full use of a core and then give other things that need to be done (like normal overhead OS overhead) to other cores.

Writing a program to be able to use multiple cores is rather simple to do; however, it is usually split up by things like UI vs backend. It is much more difficult to split up computation heavy processes like auto-routing. The way they could do it is by having different routing methods be in different processes and then comparing when each one finishes. If I were to guess, I would be altium hasn't done this much splitting up of their program, but I don't know that for sure.

So in summary, will it help to have more cores? Yes. Will it have a huge increase in performance? Maybe. Will more cores be better then less but faster? Even harder to say. My overall recommendation would be to ask Altium. Most companies do extensive performance testing and will know their software better then any of us.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.