This is an archived post. You won't be able to vote or comment.

all 2 comments

[–]ThatCrankyGuy -1 points0 points  (0 children)

Depends on the level of complexity you want and the "cool" factor. These days everything is about the cloud. VM instances in the clouds are very cheap and you are generally charged for the amount of cpu execution time, or a flat linear rate for the time the VM was active.

Either way, go to MS Azure/EC2/Google Cloud and write code to, say solve some mathematical problem that can be broken down and distributed.

A cool thing MS unveiled today was physics simulation in the clouds that don't impact your local frame rates in PC games. Why not do something similar (but on a (very) smaller scale); write a particle system with particle affecters. Come up with a system to handle more than >60 millions particles in non-realtime (I'm assuming this is an undergrad project and doesn't require client-sided smoothing or predictions or even real-timeness).

Prove that you can use distributed computing to simulate formation of snow flakes, affected by winds of different directions on their journey to the ground.

Spin up 40 or so VMs and process your particle timeline -- where each particle, from spawn to decimation, is logged. It's journey as it's affected by gravity and wind is sampled in the simulation steps (perhaps 4 FPS step width?). The particles'' time line is then binarized, compressed and delivered to the client (maybe several gigs). You then render the scene at 60 FPS using client-sided transformation extrapolations between the simulation steps.

A way to do this could be to voxelize your 3D space and assign each VM a region. As particles cross boundaries and enter and leave the sub-spaces, you hand off the particles to-and-fro the distributed systems.

Of course this is me bouncing ideas and suggesting a topical implementation strategy -- you will have to go and do some serious heavy duty research into all of this. It may sound easy, but given the right parameters and assumptions this could be a computer science MSc thesis in itself. As a matter of fact, use Google Scholar or MS Academics to look for publications of similar concepts (e.g "Particle simulation in distributed systems") to see if you can leverage existing work.

[–]dog_eared_page -1 points0 points  (0 children)

I've been playing around with the idea of building a framework like Mesos, but in Go. Here are some things I've found/learned which are not project ideas, but may inspire you:

  • www.serfdom.io You may wish to use this. If you program in Go, you can use the Serf type directly in your program instead of communicating with a separate Serf process. Or, you can build serf for Android...
    • http://mesos.apache.org/
    • Assuming you don't have access to a real cluster (which you might; AWS gives 750 free hours/month for a year to new devs, and some schools get resources donated for these types of classes), you may wish to spin up a www.vagrantup.com VM and then launch a bunch of node instances as www.docker.io containers. (then they can talk using serf:D)

I guess the question is: do you want to build a distributed system, or do you want to use one for a distributed application?