Molecular dynamics is a good area to look at. Something like a particle in cell (PIC) code is easy to implement and allows you to play around with load balancing. If you want something a fair bit harder but extremely educational, try a 2D adaptive mesh code solving a fluid flow problem - you'll learn a real lot about MPI and parallel processing.

I wrote a PIC code to use in MPI courses to demonstrate the effect of different load balances and how it effects the time to solve the system. You can find it online at

        https://nf.apac.edu.au/training/MPIAppOpt/

It is the last example of the course. Its not a great code, it was meant to be simple and easy to modify and to demonstrate load balance, but all the ideas are there.

Stu.


On 21/02/2006, at 21:52, Joe Landman wrote:

Hi Timo:

Timo Mechler wrote:
Hello all,
Over the past couple years I have done research one Beowulf clusters and also implemented the first one at my school. Now that I'm getting closer to graduating, I'm looking of turning all this work into a senior project. The only part that's missing though, is a good physics problem that I could code up a numerical solution for and run in parallel. I have done
some of this, but it's mostly been simple stuff, such as a simple
numerical integration via the Monte Carlo method in parallel. I know some of you on this list are professors and professionals that have extensive physics knowledge. What sorts of physics problems would you suggest I
might be able to code up that would take a some time run on a Beowulf
cluster? I'm going to be using Fortran 77 with MPI libraries as my base for coding. Thanks in advance for your help on this, I appreciate it.

A problem I coded up for a class I teach on HPC applications is an ideal gas in a 2D box, with correct (momentum conserving, energy conserving) dynamics. It was done in C though. I might suggest something like this. Then you can measure pressure (number of impacts on perimeter wall per time step), temperature, and volume, and do experiments where you suddenly double the volume, or have one of the wall boundaries start creeping downwards to decrease the volume, or chill the walls, so that upon collisions with the walls the atoms get slower/faster (lose/gain KE to/from the reserviour).

I did this as an example that I wanted them to add in how to move atoms between processors (no periodic BCs, just "partitions" that atoms can cross. And if they cross it, you need to move them to the adjacent processor.

I have done up to about 1 million "atoms" on a 32 way run, and it works pretty nicely. Somewhat hard to visualize the output, so I had it write stuff out in ".xyz" format, and used VMD to generate a movie. You can see it (about 100 atoms, tiny interaction radius, and a few thousand steps) here at http:// www.scalableinformatics.com/public/idealgas.mpg .

Joe


--
Dr Stuart Midgley
Industry Uptake Program Leader
iVEC, 'The hub of advanced computing in Western Australia'
26 Dick Perry Avenue, Technology Park
Kensington WA 6151
Australia

Phone: +61 8 6436 8545
Fax: +61 8 6436 8555
Email: [EMAIL PROTECTED]
WWW:  http://www.ivec.org






--
Dr Stuart Midgley
[EMAIL PROTECTED]


_______________________________________________
Beowulf mailing list, Beowulf@beowulf.org
To change your subscription (digest mode or unsubscribe) visit 
http://www.beowulf.org/mailman/listinfo/beowulf

Reply via email to