CSE 260 Homework #1
Due Tuesday 9/26/06 in class

Worth 10 points

  1. Tell me about yourself. At what point are you in your graduate studies? What are your research interests? Are there any aspects of your technical background that you'd like to tell me about? What would you like to get out of the course? Do you have a research project in mind? Are you looking for a lab partner? How do you feel about your programming and teamwork skills? Would you like to improve them? Do you feel you could teach these skills to others? Does anything else come to mind?

  2. Browse the web and read about an application that has previously been implemented on a parallel computer, or a software tool that is used to develop parallel applications. Provide a writeup that describes the application or tool, including prior results and their significance.

    For applications, report available information that addresses the following points.

    1. What is the application and its significance?
    2. What equations are being solved, and what are the algorithms used to solve them?
    3. What hardware does the application run on, and what levels of parallelism are employed typically?
      1. How well does the application scale?
      2. What are the bottlenecks or other limitations and how did the developers attempt to deal with them?
      3. Are there any outstanding performance bottlenecks or limitations that the code developers plan to address in the future?
    4. What programming tools, libraries, or compilers were used?
    5. Does the application produce large amounts of data? If so, are the management, access, and manipulation of the data considered a technical challenge?
    6. Is the application still in use? Are there applications that solve the same problem? Is there any competition? Is the software a commercial product?

    For development tools, your report should address the following points.

    1. What is the tool and its significance?
    2. What problem does it solve, and what is the theory of operation?
    3. What hardware does the application run on, and what levels of parallelism are employed typically?
      1. How well does the tool scale, and what applications has it been used to develop?
      2. What are the tool's limitations and how did the developers attempt to deal with them? Were they successful?
      3. Are there any outstanding limitations that the code developers plan to address in the future?
    4. How widely is the tool used?
    5. Is the tool used to manage large amounts of data?
    6. Is the tool still in use? Are there alternatives that solve the same problem? Is the tool a commercial product?

    Submitting your assignment

    Turn in hard copy in class, but post a URL in the Assignment # 1 Conference of the course web board pointing to your responses for part (2). (Part 1 will only be turned in to me). Your document should be in HTML, PDF, or text format.

    Suggestions for places to look

    Here are some applications

    Here are some tools

    Here are some web sites describing applications and tools