Note: There has been refinements done to the original design posted in this thread that are as effective as the original but much smaller. The best known is as follows:Casing:
=====
=+++=
==.==
+
. With pump added:
=====
=+++=
==%==
%
. Pump in this example pumps from south to north. =s refer to walls, +s to floors, .s to channels, and %s to the pump tiles. Like the classic-style pump stacks, the impassible tile of each pump goes directly on top of the passable tile of the pump below. Essentially, this refined design is a classic-style pump stack with the reservoir on each level expanded into a 3x1 space in order to keep the tiles around the pumped tile warm.
As I'm sure many of you are aware, using the standard-style pump stack design on magma causes massive FPS drop. 10-level pump stacks of that style, which is shown on the wiki and is the most commonly-cited style for new players due to its efficiency, can drop a fort at 50 FPS down to 20 while they're running. 30-high stacks can drop 100 FPS forts to single digits. Clearly, this is a large problem. I have come up with an alternative to the standard pump stack design that I have found causes significantly less lag when applied to magma. No noticable amount, in fact, on my current, fairly mature fort.
The
original new design for the pumps' housing is thus:
=====
=+++=
=+++=
=+++=
==.==
==+==
==.==
=====
The next levels above and below are identical, with the center square of that 3x3 chamber on the north of the diagram directly above or beneath the channel at the south end of the diagram, so the channel in the center is directly above or beneath its counterpart on the next level up.
Pumps are then put in like so (reversed casing design):
=====
==.==
==%==
==%==
=+++=
=+++=
=+++=
=====
This will put the pump's impassable tile over the central channel. In short, each pump takes from the center of the chamber the pump below fills from, and power transfers to the other pumps through the impassable tile of each pump. Like the standard pump design, in other words, no additional power train is needed; the pump stack transfers power throughout the whole thing by itself. The pumps on each level fill the small chamber before them, and the level above pulls from the center of that chamber.
A picture to show how it looks ingame:
Why, you might ask, does this design cause less lag? I cannot be certain of this, but I have my theories. My thoughts on the matter is that whenever magma moves, squares that are now adjacent to or covered in magma have their temperature recalculated. The same happens when squares cease to be adjacent to or covered in magma.
In a standard pump stack, every few steps magma suddenly appears in a single square, causing the square it is now in, the 8 squares on the same z-level adjacent to that square, the tile directly above it, and the tile directly below it to have their temperature recalculated. As magma is now not in the squares below the pump's input, the counterparts there have their temperature recalculated as well. In short, whenever a pump pulls up magma, 22 temperature recalculations are done. Multiply that by 5, 10, 50, or more, and you force quite a few processor cycles to be taken up. This happens every couple of steps, so it works out to a consistent, massive FPS drop.
My new-style pump stack, on the other hand, keeps magma adjacent to the square being pumped into and out of at all times, so the temperature of the tile the magma is being taken into and out of, as well as the 8 adjacent tiles on the same z-level, is never recalculated. Only the temperature of the squares directly above and below the pump inputs is recalculated, so only 2/11s as many temperature calculations are done. As a result, many, many fewer processor cycles get eaten by this, which equates to far, far less lag.
My own experience thus far is this: I have 2 17-z-level magma pump stacks, one of the old standard style and one of the new style. Both can be shut off with a lever when needed. With neither running, I've been getting ~25 FPS. With the old-style one running, I get ~11 FPS. With the new-style one running, I get ~24 FPS. The difference is clear; whether or not my reasoning behind why the improvement exists is correct, the improvement does exist. Take heed!
tl; dr New pump stack design for magma; perhaps 1/15th the FPS drop. Yay!