Next semester, I intend to start doing research in combinatorics. I have used and fallen in love with Mac computers and Wolfram Mathematica 8, and I intend to get these for use with this project and in college. I will be a Physics and Mathematics double major. Because I have a limited budget, I was wondering which would take priority for my applications: Having a four core processor instead of a two core processor, or having a SSD instead of a hard drive?

  • 1
    I took the liberty of editing the question title to perhaps a little more to the point and potentially sway any knee-jerk votes to close based on not asking a substantive question. I personally feel this is a good question for this specific application. – Shinrai Oct 13 '11 at 19:24
  • 3
    I'd actually say firstly go for as much RAM as possible. – liori Oct 13 '11 at 22:25
  • 1
    I agree with adding more RAM. i have very little understanding of combinatorics but they may be a suitable for GPU based calculations. if it can be mass-threaded then it will likely run much much faster on a GPU using CUDA or equivalent (many magnitudes faster on md5 cracking then top of the range CPU's). – Silverfire Oct 14 '11 at 6:19
  • I'm curious why this is getting close votes - what do you guys find objectionable about the question? – Shinrai Oct 14 '11 at 14:18

For the applications you will be doing, 4 cores would be preferred over an SSD.

Mathematica specifically supports mutli-core processors, and scales extremely well. See here:


You would not expect that much difference from an SSD drive in math and physics applications, which are not processing gigabytes of data from disk.

  • +1 - This is one of a very few instances where a more cores/higher clocks will yield a greater benefit than an SSD. It's also far, FAR easier to later upgrade the storage in most Macs than the CPU. – afrazier Oct 13 '11 at 19:16
  • I usually don't like questions like this, but this is a pretty factual one; the speed of these sorts of computations (unless they're of trivial complexity) are going to get a huge boost from the additional processing threads. – Shinrai Oct 13 '11 at 19:22
  • 1
    I was faced with a similar decision years ago. Get the i486DX33 w/ hard drive or an i486DX50 with just floppy drives. For pure mathematical calculations (such as those I was concerned with), the DX50 won hands down, despite the dramatically slower disk access! – Brian Knoblauch Oct 13 '11 at 20:28
  • I'm going to partially disagree by needed huge files to get an advantage from a fast disk. Over the last fifteen years I've worked with a series of nuclear and particle physics analysis engines and Monte Carlos; and while these sifted moderately large piles of data the thing that the IO bound ones had in common was using a lot of separate files...like ten configuration files (includes mechanism and or multiple layers of fail over defaults), and medium sided disk-based geometry database, three log files, a checkpoint system all in addition to the largish input and output files. – dmckee Oct 13 '11 at 22:47
  • 1
    +1 - But I would also recommend making sure the system has enough RAM as well. Make sure you have 8GB, not 4 in your system, (It really is barely enough under Lion) and spring for the faster CPUs unless you're going to be processing GB upon GB of data. (Drilling surveys, nuclear bomb simulations, that kind of thing) If you need more/faster storage later, you can always use an external box connected to Thunderbolt. CPU is impractical to change unless you're going for a Mac Pro. – SplinterReality Oct 14 '11 at 1:36

In scoping your new computer requirements, I recommend you get your professors' recommendations on coping with combinatorial explosion. You will doubtless have to work some problems which have this side effect. If your intermediate storage requirements exceed your available main memory, your system will start disk memory swapping (thrashing), and even simple problems will take "forever" to finish.

When I've had to work such problems with Mathematica in past years, my motto was, "If you thrash, you're dead."


I'm offering this as a separate answer because none has mentioned the elephant on the couch yet:

CPU is impractical to change later on most Macs (anything other than a Mac Pro) but fast external storage can be added later if you have really huge datasets, which would be impractical to store on the internal drives anyway.

For anything that doesn't require high GB to TB of data, the CPUs will be more beneficial, and if you need high GB/TB of data, the SSD won't cut it either, and you'll need an external box.

My recommendation: 8GB of RAM and the fastest CPUs you can afford. If you need very fast disks later to process TB of data, buy an external box with a Thunderbolt interface. (The largest SSDs won't hold that much anyway)


If your tasks can be parallelized (and for mathematics/physics typically they can be) go with multiple cores and as much RAM as you can afford/will need. In general, the situation will be is you need lots of disk space to store old data (processed by various methods) and the IO parts of the calculation will be negligible compared to the CPU parts. I would possibly consider getting a good GPU you could program for serious computational needs; but this is probably overkill for your question.

To load 1GB of data from disk into a buffer (which can go to memory) takes roughly 10 seconds with a 7200rpm hard disk; and that's a one time cost for most calculations. Rarely will your complicated math calculations take just seconds (and if they do - the bottleneck is you interpreting the results and giving new tasks to run - not the IO speed). Its not at all out of the ordinary to have a computational bottleneck where the data is loaded into memory, and it would take one core 2 days to complete a task; but 4 cores could get it done in half a day. Now not having enough RAM and having to read/write RAM to disk will be a huge slow down (even using an SSD drive as swap).

As a rough guide; a random access read from RAM takes on the order of 10 ns; from an SSD ten thousand times slower than that (100 micro-s); and a hard disk is roughly 100 times slower than that (10 ms). So you really don't want to be doing random access reads from SSD or hard disk. Also for consecutive reads from disk (e.g., you are reading a file with the entire dataset into memory) hard disks won't perform as poorly.


If you're looking at MacBook Pros, I'd put screen size preference above all else. From what I can see, this effectively also defines the number of cores in the machine. Then max the RAM (third-party, perhaps.) Then look into a SSD. I'd leave the difference between 2.0GHz and 2.2GHz Core for the 15" model until the end. It's a relatively small difference in performance for the difference in price.

  • I'd assume for serious work like this the OP is looking at a desktop, not a laptop. You get much more processing power for your money (yes, even from Apple McOverpriced...) – Shinrai Oct 14 '11 at 14:19
  • @Shinrai It's hard to say without more information about what the OP is considering, what the price range is, whether the OP already has a monitor, etc... The iMacs are pretty nice machines for the price, including nice displays, and all have quad core processors. But this computer is also for college use, which I think makes laptops attractive for taking it to the library, meeting with groups to work on projects, etc... Frequently even on laptops you can make use of the GPU to get additional (FAST) cores for specific types of calculations (with extra programming) from within Mathematica. – Brett Champion Oct 14 '11 at 14:50

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.