CS 458 Forum Page


This is like an anonymous black (or white) board. Use it to post whatever you want regading the CSC458 class. Click here to send a new comment or to go to the most recent message.
The comments coming from the TAs are highlighted using this color. The comments coming from the professor are highlighted using this color.

Back to CS458 page


The history starts here:


Comment sent at 16:24:49 on 2007-1-17.

Welcome to CSC-2/458 course forum.
This forum is only accessible by students taking CSC-2/458, so we will
limit it to authorized IP later. Please send TA email with your machine IP.

By the way, TA office hour is 2pm-3pm MW at CSB 723.
-Xiao

Comment sent at 10:53:11 on 2007-1-18.

This maybe a little bit early to talk about it but as most of you already
know, We have a MPI assignment, and you are recommended to take a look at
last year webpage:
http://www.cs.rochester.edu/u/scott/458/assignments/03-mpi/

Before doing your MPI project, please take a look at: 
http://www.cs.rochester.edu/~xiao/CS458/tools.readme

Xiao

Comment sent at 21:10:46 on 2007-1-21.

Parallel programming languages cilk(http://supertech.csail.mit.edu/cilk/) 
and gcc-upc(http://upc.gwu.edu/) are respectively installed under
/u/cs458/cilk  and  /u/cs458/upc.

How to compile/run cilk program?
The installed cilk is built upon gcc2.91, unfortunately most machines in CS
Dept. come with gcc4.1 or gcc3.2, only node0 machine has a compatible
one(gcc2.96). So you have to compile your cilk program on node0 first and
then run the executable on other machines. 
We take a fibonacci program fib.cilk(cs.rochester.edu/~xiao/CS458/fib.cilk)
for example:
Compilation: Log into node0 and type commands 
	   /u/cs458/cilk/bin/cilkc fib.cilk -o fib
Execution: Log into your target machine and type commands
	   ./fib --nproc 2 30

How to compile/run upc program?
The installed upc is built upon gcc4.0, so dont compile it on node0.
We take a hello program hello.upc(cs.rochester.edu/~xiao/CS458/hello.upc)
for example:
Compilation: 
	  /u/cs458/upc/bin/upc -fupc-threads-4 hello.upc -o hello
Execution: 
	  ./hello

You can also modify your .cshrc to ignor the "/u/cs458/*" prefix, just as what you
do in the MPI project.

Xiao

Comment sent at 22:51:21 on 2007-1-21.

Of the 2 assigned readings for this week, only 1 is actually on reserve at
Carlson.  Distributed Systems Principles and Paradigms by Tanenbaum Steen
is not on reserve.  The library does have a copy, but it is currently
delinquently checked out (it was due on December 30) making it unavailable.

Comment sent at 10:40:8 on 2007-1-22.

Chapter 1, 5 and 7 of Distributed Systems Principles and Paradigms by
Tanenbaum Steen are available in CSC458 box in the 7th mailroom for anyone
interested to copy.

Xiao

Comment sent at 16:50:35 on 2007-1-22.

Xiao, I need a account for the MPI assignment.

Thanks,
Shaojun Zhao (CS grads)

Comment sent at 19:59:36 on 2007-1-22.

To Shaojun and other CS grads, 
   Prof. Dwarkadas has forwarded your request to David Costello and James
Roche. Once opened, you can login sync/swim with your current passwd.

To other students,
   You may come to our staff office for your account's passwd (I maybe
wrong, but it's my understanding how you get your passwd).

Good luck to everyone!
-Xiao

Comment sent at 11:8:10 on 2007-1-24.

Chapter 2, 3, 5, 6.1-6.2 and 8.2 of Parallel Computer Architecture
are available in CSC458 mailbox.

-Xiao

Comment sent at 15:24:42 on 2007-1-25.

Just a reminder that you need to bring in two speedup curves for
sor for Monday's class, the example pthreads parallel application I've
provided in ~cs458/apps/sor on the grad side. The three larger scale
possible parallel machines on the grad side are sync, discovery, and
node4x2a. If you have trouble accessing these, trial on any multiprocessor
machine is fine (find a box with more than 1 (and hopefully more than 2)
processors). Examples include the cycle machines - /proc/cpuinfo will give
you an idea of what and how many processors you have.

sor has several subdirectories. The two of current interest are seq
(sequential application) and pthreads (pthreads version).

Please take a look at ~cs458/bin/tools.readme for instructions on
environment set up. You should make a copy of the sor application, first
re-compile, and then run the code to make sure you have your environment
set
up correctly.

Please take some time to look at the code for sor, how it's been
structured,
how the work is partitioned, where the synchronization is
inserted, and how the timing is extracted.

The existing code should show how to insert timing tests into your
code, including the fact that it is best to make sure all processes are
in lockstep before starting timing, by inserting a "barrier".
In addition, code and/or instructions for accessing the high resolution
timers
on most of the machines is provided and accessible via /u/cs458/hrTimer/.

To get accurate timings, you'll need to make sure you have exclusive
use of the processor(s). A useful command to determine if there are other
users is "top".

Make sure to kill all your processes when you are done, and before
logging out of the machines. Check using "ps -Af" to ensure that you
don't leave any run-away processes behind.

Sandhya

Comment sent at 15:31:24 on 2007-1-29.

There are two system calls on binding process to CPU(s):
sched_getaffinity() tells process current CPU mask,
sched_setaffinity() binds process to certain CPU(s).

Try "man sched_getaffinity" for more detailed info.

-Xiao

Comment sent at 11:31:24 on 2007-2-10.

How to turnin your project
===========================
Go to your project directory and type:
/u/cs458/bin/turnin .
Not TURN_IN!
You will receive an email confirmation.
-Xiao

Comment sent at 15:31:4 on 2007-2-10.

I've been running into an issue with pthreads where the threads are
executing sequentially. I wanted to make sure it wasn't because of a
deadlock in the code, so i replaced my work thread with:

void *work_thread(void *lp){
  int task_id = *((int *) lp);
  int i;
  for(i = 0; i < 100; i++){
    printf("current task=%d", task_id);
  }
}

The output indicates that the threads are still executing sequentially.
What's confusing is that I did this same thing with the work_thread and
even and odd functions of the sor_pthreads.c program and got the same
results, which means that it is corrected somewhere in the implementation
of the even and odd functions, but nothing related to the thread occurs
here. I'm using the same compilation flags as the pthreads version of sor.

Comment sent at 16:0:13 on 2007-2-10.

nvm. it was locking on stdout.

Comment sent at 14:53:41 on 2007-2-14.

The class for 2/458 has been postponed today (Feb 14) and rescheduled on
Friday (Feb 16). This only for this week.
Here is the mail from Prof. Sandhya regarding the class reschedule


Sandhya Dwarkadas wrote:
>
> Okay. Based on responses so far, I'd say let's reschedule to Friday
morning at 11. We'll plan on CSB 632. I'll send out mail with a new venue
if the room is not available.
>
> Thanks,
> Sandhya
>
> On Wed, 14 Feb 2007, Sandhya Dwarkadas wrote:
>
>>
>>
>> This is a poll to determine how many of you will be able to make
it in to class today.
>>
>> If there aren't too many takers, we can reschedule to Friday, say
at 11, if that works for everyone.
>>
>> Sandhya
>>


--------
Hemayet Hossain

Comment sent at 15:57:21 on 2007-2-14.

To Jonathan,
    You can also put printf just before threads finish their jobs to see if
they really execute in sequential.

Comment sent at 18:1:19 on 2007-2-15.

You may find that running mpi on node4x2a has error today: semget failed
for setnum =  0. 
This means that the maximum number of allowed semaphores on the master node
has been created, and the program you are trying to run cannot allocate a
new semaphore for inter-process communication. My guess is that somebody
has been testing mpi program that does not exit properly, leaving
semaphores and shared memory segments allocated.
If the leftover semaphores are owned by you, it can be fixed by running the
following two commands: 
/u/cs458/mpich-1.2.7-node4x2a/sbin/cleanipcs

Comment sent at 18:13:14 on 2007-2-15.

In any case, you can use "ipcs -s" to list your semaphores, and "ipcrm -s
semid" to remove semaphores.

Comment sent at 18:18:43 on 2007-2-15.

Thanks to anonymous semaphore remover, mpi works again on node4x2a.

-Xiao

Comment sent at 23:12:0 on 2007-2-20.

Got the below error message since yesterday:

0 - MPI_INIT : MPIRUN chose the wrong device ch_shmem; program needs device
ch_p4
/u/cs458/mpich-1.2.7-install/bin/mpirun.ch_shmem: line 91: 29334
Segmentation fault	/u/bwei/mpi/linux/linux/gauss "-s" "128"

Anyone knows what mistake I made? Thank you!

Comment sent at 9:22:57 on 2007-2-21.

That means mpi is not compatible to the machine you are running. You
probably run your program on a non-target machine. Try to run it on another one. 

Comment sent at 0:25:16 on 2007-2-24.

To those gprof fans,
As far as I know, gprof overwrites gmon.out. So when you run multi-processes,
your gmon.out is kind of being rotten. One way to solve it is calling chdir
inside each process(yes, it's not elegant) to avoid overwriting. You are
more than welcome to provide better solution here.
I see tprof is recommended for multiple-process profiling, however, we dont
have it at this moment.

-Xiao

Comment sent at 17:25:11 on 2007-5-2.

Demo slot reserve:
I am reserving a 15 min slot on May 7 10AM-10:15AM
Thanks,
Hemayet

Comment sent at 11:45:50 on 2007-5-3.

Hi, I'd like to reserve a slot on May 7, 3 PM.

Thanks,
Vinod.

Comment sent at 14:29:19 on 2007-5-3.

We want to reserve a 15 min demo session from 10:15-10:30 AM

Sam & Matt

Comment sent at 13:40:44 on 2007-5-4.

hi, i'd like mon. 10:30-10:45 please
thanks,
max

Comment sent at 22:4:21 on 2007-5-6.

Mon. 3:30 p.m. please
thanks
jiasheng