A lot of the high res smoke simulations are not in real-time. Blender has a screen cast feature that will take a picture every time the frame changes(I think this is how it works? Not actually sure how often it takes a picture). This is done by hitting Alt+F3 and then hitting play.
However, if the simulation is relatively low res it will run in real-time. I can get a resolution around 40 without lag on my machine, which is pretty awesome. Also, as many have mentioned, a cache feature has yet to be implemented.
This is very exciting