Re-thinking My Honours Project Topic

October 16th, 2009


closeThis post was published 2 years 3 months 24 days ago and as such probably does not reflect my current opinions, knowledge or ability.

3720871677_5134a85c87As you may have gathered from my previous post I’ve been having some doubts and concerns about my honours project topic for some time, and have continued to consider possible alternatives throughout the start of term.

Having completed further research, I strongly feel that one of these alternative topics in particular would be better suited both as an honours project and as something I personally would like to investigate. Although this decision is not yet final and requires much further refinement, I hope that completing the original worksheets and (potentially) receiving some feedback will aid me in reaching a hasty yet prudent decision.

1. State the topic of interest that you may wish to take forward into a project.

Distributed Parallel Computing.
Splitting an appropriate problem across multiple processing units with independent memory, for example using separate machines on a local area network. The aim would be to establish how much of a performance gain (if any) is given above processing on a single machine, or is given by more intelligent methods of splitting workloads. Theoretical gains could be compared to those achieved in practice.

2. Indicate the issues surrounding this topic that you may wish investigate.

3720871677_5134a85c87

  • Techniques and patterns for concurrency and parallelisation.
    • How can systems be kept in sync?
    • How can errors and faults be detected and compensated for?
    • Can redundancy be built in to accommodate the loss or addition of processing units?
    • But does it scale?
    • How does the solution allow for fair comparisons between approaches?
    • How can workload be balanced between different systems?
  • Adapting parallel solutions to use across a network
    • How much data needs to be transferred?
    • How are varying transfer speed and reliabilities dealt with?
    • How is data loss compensated for?
  • Available hardware and software
    • Must all hardware involved be identical?
    • Can the solution be ported to alternative operating environments?
    • What supporting libraries are suitable for this task?
    • Could graphics or console hardware be used additionally or alternatively?
  • Uses or problem areas which could benefit
    • Rendering such as ray-tracing or ambient occlusion.
    • Grid based or particle based simulations.
    • Spatial, multi-character and world based simulations.
    • High dimensional noise generation.

3. Outline your initial ideas about how you would carry out the practical aspects of the project. i.e. what do you envisage yourself actually doing for the project.

3720872741_d7363c62c5As I mentioned above, I’m still unsure of the type of application I’d like to focus on for this project. Distributed rendering appears to be a very suitable process which I believe would be achievable in the limited time available.
However, I would be particularly interested in the idea of taking a huge number of characters within a map or area and performing operations on each of these: collision detection, pathfinding, flocking behaviours or primitive AI behaviours. In this way workload could be split by population densities at a given time or by given fixed areas, and comparisons performed. I also think this would result in an exciting, scalable demonstration if some simple visualisations were shown.

In either case, the practical aspects of the project would involve creating a flexible simplest-case framework to allow trivial computations to be performed remotely. This would then be expanded to deal with the problem chosen, again in its simplest form. The application would then be iteratively improved in terms of redundancy and fault recovery, workload balancing, optimisation, with depth and complexity increased, measuring performance at each stage.

Any feedback on the idea would be hugely appreciated, as ever.

Images thanks to nurpax



Related Posts


Comments

  1. wildcard says:

    Since it is fairly late (I am unsure as to the wisdom in commenting in my present state of sleepiness) I only quickly read through this post, and I might be way off base, but I guess good leads to check out could be SETI@Home (http://setiathome.berkeley.edu/ and http://en.wikipedia.org/wiki/SETI@home), Folding@Home (http://folding.stanford.edu/ and http://en.wikipedia.org/wiki/Folding@home), and ?Googles? MapReduce (http://en.wikipedia.org/wiki/MapReduce), as they, in my mind, all “feel” related to this topic.

    At least for Folding I seem to remember something about each “package” being distributed to several of the computers, just to avoid that one faulty machine would “contaminate” the results of that package.

    In any case, this might be way off mark for what you are thinking about, but hopefully it could be of some use :)

  2. Hazel says:

    Hey, thanks for the feedback. This post was a pretty rough summary of my idea – hopefully my future proposal drafts will make it clearer what I’m attempting to investigate.

    The three examples you gave all relate closely to the topic I’m considering, although I’m looking at a much smaller scale. I limit the extent of some problems by working with a limited number of machines on a LAN and by having control of each node (no deliberate attempts to invalidate the data, just faults and errors). At the same time though as I need to maintain a simulation in real-time the issues surrounding processing and data transfer are a little different.

    Thanks again :)

Leave a Reply