CSE 260 Homework #0

Hard copy due in class on Tuesday 9/29/09

  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?

    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?

  2. As explained in class, two hardware platforms will be available in the course: the Lincoln Tesla Cluster, located at The National Center for Supercomputing Applications (NCSA), and the Triton Resource, at the San Diego Supercomputer Center (SDSC). While both platforms support message passing (MPI), each offers an additional, but different, hardware capability.

    The Tesla cluster contains nVIDIA Tesla GPUs which may be programmed with CUDA. The Triton resource includes some 32-core servers (PDAF,the Petascale Data Analysis Facility), that may be programmed with pthreads or OpenMP. There are opportunities for projects involving all of these resources.

    Do you have a preference for a particular programming model and platform? Depending on the hardware, your choices for programming model are: MPI, pthreads, OpenMP, CUDA. Frame your answer in the context of the class project as well as the programming assignments that will be given during the first half of the course. I encourage you to discuss this with your classmates. Your response will help me plan, but you have the right to change your mind!

  3. Do you have access to a 4 or 8 core processor that is suitable for interactive code development?

  4. 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.

  5. 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. If you don’t have a project, take a look at this list of Project ideas. If one of these projects appeals to you, tell me about it, answering the questions below. If you aren’t sure, tell me about an application that you think would be a good candidate for running on a parallel computer. Perhaps you can do a web search, or you can look at the bottom of the Project Ideas web page where I’ve posted suggestions about where to look. Tell me about the application you settled on, 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.


However you came up with an application, 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 please 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?


Maintained by baden @ ucsd.
edu   [Wed Sep 30 22:32:03 PDT 2009]