Before discussing application to such hard problems as simulating brains, I would like to see an example of a short irreversible program, it reversible equivalent, and a trace through running each one that demonstrates the advantage of the reversible program.
I want to calculate f^128(X) (mod N), where f is a polynomial and f^128 is f composed with itself 128 times.
First I calculate f(X) (mod N). Now my workspace is:
X, f(X), garbage.
I copy out the f(X) to some scratch space. Now my workspace is:
X, f(X), garbage, f(X).
Now I reverse my original computation to clear the garbage.
X, 0, 0, f(X).
Now I repeat this process to compute f(f(X)).
X, f(f(X)), garbage, f(X).
Now copy out f(f(X)) and uncompute.
X, 0, 0, f(X), f(f(X)).
Now I repeat my calculation of f(X), but backwards.
X, 0, 0, 0, f(f(X)).
Now I repeat my compu...
This post may be interesting to some LWers.
In summary: it looks like our universe can support reversible computers which don't create entropy. Reversible computers can simulate irreversible computers, with pretty mild time and space blowup. So if moral value comes from computation, negentropy probably won't be such an important resource for distant future folks, and if the universe lasts a long time we may be able to simulate astronomically long-lived civilizations (easily 10^(10^25) clock cycles, using current estimates and neglecting other obstructions).
Has this been discussed before, and/or is there some reason that it doesn't work or isn't relevant? I suspect that this consideration won't matter in the long run, but it is at least interesting and seems to significantly deflate (long-run) concerns about entropy.