CSE 260 Homework #0

Hard copy due in class on Thursday 3/31/11

  1. Tell me about yourself. At what stage are you in your studies? What are your research interests? Are you contemplating using parallel computation in your research or for your job?
  2. Are there any aspects of your technical background that you'd like to tell me about, or that you'd like to develop further?

    What would you like to get out of the course? Are you looking for a lab partner or have you already chosen a 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?

  3. As explained in class, two hardware platforms will be available in the course: Graphical Processing Units (to be programmed with CUDA) and large scale platforms with many thousands of cores (to be programmed with MPI, and possibly pthreads)

    Do you have a preference for a particular programming model and platform? Frame your answer in terms of short term (i.e. the class project) and longer term personal development goals. I encourage you to discuss this with your classmates. Your response will help me plan, but you have the right to change your mind!

  4. Do you have access to a 4 core processor (or more) that is suitable for interactive code development?
  5. If you expressed an interest in using a GPU, do you have access to a machine that has a programmable GPU? Many Macintosh laptops and desktops have this capability, and you may download the CUDA environment from the Cuda Zone web site.
  6. Some of you may have and idea for a course project, perhaps an application that’s part of your research or your job. If so, tell me about it, answering the questions below. You are not bound to use this application for your project. My goal is for you to learn about the issues that motivate parallel implementation and to familiarize you with some of the practical details.


Provide a writeup that describes the application, including any prior results.

Be sure that your writeup 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 currently? Does it run on a single core, or has it been parallelized?
  4. If there is a parallel implementation, answer the following questions.
    1. How well does the application scale?
    2. What programming tools, libraries, or compilers were used?
    3. What capabilities are enabled by the scaling properties of the application?
    4. What aspects of the application’s performance or capabilities are in need of improvement? Have any prior efforts been attempted?
  5. If there is not a parallel implementation please answer the following questions.
    1. What aspects of performance would you like to improve by parallelizing the application?
    2. What capabilities would be enabled by a scalable implementation?
  6. Does the application produce large amounts of data? If so, are the management, access, and manipulation of the data considered a technical challenge?
  7. How widely is the application used? Is there a a wiki or a user's group?