CSE 260 Homework #0
Hard copy due in class on Thursday 3/31/11
- 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?
-
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!
- Do you have access to a 4 core processor (or more) that is suitable
for interactive code development?
- 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.
-
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.
- What is the application and its significance?
- What equations are being solved, and what are the
algorithms used to solve them?
- What hardware does the application run
on currently?
Does it run on a single core, or has it been parallelized?
- If there is a parallel implementation, answer the following
questions.
- How well does the application scale?
- What programming tools, libraries, or compilers were used?
- What capabilities are enabled by the scaling properties of the application?
- What aspects of the application’s performance
or capabilities are in need of improvement?
Have any prior efforts been attempted?
- If there is not a parallel implementation please
answer the following questions.
- What aspects of performance would you like to improve by
parallelizing the application?
- What capabilities would be enabled by a scalable implementation?
- Does the application produce large
amounts of data? If so, are the management, access, and manipulation
of the data considered a technical challenge?
- How widely is the application used?
Is there a a wiki or a user's group?