small update, unfortunately, it seems I don't possess the skills yet to add gpu or multicore acceleration to this simulation, but all hope is not lost yet
the simulations I've uploaded here are about 1500 particles each if I remember correctly
the speed problems come from displaying 1500 sprites.
I ran the simulation with 150,000 particles and no display and it was about 150fps
obviously we need to be able to display the particles in some way, but a more efficient form of display undoubtedly exists to find an outline of particles, although greater minds than mine have had problems finding a perfect one:
http://www.rchoetzlein.com/theory/?p=129
however, when limiting the simulation to 2 dimensions the problem might be simpler
I won't tackle this until after I make an alpha release of the fluid (smoke) plugin, but I have one idea where I set up a grid like the smoke simulation, and count the particles in a given grid space, and use a single sprite which changes size depending on the number of particles, when the number is too small, it will split and be represented by multiple sprites
also, though it doesn't seem possible without rewriting the whole simulation, which I'm not up to, if I find a way to actually limit the simulation to calculating in 2d that could greatly speed things up. even the 2d looking versions youve seen are of 3d water in a 2d container, so I believe there is wasted cpu time on the 3rd dimension even though it isn't doing anything
I'll keep you posted