Monday, December 04, 2006

cisc 372 class tomorrow


Hi all,
The cis 372 class tomorrow is important to attend.

You will be filling out a peer evaluation for your research project
and you need to fill one out in order to get a grade on that
project.

Also, bring your handouts that we've had since the midterm exam and
your textbook and notes. We will have a short question creation time
and then jeopardy game for reviewing for the exam.

There is one presentation tomorrow also.
So, make sure you attend.

Prizes will be given.

Lori

Thursday, November 30, 2006

Project Deliverable 2 Feedback


Overall, everyone did a nice job on the projects. Sometimes, the code was
not complete (e.g., lacked timing statements) or failed on certain inputs,
so you lost points. Since everyone's project was different, it was very
important that your code was clearly documented. The projects may have
changed since deliverable 1, and I needed to know what problems there were
and what the programs' limitations were.

I commented on the timing methodology on a lot of projects. Make sure
that you are using a fair and consistent timing methodology and describe
your methodology in your final report. Justify any decisions you make and
explain what the effect (if any) your decision will have on the timing
results.

Good luck on the rest of the project!

Sara

Tuesday, November 21, 2006

UD CISC 372 Parallel Programming

Final Exam for this course - December 12, 10:30-12:30 regular classroom

Thursday, November 16, 2006

Lab 4 Example


I posted a good example solution to Lab 4 on my web page for this class:
http://www.cis.udel.edu/~sprenkle/acad/cisc372/

Sara

Friday, November 03, 2006

SIGSEGV Errors


I know some people have had trouble with SIGSEGV errors and they didn't
know what the problem was. I found information about the error on this
site:
http://www-unix.mcs.anl.gov/mpi/mpich1/docs/mpichman-chshmem/node106.htm

If your program fails with
p4_error: interrupt SIGSEGV
the problem is probably not with MPI. Instead, check for program bugs including

1. Array overwrites or accesses beyond array bounds. Be particularly
careful of a[size] in C, where a is declared as int a[size].

2. Invalid pointers, including null pointers.

3. Missing or mismatched parameters to subroutines or functions.

Sara

Monday, October 30, 2006

Execution Scripts

Hi,

I reviewing the labs, and some (but not all of you) submitted a script
that demonstrated your code's execution. If you have not already done so,
please submit a script (on paper or via email) that demonstrates your code
executing on at least 4 processors. Run your code several times so that
you cover all "interesting" test cases, e.g., when the query word is in
the dictionary and when the query word is not.

Thanks,
Sara

Friday, October 27, 2006

one more question and answer


Question: Does it have to run with 1 process?

Answer: No, I am changing the spec as I said in class
the other day and saying you do NOT have to run it on
one process. You can assume at least one manager and one worker.

timings for lab 4 cisc 372

Question:
In the lab, there are these lines...

(4) Time your code for 1, 2, 4, and 8 processes for a fixed task size
given to each
process.
(4) Time your code for 8 processes for several different task sizes.
Make sure you
include some extreme
cases like task size of 1 and some very high number.

Answer:
A task size is the number of words sent in each chunk sent
to a given process. So, if you send out 10 words at a time every
time they ask for more work, then a task size is 10 words. Then,
try a task size of 50 words, for instance. So, the first
timings above mean that you don't change the task size but run
with different numbers of processes. Then fix the number of
processes to 8 and time runs with different task sizes, maybe
1 word, 10 words, 100 words, 1000 words at a time to each process
as they ask for more work.
The question is whether the task size changes the performance.

important deadline info and q and a on lab 4 cisc 372


Hi all,
The lab 4 is due today for cisc 372.
No late points will be deducted if it is emailed to the
TA today by 9 pm (before you go out Halloween partying!).
You should slip the hardcopy materials under room 213 Smith
hall by 10 am this Saturday.

Question:
What would be the best way to "exit" the program once we have found the
query word in the dictionary? Could we just use exit(1)? Or would that
mess up the other processors? We tried it and it seemed to give us an
error.
Answer: When process 0 figures out it is time to exit (the word
was found by somebody or it has at 10 words that are close),
then process 0 should send out a message to the others and tell
them to stop working and they should jump to the end of the
program to clean up the MPI, as well as process 0 printing out
the appropriate information and then going on to the MPI cleanup
calls. You should not just exit(1). You always need to hit the
MPI_Finalize() to clean up the MPI and exit gracefully.
We all want to die gracefully!

good luck.
lori