541
DF General Discussion / Re: The Ultimate DF Rig
« on: February 12, 2011, 01:25:54 pm »
This image is a few years old, but it gets the point across:
Modern desktop CPUs are slower for single-threaded operations (hyper-threading can have random effects, so the chips that originally implemented it are actually worse in some ways) than the P4. Hyper-threading doesn't have anything to do with the clock-speed by the way - it just means the core you're working on has schizophrenia.
My other main point is that the DF process is probably heavily bottlenecked by memory speed (I have no definitive proof of this, but then again nobody has any absolute proof that it is bottlenecked by ops/sec either). Some stack traces done on DF have shown that the "move unit" command (pathfinding) heavily dominates procedure call times. Thus, it is reasonable to assume that you should focus on building a computer that is optimized for running pathfinding.
Pathfinding is actually a really simple calculation in terms of clock cycles needed to run the instructions on each step. What isn't so nice is that the DF map is a 3D grid, which the computer has to represent as a linear array, so different rows end up far away in memory, and different Z-levels end up really really far away in memory. This creates generally poor chache performance, to which there are a few solutions aside from algorithmic shenannegans (like putting the map into cubic blocks, or multithreading the pathing or something). The only thing that might help, hardware-wise, would be GARGANTUAN caches (big enough that they can reliably hold on to your dwarves' most-travelled locations), or overclocked fast ram.
Of course I could be wrong; I don't know the implementation of "move unit" so this is all speculation.
Spoiler (click to show/hide)
Modern desktop CPUs are slower for single-threaded operations (hyper-threading can have random effects, so the chips that originally implemented it are actually worse in some ways) than the P4. Hyper-threading doesn't have anything to do with the clock-speed by the way - it just means the core you're working on has schizophrenia.
My other main point is that the DF process is probably heavily bottlenecked by memory speed (I have no definitive proof of this, but then again nobody has any absolute proof that it is bottlenecked by ops/sec either). Some stack traces done on DF have shown that the "move unit" command (pathfinding) heavily dominates procedure call times. Thus, it is reasonable to assume that you should focus on building a computer that is optimized for running pathfinding.
Pathfinding is actually a really simple calculation in terms of clock cycles needed to run the instructions on each step. What isn't so nice is that the DF map is a 3D grid, which the computer has to represent as a linear array, so different rows end up far away in memory, and different Z-levels end up really really far away in memory. This creates generally poor chache performance, to which there are a few solutions aside from algorithmic shenannegans (like putting the map into cubic blocks, or multithreading the pathing or something). The only thing that might help, hardware-wise, would be GARGANTUAN caches (big enough that they can reliably hold on to your dwarves' most-travelled locations), or overclocked fast ram.
Of course I could be wrong; I don't know the implementation of "move unit" so this is all speculation.
