Resources

Research Ideas

ParallelizedMultigridIdea

  • How can we make multigrid work better in parallel?

ParallelDebuggerIdea

  • debugging in parallel is tough. How can we make things easier?

ParallelLinearAlgebraIdea

  • Linear algebra is a good level of abstraction in scientific computation. What if we designed a linalg framework that worked well in parallel?

FloatingPointExpressionCompilerIdea

  • I propose a compiler for mathematical expressions that can transform source mathematical expressions into equivalent forms that yeild better results when using limited precision arithmetic. We could build off of the rich history of automated algebraic manipulation.

FloatingPointErrorDetectionIdea

  • In cancellation, the precision of a number is greatly decreased. Current systems give no way of detecting when this occurs. What if we designed a floating point wrapper class that kept track of the precision of each number? What if this system also allowed us to report lines in the application that are causing numerical artifacts?

SourceCodeManagementHistoryBrowserIdea

  • I would like to develop a system that unlocks scm history for programmers. I envision an eclipse plugin where you can highlight a block of code and view all the changesets relevant to how the code got that way, along with viewing changes to related files. I think that such a program would greatly enrich maintenence programmer's understanding of the code.
    • great doumentation on eclipse on the eclipse websites.
      • "notes on the eclipse plugin architecture."
      • "eclipse platform technical overview"
    • NS: search for any emacs plugins that are relevant to cvs or subversion

ParallelAlgorithmAnalysisIdea?

  • We have easy metric that tell us the space and running time requirements for sequential algorithms, but I do not know of any easy metrics that descrie how well an algorithm will parallelize or scale. I propose a metric for algorithm analysis that keeps track of the dependency of information inherent in an algorithm.

FormalLoadBalancerAnalysisIdea?

  • Why are some load balancers better for some algorithms than others? Can we design better load balancers? I'd like to formalize why some load balancesr work better in some situations in order to facilitate better and more appropriate load balancers. Eventually, if an answer to this question can be generated mechanically by looking at an algorithm, we could have automatic load balancing that is provably the best possible strategy.

ParameterSearchSimultaneousSolveIdea? - We often do simulations that are parameter searches. Why not use those nearby solutions to increase accuracy?

differential equations have alot of information about how to do local updates and the like. Can we use this theory in differential equations?

ImSolverProject

other

  • rapid development - a different technique to decrease the time spent rewriting code -- make the code easy to write. Domain specific languages such as MATLAB are already a big help. Write a simple language that only allows matrix computations. Abstract the parallelism from the user.
    • Dependent theory: Compiler theory, dependency analysis, parallel algorithm design and analysis
    • Explored: Moderate to Well. Matlab just came out with the distributed matlab package, usefulness unknown. Compiled matlab code has existed for some time. Dependency analysis and parallel algorithm analysis understood enough for this project.
    • difficulty for community - moderate to low. All the pieces exist, they just need to be put together in a coherent fashion. Process calculii for automatic parallelization a known hard problem
    • difficulty for you: moderate to high. Falls outside our area of expertise, though we are young and can change.
    • research: Hard research problems, moderate development costs.
    • impact: moderate to low. Most people are going to go with MATLAB's tools unless there is significant proof that ours is better.
    • risk: high. Outside our areas, and competing with a major vendor that is already making progress.
    • human resources: moderate to high, depending on scope. Need programmers to write a new language and a compiler.

  • parallel algorithms - most of the parallel linear algebra techniques used in the real world are naive implementations of serial algorithms. We should be working on developing better algorithms for linear algebra computations
    • dependent theory: numerical analysis, algorithm design and analysis, dependency analysis
    • Explored: Moderate. Plenty of algorithms exist, matrix partitioning has been proven to be NP complete, various attempts have been tried, no-one has succeeded.
    • difficulty for community - hard to moderate. Discrete numerical analysis theory already exists, most naive ideas have already proven intractable in practice.
    • difficulty for us - hard. Requires in depth knowledge of numerical analysis and discrete mathematics, areas that we need to strengthen ourselves.
    • type of research: almost a pure research problem
    • impact: moderate to high, if successful.
    • risk: high. Requires thinking of something others haven't before, our specialized knowledge doesn't bring us advantages
    • human resources: low. Only need people to think, code, and do figures.

  • Domain specific projects: cardiac electrophysiology - instead of trying to solve everyone's problem at once, just try to help out a small group of people with something that is more specific to their needs.
    • dependent theory - depends on the field. Physics people have almost the same background, so something outside of physics. Software engineering, NA, programming experience.
    • Explored: in cardiac: low to moderate. Very few special purpose tools exist. Everyone writes their own, and these people are not experts in this field.
    • difficulty for the community - very difficult
    • difficulty for us - moderate to low. They are trying to solve computer science problems and publish them in biology conferences. They don't know what's been done before.
    • type of research: almost pure development, might be able to taylor research problems specific to their needs.
    • impact: moderate to high in the field, low elsewhere.
    • risk: low. We already have the skills necessary to succeed.
    • human resources: low to moderate. Need good programmers, but their needs are relatively immature.
Topic revision: r5 - 24 Apr 2008 - 16:46:10 - RobBlake
 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback